OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
Operaciones Aritméticas: 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 binario se 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: 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álculos aritmé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 operac ión aritmética. D F (Direction flag, Dirección). Designa la dirección hacia la izquierda o
hacia la derecha para mover o comparar cadenas de caracteres.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
I F (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 una operació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. P F (Parity flag, Paridad). Indica paridad par o impar de una operación en
datos de ocho bits de bajo orden (mas a la derecha). C F (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 do s números en un punto fijo fijo produce pro duce over flow si y solo si: a)
Ambos términos de la suma tienen signos
idénticos, pero la suma tiene diferentes signos. b)
La adición produce un acarreo en el bit de signo
o en el bit más significativo, 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. Para facilitar 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
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
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 de banderas muestran el resultado de la operación aritmética. Cualquier instrucción A DD 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 datos constantes o conocidos. 1.1.4 Suma
de Memoria a Registro: permite la suma de dos bytes
consecutivos de datos de la memoria almacenados en las localidades con desplazamiento N UM UM y N UM+1 UM+1 en el registro. 1.1.5 Suma
de Arreglos: los arreglos en memoria son listas de datos que
hay en memoria. Se recorre el array dependiendo el posicionamiento dado y se direcciona al registro que llevara la suma acumuladora. 1.1.6 Suma
de incremento: la suma de incremento (IN C) C) agrega un 1 a un
registro o a una localidad de la memoria. La instrucción IN C C puede sumar un 1 a cualquier registro o localidad de la memoria, excepto a un registro de segmento. Con incrementos indirectos en la memoria, el tamaño de los datos se debe describir con el empleo de los directivos BY TE P TR D P TR D P TR TE P TR; WOR D P TR o DWOR D P TR. La razón es que el programa ensamblador no puede determinar si, por ejemplo, la instrucción IN C C [ D I] es un incremento de tamaño de byte, palabra o doble palabra. La instrucción
IN C BY TE P TR TR [ D I] indica con claridad datos de memoria de tamaño byte; IN C C BY TE C WOR D P TR TR [ D I] indica sin lugar a duda un dato de memoria de tamaño de palabra;
la instrucción IN C TR [ D I] incrementa datos de tamaño doble palabra. C D DWOR D P D P TR 1.1.7 Suma
con Acarreo: una instrucción de suma, con acarreo ( A DC),
suma el bit de la bandera ( C) C) de acarreo a los datos del operando. Esta instrucción casi siempre aparece en programas que suman elementos de un ancho mayor de 16
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
1.1.8
Intercambiar y sumar para el microprocesador 80486: en el
conjunto de instrucciones para el 80486 aparece un nuevo tipo de suma llamada intercambiar y sumar (X A DD) , la cual suma datos de la fuente a los del destino y almacena la suma en el destino igual que con cualquier otra suma. La diferencia es que, después de que ocurre la suma, se copia el valor original del destino y se pone en el operando fuente. Esta instrucción es una de las pocas que cambian la fuente. Por ejemplo, si BL=12H y DL= 02H y se ejecuta la instrucción X A DD BL, DL, el registro BL contiene la suma de 14H y DL se convierte en 12H . Se genera la
suma de 14H y el destino original de 12H sustituye a la fuente. Esta instrucción funciona con cualquier tamaño de registro y cualquier operando de memoria, igual que la instrucción A DD normal.
1.2
RESTA
En el conjunto de instrucciones de los 8086-80286 aparecen muchas formas de resta (SUB). Estas formas utilizan cualquier modo de direccionamiento con datos de 8, 16 o 32 bits. Una Una forma especial de la la resta (decremento) resta o decrementa un 1 en cualquier registro o localidad de la memoria. Casi los únicos tipos de resta no permitidos son de memoria a memoria y registro de segmento. Igual que otras instrucciones aritméticas, la instrucción para resta influye en los bits de bandera. 1.2.1
Resta de Registro: se efectúa resta en registro haciéndose
modificación del contenido del registro de banderas. Las banderas cambian para la mayor parte de las operaciones op eraciones aritméticas y lógicas. 1.2.2
Resta Inmediata: igual que para las sumas, el microprocesador
permite que haya operandos operando s inmediatos para la resta de datos constantes. 1.2.3
Decremento: el decremento ( D E C) C) resta un 1 de un registro o del
contenido de una localidad de memoria. Las instrucciones para decrementar datos
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
registro índice direcciona la memoria. Por ejemplo D E C C [S I] es vaga, porque el ensamblador no puede determinar si la localidad direccionada por SI es un byte o una palabra. El tamaño de los datos se revela con el empleo de D E C BY TE P TR TR [S I] , C BY TE TR [ D I] o D E C TR [S I] . D E C C WOR D P D P TR C D DWOR D P D P TR
1.2.4
Resta con Préstamo: una instrucción de resta con préstamo (SBB)
funciona igual que una resta normal, excepto que la bandera ( C) C) de acarreo también se resta de la diferencia. El empleo más común de esta instrucción es para restas con un ancho mayor de 16 bits en los 8086-80286 o de un ancho mayor de 32 bits en los 80386 y 80486. Las restas <
> requieren que los préstamos se propaguen en la resta, igual que en las sumas <> se propagó el acarreo.
1.3
COMPARACIÓN
La instrucción ( CMP) CMP) para comparación es una resta que sólo afecta los bits de bandera. La comparación es útil para comprar el contenido de un registro o una localidad de memoria contra otro valor. La CMP suele ir seguida por una instrucción de brinco (J MP) condicional que prueba las condición de los bits de bandera. Esta instrucción se emplea para comparar un byte o palabra completos, ubicados en cualquier registro (ex cepto d e segmento ) o en la memoria. 1.3.1 Comparar
e Intercambiar: la instrucción de comparar e intercambiar
( CMP CMP X CHG) CHG) que sólo se encuentra en las instrucciones para el 80486, compara el
operando destino con el acumulador. Si son iguales, se copia el operando fuente en el destino. Si no son iguales, se copia el operando destino y se pone en el acumulador. Esta instrucción funciona con datos de 8, 16 o 32 bits. La instrucción CMP X CHG CHG C X , D X es un ejemplo de esa instrucción. Esta instrucción primero compara los contenidos de C X y de A X . Si C X es igual a A X , D X se copia en A X . Si C X no es igual a A X se copia en A X . Esta instrucción X también
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
1.4
MULTIPLICACIÓN
Se efectúa en bytes, palabras o dobles palabras y pueden ser enteros con signo (I MUL) o sin signo ( MUL). Se debe tener en cuenta que sólo en los 80386 y 80486 se pueden multiplicar dobles palabras de 32 bits. El producto después de una multiplicación es siempre de doble ancho. Si se multiplican dos números de 8 bits, se genera un producto de 16 bits; si se multiplican dos números de 16 bits, se genera un producto de 32 bits y si se multiplican dos números de 32 bits, se genera un producto de 64 bits. 1.4.1 Multiplicación
de 8 bits: siempre multiplica el registro A L por un
operando y el producto se encuentra en A X . 1.4.2 Multiplicación
de 16 bits: la multiplicación de palabras es muy
semejante a la multiplicación de bytes. La diferencia es que el multiplicando está en A X en vez de AL y el producto aparece en D X- A X en lugar de A X . El registro D X
siempre contiene los 16 bits más significativos del producto y A X los 16 bits menos significativos. 1.4.3 Multiplicación
inmediata de 16 bits: la multiplicación inmediata
debe tener signo y el formato de la instrucción es diferente porque contiene tres operandos. El primer operando es el registro destino de 16 bits; el segundo es un registro o localidad de la memoria que contiene el multiplicando de 16 bits; el tercero son datos inmediatos de 8 o de 16 bits utilizados utilizados como multiplicador. 1.4.4 Multiplicación de 32 bits: en la multiplicación de 32 bits, el contenido
de EAX se multiplica por el operando especificado con la instrucción. El producto, de 64 bits de ancho, se encuentra en E D X y en EA X , donde EA X contiene los 32 bits menos significativos del producto.
1.5
DIVISIÓN
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
uno de doble ancho que se divide entre el operando, esto significa que en una división de 8 bits se divide un número de 16 bits entre uno de 8 bits; en una división de 16 bits se divide un número de 32 bits entre uno de 16; en la división de 32 bits se divide un número de 64 bits entre uno de 32 bits. 1.5.1
División de 8 bits: se utiliza el registro de A X para almacenar el
dividendo, que se divide entre el contenido de cualquier registro o localidad de memoria de 8 bits. El cociente se transfiere a A L después de la división y A H contiene un residuo de número entero. Para una división con signo, el cociente es positivo o negativo, pero el residuo es siempre un entero positivo. A X . El cociente aparece en A X 1.5.2 División de 16 bits: se divide entre D X- A
y el residuo en D X después de una división de 16 bits. Igual que para la división de 8 bits, hay que convertir los números a la forma adecuada para el dividendo. Si se empieza con un número de 16 bits sin signo en A X , entonces D X se debe borrar a cero. El número se extiende con ceros con el empleo de la instrucción M OV Z X . Si ertir palabr a a A X es un número de 16 bits con signo, la instrucción C W W X ( convertir p
3 2 bits con signo. a), lo extiende por signo a formar un número de 32 d obl e palabr a) 1.5.3
División de 32 bits: se efectúan divisiones de 32 bits en números con
signo o sin signos. El contenido de 64 bits de E D X- EA EA X se divide entre el operando especificado por la instrucción y queda un cociente de 32 bits en EA X y un residuo de 32 bits en E D X . Aparte del tamaño de los registros, esta instrucción funciona igual que las divisiones de 8 y de 16 bits.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
1.6.1
Instrucción AAM: tiene unas interesantes características adicionales,
porque le permite convertir un número binario a BCD sin empacar. Esta instrucción convierte un número binario entre 00 H y 63H en BCD sin empacar en A X .
Operaciones Lógicas Básicas: Las operaciones lógicas proporcionan en control de bits binarios en programación de <>. Las instrucciones lógicas permiten hacer uno, cero o complementar bits. La programación de bajo nivel aparece en forma de lenguaje de máquina o lenguaje de ensamblador y a menudo controla los dispositivos de E/S en un sistema. Todas las instrucciones lógicas afectan los bits de bandera. Las operaciones lógicas siempre hacen cero las banderas de acarreo y sobreflujo, mientras que las otras banderas cambian para reflejar la condición del resultado. 2.1 Las instrucciones A N D, OR y OR E X CLU CLU S IV O, efectúan funciones
lógicas en un byte, palabra o doble palabra almacenados en un registro o en una localidad de memoria. Todas las banderas cambian con estas instrucciones y se hacen cero (borran) acarreo (C) y sobreflujo (O). 2.2 La instrucción TEST efectúa la operación A N D y el producto lógico se
pierde. Esta instrucción cambia los bits de bandera para indicar el resultado de la prueba. 2.3 Las instrucciones N OT OT y N E G G efectúan inversiones lógica y aritmética.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
Los corrimientos lógicos multiplican o dividen datos sin signo y los corrimientos aritméticos multiplican o dividen datos con signo. Un corrimiento a la izquierda siempre multiplica por 2 en cada posición de bits desplazada y un desplazamiento a la derecha siempre divide entre 2 en cada posición de bits desplazada. Hay ocho diferentes instrucciones para corrimiento y rotación. Cada uno recorre o rota un registro de byte, palabra o doble palabra o datos de la memoria. Estas instrucciones tienen dos operandos: el primero es la de los datos desplazados o girados y, el segundo es un contador de corrimiento inmediato o de rotación o CL. Si el segundo operando es CL, el registro CL contiene el contador de los corrimientos o rotaciones. En los microprocesadores 80386 y 80486, hay dos instrucciones adicionales para corrimiento, de doble precisión (SHRD y SHLD). 2.5
Rotaciones: las instrucciones para rotación colocan los datos binarios
porque hacen rotar la información en un registro o localidad de memoria, sea de un extremo a otro a través de la bandera de acarreo. La instrucción S C C AS para rastrear compara AL, AX o EAX con el contenido de una localidad de memoria en el segmento extra direccionada por DI. La instrucción para comparar cadenas ( CMP CMP S ) compara el contenido byte, palabra o doble palabra de dos secciones de la memoria. DI direcciona a una sección en el segmento extra y SI a la otra en el segmento de datos. Las instrucciones S C y CMP S se repiten con los prefijos RE C AS P E o
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
INDICE Introducción Operaciones Aritméticas 1.1Suma 1.1.1 Registro de Bandera 1.1.2 Suma de Registro 1.1.3 Suma Inmediata 1.1.4 Suma de Memoria a Registro 1.1.5 Suma de Arreglos 1.1.6 Suma de Incremento 1.1.7 Suma con Acarreo 1.1.8 Intercambiar y Sumar para el microprocesador 80486 1.2 Resta 1.2.1 Resta de Registro 1.2.2 Resta Inmediata 1.2.3 Decremento 1.2.4 Resta con Préstam P réstamo o 1.3 Comparación 1.3.1 Comparar e Intercambiar 1.4 Multiplicación 1.4.1 Multiplicación de 8 bits 1.4.2 Multiplicación de 16 bits b its 1.4.3 Multiplicación Inmediata de 16 bits 1.4.4 Multiplicación de 32 bits b its 1.5 División 1.5.1 División de 8 bits 1.5.2 División de 16 bits 1.5.3 División de 32 bits 1.6 Aritmética para BCD y ASCII 1.6.1 Instrucción AAM
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
Bibliografía y
y
Microprocesadores Intel: Arquitectura, Programación E Interfaz: 8086. Editorial Pearson Education. (tercera Edición). México. Pág. 117-155. http://www.buenastareas.com/ensayos/Microprocesadores/206033.html
Brey
B,
Barry.
(1994).
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
OPERACIONES ARITMÉTICAS Y LÓGICAS EN MICROPROCESADORES
EJEMPLO OPERACIÓN ARITMÉTICA