170 likes | 333 Views
Registro de banderas. 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 .
E N D
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).
BIT ALTO BIT BAJO Ejemplos
CF • CF Carry. Indica si hubo carry en operaciones aritméticas. C=1 si existe acarreo, 0 sino existe.
PF • PF Paridad. 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 • ZF Cero. 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 • SF Signo. Indica el signo del resultado. S=0 si el resultado es positivo, S=1 si el resultado es negativo.
IF • IF Interrupció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 = 0134A23BhCX 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 = BE378564 (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