lunes, 1 de abril de 2019

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

No hay comentarios:

Publicar un comentario