Uso de banderas en ensamblador

Las banderas son aquellas que registran el estado del procesador, normalmente asociado a una comparación o a una instrucción aritmética. Las banderas del procesador 8086 son:

CF: Bandera de acareo.
OF: Bandera de desbordamiento (aritmético).
ZF: Bandera de resultado 0 o comparación igual.
SF: Bandera de resultado o comparación negativa.
PF: Bandera de paridad (número par de bits).
AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con números
BCD.

Banderas de control:
DF: Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres
incrementando o decrementando automáticamente los registros índices (SI y DI)
IF: Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los dispositivos
externos.
TF: Bandera de atrape. Controla la operación de modo paso a paso (usada por el programa DEBUG).

Veamos algunos ejemplos:

Para activar la bandera CF haremos una suma, una suma entre 2 numeros, en este caso 255 + 1, de manera que supere el limite del registro inferior.


Codigo: 

.model small
.stack
.data
.code
    mov al,255
    mov bl,1
    add al,bl

.exit

end




La bandera ZF sirve para indicar que el valor del resultado es  cero:

Codigo:

 .model small
.stack
.data
.code
    mov al,2
    mov bl,2
    sub al,bl

.exit
end





En el caso de SF esta se encedera al obtener un resultado negativo en los registros:

Codigo:


.model small
.stack
.data
.code
    mov al,1
    mov bl,2
    sub al,bl

.exit
end





Comentarios