Registro de banderas
Descripción general
- Propósito: El registro de banderas es un registro de propósito especial que almacena bits de estado (banderas) que reflejan el resultado de operaciones aritméticas o lógicas. Cada bit corresponde a una condición específica, como si un resultado fue cero, negativo, produjo un acarreo o causó un desbordamiento.
- Símbolo: Representado como un bloque de registro rectangular con 7 entradas (4 entradas de bus de datos de banderas + CLK + LD + entrada de bandera) y 4 salidas de banderas (Z, C, N, V).
- Rol en DigiSim.io: Sirve como componente crucial en la simulación de arquitectura de computadoras, permitiendo la operación condicional y la toma de decisiones basada en los resultados de cálculos anteriores.

Descripción funcional
Comportamiento lógico
El registro de banderas captura y almacena información de estado generada por la ALU u otras unidades computacionales. Cada bit en el registro representa una condición o estado específico.
Banderas:
| Bandera | Condición de activación | Condición de desactivación |
|---|---|---|
| Cero (Z) | El resultado de la operación es cero | El resultado no es cero |
| Acarreo (C) | Desbordamiento de suma sin signo / Préstamo de resta | Sin desbordamiento sin signo / Sin préstamo |
| Negativo (N) | El bit más significativo (MSB) del resultado es 1 | El MSB del resultado es 0 |
| Desbordamiento (V) | La operación aritmética con signo desbordó | Sin desbordamiento con signo |
Entradas y salidas
Entradas (7 en total):
- Zero (Z): Pin 0. Entrada de bandera de cero desde la ALU (entrada de bus).
- Carry (C): Pin 1. Entrada de bandera de acarreo desde la ALU (entrada de bus).
- Negative (N): Pin 2. Entrada de bandera de negativo desde la ALU (entrada de bus).
- Overflow (V): Pin 3. Entrada de bandera de desbordamiento desde la ALU (entrada de bus).
- Flag In: Pin 4. Entrada de bandera adicional (entrada de bus).
- CLK: Pin 5. Entrada de reloj — las banderas se capturan en el flanco de subida.
- LD (Carga): Pin 6. Habilitación de carga — las banderas se actualizan solo cuando LD está en ALTO en el flanco de subida del reloj.
Salidas (4 en total):
- Z: Pin 0. Salida de bandera de cero.
- C: Pin 1. Salida de bandera de acarreo.
- N: Pin 2. Salida de bandera de negativo.
- V: Pin 3. Salida de bandera de desbordamiento.
Parámetros configurables
- Banderas incluidas: Qué banderas de estado específicas están implementadas (dependiente de la arquitectura).
- Comportamiento de las banderas: Cómo responde cada bandera a operaciones específicas.
- Sensibilidad al flanco de reloj: Si el registro se actualiza en flancos de subida o bajada del reloj.
- Control de carga: Si las banderas se actualizan individualmente o como grupo.
- Retardo de propagación: El tiempo que tardan las salidas de banderas en reflejar los cambios de entrada.
Representación visual en DigiSim.io
El registro de banderas se muestra como un bloque rectangular con las entradas etiquetadas en el lado izquierdo (bits de estado, CLK, Carga) y las salidas de banderas individuales en el lado derecho (Z, C, N, V, etc.). Cuando se conecta en un circuito, el componente indica visualmente el estado de cada bandera a través de los valores de salida y los cambios de color en los cables de conexión.
Valor educativo
Conceptos clave
- Ejecución condicional: Demuestra cómo las computadoras toman decisiones basándose en los resultados de las operaciones.
- Seguimiento de estado: Muestra cómo los sistemas digitales llevan registro de los resultados de las computaciones.
- Arquitectura de computadoras: Ilustra un componente fundamental del diseño de CPU.
- Información de estado: Introduce el concepto de mantener información de estado para su uso en operaciones subsiguientes.
- Retroalimentación digital: Muestra cómo los resultados de las operaciones influyen en las rutas de procesamiento futuras.
Objetivos de aprendizaje
- Comprender cómo las banderas de estado capturan los resultados de operaciones aritméticas y lógicas.
- Aprender cómo las banderas permiten la ramificación condicional y la toma de decisiones en programas informáticos.
- Reconocer el papel del registro de banderas en la arquitectura de CPU y la ejecución de instrucciones.
- Aplicar el conocimiento de banderas para predecir el flujo del programa en operaciones condicionales.
- Comprender cómo la aritmética de precisión múltiple depende de las banderas de acarreo y desbordamiento.
Ejemplos de uso/Escenarios
- Ramificación condicional: Las instrucciones de salto si cero (JZ), salto si acarreo (JC) o salto si no cero (JNZ) usan banderas para alterar el flujo del programa.
- Aritmética de precisión múltiple: Usar la bandera de acarreo para enlazar operaciones entre múltiples palabras (p. ej., sumar números de 64 bits en una ALU de 32 bits).
- Detección de errores: Monitorear la bandera de desbordamiento para detectar errores aritméticos en operaciones con signo.
- Control de bucles: Verificar la bandera de cero para determinar cuándo los contadores de bucle alcanzan valores terminales.
- Gestión de interrupciones: Establecer o borrar la bandera de interrupción para controlar la capacidad de respuesta del sistema a eventos externos.
- Informes de estado: Usar banderas para comunicar los resultados de las operaciones al software de nivel superior.
Notas técnicas
- El registro de banderas se implementa típicamente como una colección de flip-flops, uno para cada bit de bandera.
- Diferentes arquitecturas de CPU incluyen diferentes conjuntos de banderas y pueden interpretarlas de manera diferente.
- El comportamiento de las banderas puede variar según la instrucción; algunas instrucciones pueden afectar a todas las banderas, mientras que otras solo afectan a banderas específicas.
- En muchos diseños de CPU, el registro de banderas es parte de una palabra de estado de programa (PSW) o registro de estado más grande.
- Guardar y restaurar el registro de banderas es a menudo necesario durante cambios de contexto, interrupciones y llamadas a subrutinas.
- En DigiSim.io, el comportamiento del registro de banderas modela arquitecturas de CPU comunes con establecimiento y borrado de banderas adecuado basado en las condiciones de entrada.