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:
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
Publicar un comentario