Registro de banderas:
Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la maquina y el resultado del procedimiento.
Cada bandera es un bit y se usa para registrar la
información de estado y de control de las operaciones del microprocesador. Hay
nueve banderas (los 7 bits restantes no se utilizan):
Banderas de estado:
Registran el estado del procesador, normalmente asociado a
una comparación o a una instrucción aritmética.
- CF (Carry Flag): Bandera de acarreo.
- OF (Overflow Flag): Bandera de desbordamiento (aritmético).
- ZF (Zero Flag): Bandera de resultado 0 o comparación igual.
- SF (Sign Flag): Bandera de resultado o comparación negativa.
- PF (Parity Flag): Bandera de paridad (número par de bits).
- AF (Auxiliary Flag): Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con números BCD.
Banderas de control:
- DF (Direction Flag): Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres (sentido de avance ascendente/descendente). Incrementando o decrementando automáticamente los registros índices (SI y DI)
- IF (Interrupt Flag): Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los dispositivos
- externos.
- TF (Trap Flag): Bandera de atrape. Controla la operación de modo paso a paso (usada por el programa DEBUG).
► vídeo
[008] Registro de Banderas | Banderas en Ensamblador 8086
Programa 1:
Código:
cf:bandera de acarreo
programa: .model small .stack .data .code mov al, 2 ;1 mov bl, 2 ;4 sub al, bl .exit end
La bandera ZF sirve para indicar que el valor del resultado
es cero:
Programa 2:
Código:
org 100h .model small .stack .data .code mov al,255 mov bl,1 add al,bl .exit end
Para activar la bandera CF haremos una suma, una suma entre
2 números, en este caso 255 + 1, de manera que supere el límite del registro
inferior.
Programa 3:
Código:
org 100h org 100h .model small .stack .data .code mov al,1 mov bl,4 sub al,bl .exit end ret
En el caso de SF esta se encenderá al obtener un resultado
negativo en los registros:
Programa 4:
.model small .stack .data .code mov al,100 mov bl,50 add al,bl .exit end
La bandera OF se llevara a cabo cada vez que se lleve a cabo un acarreo de unidad aritmético, ejemplo, si sumamos 100 + 50, tendremos un acarreo de 5 decenas en la parte de la suma para generar el numero 150.
No hay comentarios:
Publicar un comentario