A partir de
http://z80.info/zip/z80cpu_um.pdf sección
Z80 Status Indicator FlagsIndicador de AcarreoEl indicador de Acarreo (C) se activa o limpia dependiendo de la operación realizada. Para instrucciones ADD que generan Acarreo, e instrucciones SUB que generan Préstamo, se activa el indicador de Acarreo. El indicador de Acarreo se limpia por una instrucción ADD que no genere Acarreo, y una instrucción SUB que no genere un préstamo. Este almacenamiento del Acarreo ayuda a las rutinas con una precisión aritmética extendida. También, la instrucción DAA establece el indicador de Acarreo si se cumplen las condiciones para realizar un ajuste decimal.
Para las instrucciones RLA, RRA, RLS y RRS, el bit de Acarreo se usa como un enlace entre el byte menos significativo (LSB) y el byte más significativo (MSB) para cualquier registro o posición de memoria. Durante las instrucciones RLCA, RLC y SLA, el Acarreo contiene el último valor desplazado del bit 7 de cualquier registro o posición de memoria. Durante las instrucciones RRCA, RRC, SRA y SRL, el Acarreo contiene el último valor desplazado del bit 0 de cualquier registro o posición de memoria.
Para las operaciones lógicas AND, OR y XOR, el Acarreo se limpia.
El indicador de Acarreo también se activa con la instrucción Establecer Indicador de Acarreo (SCF) y su complementada por la (CCF).
Indicador de Paridad/Rebose (P/V)Este indicador se establece a un estado específico dependiendo de la operación realizada.
Para operaciones aritméticas, este indicador muestra una condición de Rebose cuando el resultado del Acumulador es mayor que el número máximo posible (+127) o es menor que el número mínimo posible (–128). Esta condición de Rebose se determina examinando los bits de signo de los operandos.
Para la suma, los operandos con signos diferentes nunca provocan Rebose. Cuando se suman operandos con el mismo signo y el resultado tiene un signo diferente, se activa el indicador de Rebose, por ejemplo:
+120 | = | 0111 1000 | SUMANDO |
+105 | = | 0110 1001 | SUMADOR |
------ | | | -------------------- |
+225 | = | 1110 0001 | (-95) SUMA |
Los dos números sumados resultan en un número que excede +127 y
los dos operandos positivos han resultado en un número negativo (-95), que es incorrecto. Por lo tanto,
el indicador de Rebose se activa.
Para la resta, el Rebose puede ocurrir para operandos con signos distintos. Operandos con signos iguales nunca causan
Rebose. Por ejemplo:
+127 | | 0111 1111 | MINUENDO |
(-) -64 | | 1100 0000 | SUSTRAYENDO |
----------- | | ----------- | ------------- |
+191 | | 1011 1111 | DIFERENCIA |
El signo del minuendo ha cambiado de positivo a negativo, dando una diferencia incorrecta. El Rebose se activa.
Otro método para identificar un Rebose es observar el cambio de acarreo del bit de signo. Si hay un acarreo y cambia no acarreo, o si no hay acarreo y cambio a acarreo, se produjo un Rebose.
Este indicador también se usa con operaciones lógicas e instrucciones de rotación para indicar si el resultado de
la paridad es Par. Se cuentan el número de bits 1 en un byte. Si el total es Impar se señaliza paridad Impar (P=0).
Si el total es Par, se indica paridad Par (P=1).
Durante las instrucciones de búsqueda (CPI, CPIR, CPD, CPDR) y las instrucciones de transferencia de bloques
(LDI, LDIR, LDD, LDDR), el indicador P/V monitoriza el estado del Registro Contador de Bytes (BC). Cuando se decrementa,
si el contador de bytes llega a 0, el indicador se pone a 0. Sino, el indicador se pone a 1.
Durante las instrucciones LD A,I y LD A,R, el indicador P/V se activa con el valor del activador flip-flop de interrupciones
(IFF2) como salvaguarda y comprobación.
Cuando entra un byte desde un dispositivo de E/S con una instrucción IN r, (C), el indicador P/V se ajusta para indicar
paridad de datos.
Indicador de Medio AcarreoEl indicador de Medio Acarreo (H) se activa (1) o limpia (0) dependiendo del estado de acarreo y préstamo entre
los bits 3 y 4 de una operación aritmética 8 bits.
Este indicador se usa por la instrucción Ajuste Decimal del Acumulador (DAA) para corregir el resultado de una operación
de suma o resta empaqueta BCD. El indicador H se activa (1) o limpia (0) de acuerdo a la siguiente tabla:
Indicador H | Suma | Resta |
1 | Acarreo entre bits 3 y 4 | Préstamo del bit 4 |
0 | No acarreo | No préstamo |