Operaciones aritméticas y lógicas en microprocesadores
Las operaciones en aritmética binaria a entera permiten a la CPU realizar cálculos con números enteros positivos y negativos con una representación en complementos a 1 y 2.
La mayor parte de las instrucciones aritméticas que se encuentran en cualquier procesador incluyen suma, resta y comparación. Aunque las operaciones aritméticas se efectúan en el sistema binariose puede trabajar con aritmética decimal codificando los dígitos del 0 al 9 en código BCD. Para poder efectuar operaciones aritméticas con estos números, muchos microprocesadores incluyen una instrucción que ajusta el resultado de la operación para obtener el resultado decimal correcto. Para esta operación de ajuste decimal es para la que se emplea el flag de acarreo (suma con acarreo).1.1 SUMA:
Los microprocesadores normalmente suman un número que hay en un registro (acumulador) a un número tomado de la memoria o de otro registro y ponen el resultado en el acumulador.
1.1.1 Registro de bandera:
Los registros de banderas sirven parar indicar el estado actual de la máquina y el resultado del procesamiento, Cuando algunas instrucciones piden comparaciones o cálculosaritméticos cambian el estado de las banderas.
Las banderas más comunes son las siguientes:
OF (Over flow flag, desbordamiento). Indica el desbordamiento de un bit de orden alto (mas a la izquierda) después de una operación aritmética.
DF (Direction flag, Dirección). Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.
IF (Interruption flag,Interrupción). Indica que una interrupción externa, como la entrada desde el teclado sea procesada o ignorada.
TF (Trap flag, Trampa). Examina el efecto de una instrucción sobre los registros y la memoria. Los programas depuradores como DEBUG, activan esta bandera de manera que pueda avanzar en la ejecución de una sola interrupción a un tiempo.
SF (Sign flag, Signo). Contiene el signo resultante de unaoperación aritmética (0=positivo y 1= negativo).
ZF (Zero flag, Zero). Indica el resultado de una operación aritmética o de comparación (0= resultado diferente de cero y 1=resultado igual a cero).
AF (Auxiliary carry flag, Acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmética especializada.
PF (Parity flag, Paridad). Indica paridad par o impar de unaoperación en datos de ocho bits de bajo orden (mas a la derecha).
CF (Carry flag, Acarreo). Contiene el acarreo de orden más alto (mas a la izquierda) después de una operación aritmética; también lleva el contenido del último bit en una operación de corrimiento o rotación.
La adición de dos números en un punto fijo produce over flow si y solo si:
Ambos términos de la suma tienen signos idénticos,pero la suma tiene diferentes signos.
La adición produce un acarreo en el bit de signo o en el bit más significativo, pero no en ambos.
Cuando se utilizan números en precisión múltiple, debido a que las instrucciones aritméticas de un microprocesador operan con un solo byte, debe crearse una subrutina, para operar con números de varios bytes, en el cual intervenga el flag de acarreo. Parafacilitar esto, suele haber una instrucción de suma con carry, que suma el bit del carry, el acumulador y el otro operando; poniendo el resultado en el acumulador y el bit del carry.
1.1.2 Suma de Registro: se emplea suma de registro para sumar cierto número de registros entre sí. Siempre que se ejecutan la mayor parte de las instrucciones aritméticas y lógicas, el contenido del registro debanderas muestran el resultado de la operación aritmética. Cualquier instrucción ADD modifica el contenido de las banderas de signo, cero, acarreo, acarreo auxiliar, paridad y sobreflujo.
1.1.3 Suma Inmediata: la suma inmediata se utiliza siempre que se suman datos constantes o conocidos.
1.1.4 Suma de Memoria a Registro: permite la suma de dos bytes consecutivos de datos de...
Regístrate para leer el documento completo.