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
+4 lab
ResponderEliminar