lunes, 12 de marzo de 2012

Banderas



REGISTRO DE ESTADOS O BANDERAS

Mientras hacia mi tarea de lenguaje ensamblador me encontré con algunos términos que no comprendía, por ejemplo que en el lenguaje ensamblador se utilizan las banderas. Las banderas son espacios en memoria.
Vamos a conocer las más comunes y sus funciones básicas.

X     BITS SIN USO
0 - 15  POSICIONES  BINIARIAS
F     INICIAL DE LA PALABRA FLAG

BANDERAS DE ESTADOS:
CF  ACARREO
PF  PARIDAD
AF  AUXILIAR
ZF  CERO
SF  SIGNO
OF  SOBREFLUJO 
Estas banderas serán alteradas por los resultados producidos  en la ejecución de instrucciones aritméticas y lógicas. 
BANDERAS DE CONTROL:
DF  DIRECCION
IF  INTERRUPCION
TF  DESVIO 

Estas banderas son alteradas por medio de instrucciones manejadas por el programador, para activarlas (1) o desactivarlas (0).  
Banderas de Estado

a)     Bandera de acarreo:  CF(Carry Flag) 
Este bit será alterado en su valor (1 o 0) por la ejecución de instrucciones aritméticas.
Para la suma y resta, cuando el resultado exceda el tamaño de los operandos manejados y el microprocesador no pueda entregarlo en sus registros de tamaño fijo, ésta bandera detectará dicho bit y lo almacenará hasta que se realice otra operación de suma o resta. Para la suma se le llama acarreo final y para la resta se le llama préstamo
b) Bandera de paridad PF (PARITY  FLAG)
Este bit será alterado en su valor por la ejecución de instrucciones aritméticas o lógicas.
La paridad es detectada en el byte menos significativo en el resultado de la operación y checará cuantos unos lógicos (1) existen.
Si la cantidad de “unos” en impar (1,3,5,7), se detectará una paridad IMPAR (ODD).
Si la cantidad de “unos” es par (0,2,4,6,8), se detectará una paridad PAR (EVEN).
c) Bandera de acarreo auxiliar AF (AUXILIARY CARRY  FLAG)
Este bit será alterado en su valor por la ejecución de instrucciones aritméticas.
El acarreo auxiliar será detectado por el que se produce de las unidades a las decenas (o del bit 3 al bit 4), y no en el resultado.
Esta bandera es utilizada principalmente en instrucciones que convierten resultados de hexadecimal a decimal (BCD).
d) Bandera de cero ZF (ZERO  FLAG)
Este bit será alterado en su valor por la ejecución de instrucciones aritméticas y/o lógicas.
La bandera de CERO será detectada cuando el resultado que se produce en la operación sea cero (igual a 0) o diferente de cero (no 0).
e) Bandera de signo SF (SIGN  FLAG)
Este bit será alterado en su valor por la ejecución de instrucciones aritméticas y/o lógicas.
El signo será detectado cuando el resultado que se produce en la operación sea positivo o negativo. Este se identifica en el bit más significativo del resultado.
f) Bandera de sobreflujo OF (OVERFLOW  FLAG)
Este bit será alterado en su valor por la ejecución de instrucciones aritméticas.
El sobre flujo será detectado cuando el resultado que se produce en la operación cambia de signo, contrario a los signos de los operandos manejados, éste se detecta en el bit más significativo. Si son positivos los operandos y cambia el resultado a negativo, o si son negativos los operandos y cambia el resultado a positivo.

Bibliografía:
http://www.apuntesdeelectronica.com/microcontroladores/microcontroladores-fundamentos-pic.htm

1 comentario: