Cuando se trabaja con procesos
aritméticos, es necesario utilizar ciertas
registros para almacenar estados. Estos
registros se llaman banderas de Estado
(state flags)
Banderas de Estado
Zero Flag
Sirve para saber si el resultado es
cero, podemos ver ejemplos de
cuando se enciende la Zero flag
Carry Flag
Se utiliza para indicar si el
resultado de una operación
genero un acarreo , por lo
tanto se debe de añadir al
resultado
tomemos por ejemplo la suma
binaria en 4 bits de 1111+ 0001,
el resultado de esta suma es
0000 y se genera un bit mas que
no entra en el tamaño de 4 bits,
por lo tanto el registro carry se
activa
Overflow Flag
Esta bandera es similar a la
bandera de carry, sin embargo
esta indica que el dato
resultante no puede ser
representado en la precisión
que se solicita
Sign Flag
Esta bandera indica el signo
resultante de una operación,
apagado indica que el
numero es positivo,
encendido indica que el
numero es negativo
Auxiliar Flag
Esta bandera se utiliza mientras de
realiza una operación, indica si se
genero un acarreo sumando cada
bit o si se pidio prestado, en caso
contrario la bandera se borra
Parity flag
Esta bandera se enciende si el
resultado binario tiene una
cantidad de 1´s par por
ejemplo la bandera se
encenderia con el resultado
1111 sin embargo no se
enciende con el valor 0111
La arquitectura IA 32, soporta diferentes instrucciones aritméticas
Estos saltos son partes de código que
se ejecutaran de manera
incondicional, buscan una etiqueta y
reproducen el codigo perteneciente a
esta etiqueta
Instrucciones de Comparación
Estas comparaciones son similares al if
then... de los lenguajes de alto nivel,
utiliza los comparadores mayor que,
menor que, igual que, mayor igual que,
menor igual que, igual, diferente de
Saltos condicionales
ejecutan cierta porción de código
dependiendo de algún factor, un flag
es el mas común