A este registro se le conoce también como registro de estado. Consta de 16 bits y únicamente 9 de ellos contiene información, indican el estado de la máquina y el estado de la ejecución de los programas. Seis de ellas (CF, PF, AF, ZF, SF, OF) son utilizadas para verificar o indicar una condición producida por alguna instrucción, y tres de ellas son utilizadas para el control de algunas operaciones (DF, IF, TF).
OFDFIFTFSFZFAFPFCF BIT ALTO BIT BAJO Ejemplos
CF CFCarry. Indica si hubo carry en operaciones aritméticas. C=1 si existe acarreo, 0 sino existe.
PF PFParidad. Indica la paridad de un dato. P=1 si es par, P=0 sino lo es.
AF AF Carry auxiliar. Contiene el acarreo del bit 3 al bit 4 en un operando de 8 bits. A=1 si existe carry. A=0 no existe carry.
ZF ZFCero. Indica si el resultado de una operación aritmética o de comparación es cero. Z=0 el resultado no es cero, Z=1 el resultado es cero.
TF TF Trap. Indica al procesador que debe ejecutar una por una las instrucciones de un programa (procesamiento de un solo paso).
SF SFSigno. Indica el signo del resultado. S=0 si el resultado es positivo, S=1 si el resultado es negativo.
IF IFInterrupción. Indica al procesador si las interrupciones deben ser atendidas o no.
DF DF Dirección. Es utilizada en operaciones de cadena, indica la dirección que el procesador debe seguir para tomar la información.
OF OF Overflow. Indica overflow en la magnitud de un dato. O=0 no existe overflow, O=1 si existe overflow.
El siguiente ejemplo escribe una cadena en pantalla llamando a uno de los servicios estándar de impresión del DOS (función 9 de INT 21h): cr EQU 13 ; constante de retorno de carro lf EQU 10 ; constante de salto de línea programa SEGMENT ; segmento común a CS, DS, ES, SS. ASSUME CS: programa, DS: programa ORG 100h ; programa de tipo COM inicio: LEA DX,texto ; dirección de texto a imprimir MOV AH,9 ; función de impresión INT 21h ; llamar al DOS INT 20h ; volver al sistema operativo texto DB cr,lf, “Ensamblador“,cr,lf,"$" programa ENDS ; fin del segmento END inicio ; fin del programa y punto de inicio
Suma con acarreo ADD: Esta instrucción suma el primer operador con el segundo y al resultado lo guarda en el primer operador, si hubo acarreo lo guarda en Carry. ADC: Realiza la misma operación que ADD incorporando también el Carry en la suma de los operadores.
Sumar 2 números de 32 bits contenidos en AX BX y CX DX respectivamente, guardando el resultado en AX BX. AX BX = 0134A23Bh CX DX = BD02E329h ; sumar dos números de 32 bits name "suma32" org 100h mov ax,0134 mov bx,A23B mov cx,BD02 mov dx,E329 add bx,dx adc ax,cx ret AX BX = BE (Resultado)
Dividir AX por 7 y Multiplicar BX por 23 ; dividir y multiplicar enteros name "divymul" org 100h mov ax,0100h mov bx,2000h mov cl,7 ; divisor div cl ; dividendo = ax ; divisor = cl mov cx,ax ; guardar resultado y resto en cx mov ax,bx ; multiplicando mov bx,23 ; multiplicador mul bx ; resultado en dx ax ret ; volver al sistema operativo