Está en la página 1de 48

Ingeniería de Sistemas

Simulador de Unidad Aritmético Lógico

PRESENTACION

Dada la naturaleza de la carrera que escogí el desarrollo de este proyecto me será de ayuda a comprender el funcionamiento de un componente indispensable del computador, ya que todo informático que carezca de estos conocimientos no tendría una completa formación profesional. El trabajo desarrollado tiene el propósito de enseñarnos el comportamiento del adquirir un mayor microprocesador, especialmente el funcionamiento del ALU, para servirán de base para un mejor entendimiento del tema.

conocimiento concerniente a este. Desarrollaré algunos conceptos fundamentales que nos

UNIVERSIDAD ANDINA DEL CUSCO

1

Ingeniería de Sistemas

Simulador de Unidad Aritmético Lógico

Introducción
El manejo y procesamiento de datos es el propósito fundamental en la informática, es necesario tener pleno conocimiento de los procesos internos que efectúa el computador y cada uno de sus componentes, el procesador del computador consta de un conjunto de dispositivos, entre estos el ALU que se encarga de realizar operaciones aritméticas lógicas. Con el propósito de hacer más eficiente el cálculo de estas operaciones en la actualidad existe una intensa investigación en nuevos algoritmos aritméticos. El avance de la tecnología de integración hace posible y atractiva la implementación de técnicas aritméticas potentes que hasta hace unos pocos años no eran asequibles. Además existen aplicaciones que demandan algoritmos aritméticos eficientes, tanto en microprocesadores de propósito general (Hardware en punto flotante), como en procesadores de aplicación específica para aplicaciones gráficas, procesado digital de señales e imágenes, etc. En este trabajo centro atención específicamente en el ALU, dando el marco teórico básico acerca del tema, incluyendo conceptos básicos de un ALU, ¿Qué es un número binario, binario de punto flotante, hexadecimal, BCD?, las operaciones que se pueden realizar entre estos, su implementación y funcionamiento en un computador.

UNIVERSIDAD ANDINA DEL CUSCO

2

Ingeniería de Sistemas

Simulador de Unidad Aritmético Lógico

1. Objetivos
1. Conocer la función del procesador y sus partes. 2. Conocer la aritmética lógica que utiliza el ALU. 3. Desarrollar un simulador del ALU basado en la aritmética que usa.

UNIVERSIDAD ANDINA DEL CUSCO

3

Ingeniería de Sistemas

Simulador de Unidad Aritmético Lógico

2. Microprocesador
En su forma más simple, un sistema de computadora cuenta con una unidad que ejecuta instrucciones de programas. Esta unidad se comunica con otros subsistemas (dispositivos) dentro de la computadora, y a menudo controla su operación. Debido al papel central de tal unidad se conoce como unidad central de procesamiento (microprocesador), o CPU (Central processing unit). Dentro de muchas computadoras, un subsistema como una unidad de entrada, o un dispositivo de almacenamiento masivo, puede incorporar una unidad de procesamiento propia, sin embargo tal unidad de procesamiento, aunque es central para su propio subsistema, resulta claro que no es "central" para el sistema de computadora en su conjunto. No obstante, los principios del diseño y operación de una CPU son independientes de su posición en un sistema de computadora. El microprocesador se lo conoce también con el simple nombre de “micro” o como procesador, CPU, UCP (en castellano), etc. que hacen referencia a lo mismo. En este documento me referiré a este componente con el nombre de CPU. También se la suele describir como el cerebro de la computadora. Sin embargo, está mucho más cerca de ser una calculadora veloz con habilidad para almacenar números, realizar operaciones aritméticas simples y guardar resultados. Como es incapaz de “pensar”, la CPU no reconoce los números que maneja ya que sólo se trata de una máquina matemática, la razón por la cual nuestra computadora puede proveernos de un entorno cómodo para trabajar o jugar es que los programas y el hardware “entienden” esos números y pueden hacer que la CPU realice ciertas acciones llamadas instrucciones.

UNIVERSIDAD ANDINA DEL CUSCO

4

UNIVERSIDAD ANDINA DEL CUSCO 5 .Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Diagrama de Bloques de la Computadora.

Los mensajes de la unidad de control le dicen a la ALU qué debe hacer.Memoria caché: una memoria ultrarrápida que almacena ciertos bloques de datos que posiblemente serán utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM. la que está más cerca del micro. es decir. También sabe cómo leer comandos.Unidad de coma Flotante) parte de la CPU especializada en esa clase de cálculos matemáticos. y realiza las funciones de suma. AND o NOT. L1 (level 1) ó caché interna.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 3. resta. tales como OR.Unidad lógica aritmética (ALU): es el último componente de la CPU que entra en juego. en otro chip. En versiones posteriores como Pentium IV y Atlon XP y 64bits.3. 3.Encapsulado: es lo que rodea a la oblea de silicio en sí. cada uno con diferentes tareas dentro del procesador. La ALU es la parte inteligente del chip. algunos procesadores traen el L2 (level 2) y hasta un L3 (level 3). UNIVERSIDAD ANDINA DEL CUSCO 6 .4. aumentando así la velocidad y diminuyendo el número de veces que la PC debe acceder a la RAM. tanto que está encapsulada junto a él. Partes del microprocesador: 3. multiplicación o división. 3.2.Coprocesador matemático: es la FPU (Floating Point Unit . Se la que se conoce como caché de primer nivel. impedir su deterioro como por ejemplo por oxidación con el aire y permitir el enlace con los conectores externos que lo acoplarán a su zócalo o a la placa base directamente. para darle consistencia. todos los micros tipo Intel desde el 486 tienen esta memoria. 3.1. también puede estar en el exterior de la CPU.

5.7. Una vez que finaliza. Las instrucciones llegan a esta unidad para asegurarse de que son correctas y pueden enviarse a la unidad de decodificación. basándose en los comandos o las tareas que se estén ejecutando.6.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico La trayectoria de una máquina clásica de Von Neumman. UNIVERSIDAD ANDINA DEL CUSCO 7 .Unidad de control: es una de las partes más importantes del procesador. se prepara para recibir nuevas instrucciones. ya que regula el proceso entero de cada operación que realiza. La unidad de control dice qué hacer con los datos y en qué lugar guardarlos. Basándose en las instrucciones de la unidad de decodificación. justamente. crea señales que controlan a la ALU y los Registros. 3.Prefetch Unit: esta unidad decide cuándo pedir los datos desde la memoria principal o de la caché de instrucciones. 3. de decodificar o traducir los complejos códigos electrónicos en algo fácil de entender para la Unidad Aritmética Lógica (ALU) y los Registros. 3.Unidad de decodificación: se encarga.

1. Registros de Propósito General. Es el único que puede ser usado como dividendo en la división. De manejo de memoria y strings. usados mediante el mecanismo de interrupciones. Como contador en los corrimientos. CX: Registro de Contador Será ampliamente usado como contador. Tiene como especializaciones: DX: Registro de Datos UNIVERSIDAD ANDINA DEL CUSCO 8 .Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 4. Se dividen lógicamente en 2 registros de 8 bits cada uno llamados parte alta y parte baja. 4.1. Es el parámetro que selecciona los distintos servicios del sistema operativo. siendo de propósito general. pero tiene capacidades especiales para ser usado en instrucciones: De manejo de ciclos. salvo la multiplicación y la división. Los 4 registros tienen su nombre propio y ciertas especializaciones: AX: Registro de Acumulador Este registro es el más usado. de ahí su nombre: Es el único que puede ser usado como multiplicando en la multiplicación. especialmente para el manejo de arreglos.1. puede ser usado como cualquier registro de propósito general. Son 4 registros de 16 bits. refiriéndose el registro de parte baja a los bits de 0-7 (menos significativos) y la parte alta a los bits de 8-15 (más significativos). incluyendo la generalidad de las instrucciones aritméticas y lógicas. Tienen varias características en común: Pueden ejecutar la mayoría de las operaciones del procesador. BX: Registro de Base Especifica en el acceso a memoria en combinación con los registros índice. que el programador usara para una diversidad de funciones. Otros Componentes Registros Principales 4.

existen instrucciones que lo toman por defecto como el registro que en combinación con el ES apunta a una localidad de memoria que se va a escribir. por ello.1. Las instrucciones IN y OUT. indica en qué localidad de memoria UNIVERSIDAD ANDINA DEL CUSCO 9 . SP: Stack Pointer. de 16 bits. o Apuntador a la Fuente Este registro se especializa en el acceso a bytes o words dentro del segmento de datos. Registros De Índice: Estos registros. existen instrucciones que lo toman por defecto como el registro que apunta a una localidad de memoria que se va a leer. o apuntador al tope de la Pila. Ahora bien. tienen sus propias habilidades. son muy similares a los de propósito general. 4. por lo cual toma su nombre. Los 4 registros que se consideran en este grupo son: SI: Source Index. y el acceso a variables locales y parámetros. que permiten dicho acceso. Este registro también está siempre asociado al manejo de la pila. o apuntador a la Base de la Pila. Específicamente.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico - Formar con AX significativa. Este registro es usado para accesar. pero no tienen todas las capacidades de los mismos. BP: Base Pointer. para el acceso a arreglos o como apuntadores. Principalmente nos permite determinar cuando hay un underflow. en particular: • No pueden conectarse directamente con los registros de segmentos. DI: Destination Index. dentro del segmento de pila. ser usados como desplazamientos y así intervenir en el acceso a memoria.2. Su función especial es marcar el tope de la pila. requerirán en ciertos casos que el numero de puertos este en DX. Se les usa. la información. siendo en este caso la parte más El acceso a puertos. Apuntador al Destino Este registro se especializa en el acceso a bytes o words dentro del segmento de datos o el extra. es decir. • No pueden verse como dos registros de 8 bits (parte alta y parte baja). están diseñados para combinarse con los registros de segmento. por lo cual toma su nombre. números de 32 bits. cuando se quiere sacar más información de la pila que la que se ha colocado en ella. y por tanto.

con lo que apunta al siguiente elemento en la pila. 4. usados como banderas. se incrementa cuando se hace un POP. Entre las banderas más importantes mencionaremos: ZF: Bandera de resultado 0 Se prende cuando el resultado de la última operación realizada en el ALU fue un 0. nos indicará si la suma de las partes bajas (primeros 8 bits) había generado carry.3. Por ejemplo. una suma o resta) generó un carry o un borrow. cuando el bit tiene un valor de 0. CF: Bandera de carry Se prende cuando el resultado de la última operación realizada en el ALU (necesariamente.1. con lo que controla el acceso a la memoria de la pila. AF: Bandera de carry auxiliar Se prende cuando el resultado de la última operación realizada en el ALU generó un carry cuando estaba a la mitad. indica si el resultado intermedio después de sumar los 4 bits menos significativos. y se decrementa al hacer un PUSH. si sumamos dos números de 16 bits. sino que el programador la usa para controlar la dirección del acceso mediante apuntadores. y cuando tiene un valor de 1. el evento no ocurrió (falso).Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico se localiza la información de la pila. según la representación de complemento a 2 que mencionamos en clases anteriores. SF: Bandera de signo Se prende cuando el resultado de la última operación realizada en el ALU fue negativo. esta bandera no se prende como resultado del ALU. UNIVERSIDAD ANDINA DEL CUSCO 10 . DF: Bandera de dirección A diferencia de las anteriores. Registros De Bandera: Este es un registro de 16 bits. especialmente en las instrucciones de strings. el evento ocurrió (verdadero). Esto quiere decir que cada uno de los bits señala un evento dentro del procesador. OF: Bandera de overflow Se prende cuando el resultado de la última operación realizada en el ALU excedió la capacidad del registro donde se almacena (overflow). si sumamos dos números de 8 bits. generó carry para sumarse a los bits 5.

de modo que no hay necesidad de líneas de direcciones serial bit por bit.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico IF: Bandera de interrupción Se prende cuando el procesador es interrumpido. Se emplean buses. de manera que no se pierda el control del procesador. 4. En la mayoría de las microarquitecturas algunos registros están conectados a uno o más buses de entrada y a uno o más de salida. en cambio uno bidireccional puede transferir en los dos sentidos. Estos buses solo conectan dos dispositivos. Los bidireccionales suelen usarse cuando hay una colección de registros. pero no simultáneamente Los unidireccionales suelen usarse para conectar registros uno de los cuales siempre es fuente cuales pueden y el otro es destino. y está ejecutando una rutina de atención de interrupción. Cualquiera de los ser fuente o destino. Un bus unidireccional puede transferir información en un solo sentido.2. Muchos dispositivos tienen la posibilidad de conectarse y desconectarse eléctricamente de los buses a los que están conectados físicamente. Un bus puede ser unidireccional o bidimensional. pues la transmisión paralela de todos los bits a la vez. los buses se utilizan para permitir que el contenido de un registro se copie en otro. a 1 o desconectada. Estas conexiones pueden abrirse y cerrarse en cuestión de nanosegundos. Por ejemplo. o líneas extensivas de control. porque cada línea puede estar a 0. Suele utilizarse cuando hay muchos dispositivos que pueden suministrar información a un bus. Esto evita que el procesador acepte interrupciones mientras está procesando interrupciones previas. Un bus cuyos dispositivos tengan la propiedad se llama bus triestado. Buses Un bus es un conjunto de alambres que se usan para transferir señales en paralelo. es mucho más rápida que la transmisión UNIVERSIDAD ANDINA DEL CUSCO 11 . Un esquema de un registro de 8 bits conectado a un bus de entrada y a otro de salida.

El flip-flop de acarreo C. C y Z. 74175. 5. Este cerrojo se le llama registro A y la información que guarda y entrega a la ALU proviene también del bus interno de datos de la CPU. del bus interno de datos. Definición Y Funcionamiento Del Bloque Aritmético Lógico. directamente. están integrados en un mismo circuito integrado 7474. el cual se pone a uno cuando el resultado de la operación ha sido cero. recibe dos señales desde el secuenciador una sirve para ponerle a 1 (SEC) y la otra a 0 (CLC). La señal de reloj CK del flip-flop C se activa con la señal EB (Entrada B). y que consiste en un flip-flop que también se emplea para introducir su contenido a la entrada previa de acarreo(C). UNIVERSIDAD ANDINA DEL CUSCO 12 . que representa el señalizador de acarreo C. Otro buffer triestado 74125 (Salida B) se encarga de trasladar la información del registro al bus interno de datos.1. que traslada la información del Registro A al bus interno de datos. Los flip-flop D del 74175 se cargan mediante del flanco ascendente que reciben por su patita de entrada de reloj (CK) y que procede de la línea EA controlado por el secuenciado. la salida de la ALU se guarda en otra báscula-Cerrojo 74175. antes de realizarse una operación. Esta parte de la CPU es la encargada de realizar las posibles operaciones de procesamiento de datos de 4 bits. mientras que la otra se recibe de una Báscula (cerrojo) de 4 bits. Mientras que el 74175 retiene la información permanentemente. Ambos señalizadores. Cuando la ALU efectúa una operación. el 74125 solo transmite lo que recibe por su entrada al activarse SA. Unidad Aritmética-Lógica (Alu). cuando desde el secuenciador se activa la señal SB (salida B). genera un acarreo de salida (C). que recibe el nombre de registro B. la salida del 74175 (también llamada entrada A). De forma parecida. Con objeto de caso de ser necesario enviar al bus de datos interno la información de registro A. cuando desde el secuenciador se activa la señal SA (salida A). en el que se almacena el estado de señalizador de cero (Z). Un conjunto de 3 puertas lógicas examina la salida de la ALU y controlan el Flipflop D.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 5. La ALU dispone de dos entradas de datos de 4 bits: Una procede. se envía a una entrada de la ALU y a un buffer Triestado modelo 74125. que carga al registro B con el resultado de salida de la ALU. formada internamente por 4 flip-flop de tipo D.

respectivamente. UNIVERSIDAD ANDINA DEL CUSCO 13 . Las señales que seleccionan la operación proceden del código OP de la Instrucción que entra desde el bus externo de datos. 5.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Finalmente la ALU necesita recibir 4 señales que seleccionan la operación más otra (M) que determina si es de tipo lógico o de tipo aritmético. Unidad De Corrimiento Lógico Aritmético (Alsu). La ALSU tiene varias líneas de selección que escogen una operación en particular de la unidad. que contiene 4 buffers de salida triestado y actúan como entrada y salida de datos. La unidad de control activa las microoperaciones cuando ejecuta las instrucciones del programa. La línea R/W del secuenciador define si es entrada o salida de datos. La unidad de corrimiento lógico aritmético (ALSU) es un circuito combinatorio que realiza un número de microoperaciones aritméticas. el cual dispone de dos circuitos integrados 74125 y 74126. a base de puertas lógicas. que funciona como un registro de instrucciones y luego se aplica a las líneas de selección de la ALU (S0-S1-S2 y S3). Las variables de selección pueden especificar hasta 2 operaciones distintas.2. Mediante un circuito decodificador. Cuando por el 74125 se recibe un código OP este se carga en el circuito integrado 7475 (cuádruple cerrojo de flip-flop D). se comprueban las señales M4-M5-M6 Y M7 y se obtienen el valor de M que define en la ALU si se trata de una operación lógica o aritmética. lógicas y de corrimiento.

no contribuye a la suma durante la conversión. Un número binario se expresa con una cadena de unos (1) y ceros (0) y un punto binario posible como 11010. Por ejemplo: (11010)2 = 1x24 + 1x23 + 0x22 + 1x21 + 0x20 = (26)10 Tabla 6–1: Potencias de dos.25 = (53.072 262.11. 210 se denomina K (Kilo).194.024 2.608 Los dígitos de un número binario se llaman bits.1.5 + 0.048 4.152 4. con dos dígitos: 0 y 1.048. El equivalente decimal de un número binario se puede obtener extendiéndolo a una serie de potencias con una base de 2.777.096 8. y 230. 220 se llama M (Mega).304 8. G (Giga). Números Binarios. primero se determina el número mayor de la tabla 6–1 que se pueda restar a N y se produzca una diferencia positiva.75)10 En el trabajo de computadora. N 0 1 2 3 4 5 6 7 2n 1 2 4 8 16 32 64 128 n 8 9 10 11 12 13 14 15 2n 256 512 1. En consecuencia. Para convertir el número decimal N a binario.288 1.768 N 16 17 18 19 20 21 22 23 2n 65. El sistema de numeración binario es un sistema de base 2. Cuando un bit es igual a 0.144 524. Determínese otro número de la tabla 6–1 que se pueda restar a N1 y se produzca una diferencia positiva N2.384 32.388. Sistemas Numéricos 6.11)2 = 32 + 16 + 4 + 1 + 0. la conversión a decimal se puede obtener sumando los números con potencias de dos correspondientes a los bits que sean iguales a 1.097. Se continuará con este procedimiento hasta UNIVERSIDAD ANDINA DEL CUSCO 14 .576 2. La conversión de un número decimal a binario se puede realizar fácilmente a través de un método que resta acertadamente potencias de dos del número decimal.216.192 16. Por lo tanto 4K = 4096 y 16M = 224 = 16.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 6. Por ejemplo: (110101.536 131. La diferencia estará designada por N1.

El sistema numérico hexadecimal es un sistema de base 16. el número decimal se convierte a sus componentes que son potencias de 2. El sistema numérico octal es un sistema de base 8 con ocho dígitos (0.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico que la diferencia valga cero. El número binario equivalente se obtiene a partir de la serie de potencias que forma la suma de los componentes. Este método se demuestra a continuación. C.4. 2. y las letras A. 1. donde los primeros diez dígitos se toman prestados del sistema decimal. Para determinar su valor decimal equivalente se amplia el número en una serie de potencias con una base de 8. En esta forma. D. 4. Se acostumbra pedir prestado los dígitos que se necesitan del sistema decimal cuando la base del número es menor que 10. 6. B. E y F se utilizan para representar los números 10. Un ejemplo de un número hexadecimal es: (B65F)16 = 11x163 + 6x162 + 5x161 + 15x160 = (46687)10 UNIVERSIDAD ANDINA DEL CUSCO 15 . Un ejemplo de un número octal es 127. (127. 3. 14 y 15. Números Octales y Hexadecimales. 5.4)8 = 1x82 + 2x81 + 7x80 + 4x8-1 = (87. respectivamente.5)10 Obsérvese que los dígitos 8 y 9 no pueden figurar en un número octal. a través de la conversión de 625 decimal a binario: 625 – 512 = 113 113 – 64 = 49 49 – 32 = 17 17 – 16 = 1 – 1 = 1 0 512 = 29 64 = 26 32 = 25 16 = 24 1 = 20 (625)10 = 29 + 26 + 25 + 24 + 20 = (1001110001)2 6. 7). 12. Las letras del alfabeto se utilizan para complementar los dígitos cuando la base del número es mayor que 10. 13. 11.2.

el primer bit significativo alterna entre 0 y 1. UNIVERSIDAD ANDINA DEL CUSCO 16 . el segundo bit significativo lo hace entre dos ceros y dos unos. cada digito octal. Como 23 = 8 y 24 = 16. Los sistemas octal y hexadecimal son útiles para representar cantidades binarias en forma indirecta porque poseen la propiedad de que sus bases son potencias de 2. La conversión de binario a octal se realiza fácilmente partiendo o dividiendo el número binario en grupos de tres bits. cada uno.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Tabla 6–2: Números con bases diferentes. y el cuarto entre ocho ceros y ocho unos. binario. el tercero alterna entre cuatro ceros y cuatro unos. Decimal (base 10) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Binario (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Octal (base 8) 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 Hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F Los primeros 16 números de los sistemas decimal. corresponde a tres dígitos binarios y cada dígito hexadecimal corresponde a cuatro dígitos binarios. Todas las computadoras y sistemas digitales utilizan la representación binaria. Nótese que la secuencia de números binarios sigue un patrón prescrito. octal y hexadecimal se presentan en la tabla 6–2.

puede representarse en el sistema octal con sólo cinco dígitos en el intervalo de 0 a 77777. Cuando nos comunicamos con la computadora a través de interrupciones de la consola o por medio de un programa en lenguaje de máquina. Un grupo de 15 bits. Después. el digito octal correspondiente se asigna a cada grupo. 001 010 = (110111011. 1111 0000 0110)2 = (2C6B. salvo que el número binario se divide en grupos de cuatro dígitos.F06)16 El dígito hexadecimal correspondiente de cada grupo de cuatro bits se presenta en la tabla 6–2.7406)8 El digito octal correspondiente a cada grupo de tres bits se obtiene de los primeros ocho registros de la tabla 6–2. La conversión de octal o hexadecimal a binario se lleva a cabo a través de un procedimiento contrario al anterior. La elección entre la representación octal o hexadecimal de números binarios es arbitraria y se determina a partir del manual específico. 111 100 000 110)2 = (26153.11)2 La mayoría de los manuales de computadoras utilizan números octales o hexadecimales para especificar las cantidades binarias en la máquina. UNIVERSIDAD ANDINA DEL CUSCO 17 . por ejemplo. la conversación de octal o hexadecimal a binario (y viceversa) se realiza fácilmente a través del método de agrupación de los bits. El ejemplo que sigue ilustra el procedimiento: (010 110 001 101 011.C)16 = 0011 1010 0110. El número binario anterior se convierte a hexadecimal como sigue: (0010 1100 0110 1011. 1100 = (1110100110. Nótese que se pueden agregar ceros libremente a la izquierda o a la derecha para hacer que el número total de bits sea un múltiplo de tres.00101)2 (3A6.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico comenzando desde el punto binario y continuando a la izquierda y a la derecha. Durante un proceso de comunicación entre personas (más o menos cantidades binarias en la computadora) la representación octal o hexadecimal es más adecuada porque los números pueden expresarse en forma más compacta con una tercera o cuarta parte del número de dígitos. Análogamente.12)8 = 110 111 011. Cada dígito octal se convierte en un equivalente binario de tres dígitos. Un grupo de 16 bits se puede representar en hexadecimal con cuatro dígitos en el intervalo de 0 a FFFF. La conversión de binario a hexadecimal es semejante. cada dígito hexadecimal se convierte en su equivalente binario de cuatro dígitos. Esto se ilustra en los ejemplos siguientes: (673.

La sucesión de pasos para sumar los dos números hexadecimales 59F y E46 es la siguiente: Hexadecimal UNIVERSIDAD ANDINA DEL CUSCO Decimal equivalente 18 . (Un préstamo en el sistema decimal suma 10 a un dígito del minuendo). Cualquier acarreo que se obtenga en una columna dada es usado por los dígitos de la columna una posición significativa más arriba. los productos parciales son iguales al multiplicando o a 0. Operaciones Aritméticas. sumar los dígitos en decimal y después convertir el resultado a la suma y acarreo correspondientes en el sistema de base r. salvo que el dígito de la suma en cualquier posición significativa puede ser sólo 1 o 0.10011 00011 Multiplicador: x 101 1011 0000 1011 Producto: 110111 La suma de dos números binarios se calcula siguiendo las mismas reglas que se aplican a los números decimales. Por lo tanto. Las reglas de la sustracción son las mismas que se aplican al sistema decimal.3.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 6. Los dígitos multiplicadores son siempre 1 o 0. La multiplicación es muy sencilla. A continuación se dan ejemplos de adición. Cuando se usa una base que no sea la 10. Una alternativa más sencilla para sumar dos números con base r consiste en convertir cada pareja de dígitos de una columna a decimal. hexadecimal o cualquier otro sistema de base r normalmente requerirán la formulación de tablas de las cuales se obtengan sumas y productos de dos dígitos con base r. salvo que al pedir prestado de una columna dada se suman dos al dígito del minuendo. Las operaciones aritméticas con números en base r siguen las misma reglas que los números decimales. Las operaciones aritméticas con el sistema octal. se debe tener cuidado de emplear sólo r dígitos admisibles y realizar todos los cálculos con dígitos de base r. sustracción y multiplicación de dos números binarios: Consumando: Sumando: Suma: 10110 + 10011 101001 Minuendo: Sustraendo: Diferencia: 10110Multiplicando: 1011 .

6. Esto produce un dígito de suma de 5 y un acarreo a los dígitos de la columna del siguiente orden superior. La conversión de un entero decimal a un número en base r.4. Esto se ilustra en la multiplicación de dos números octales. Las otras dos columnas se suman en forma similar. La multiplicación de dos dígitos octales más un acarreo. En vez de sumar F + 6 en hexadecimal. El dígito de la izquierda del resultado octal de dos dígitos produce el acarreo que se debe sumar al producto siguiente. Después se vuelve a hacer la conversión a hexadecimal observando que 21 = 16 + 5. Los dígitos octales del 0 al 7 tienen el mismo valor que sus dígitos decimales correspondientes. se realiza en decimal y después el resultado se convierte de nuevo a octal. que se presenta a continuación: Octal 762 45 4672 3710 43772 Octal 5x2 5x6+1 5x7+3 4x2 4x6+1 4x7+3 Decimal 10 = 8 + 2 31 = 24 + 7 38 = 32 + 6 8=8+0 25 = 24 + 1 31 = 24 + 7 Octal 12 37 46 10 31 37 Los cálculos del lado derecho muestran los cálculos mentales que se realizan para obtener cada pareja de dígitos octales. si lo hay. Conversión de decimal a otra base. se realiza dividiendo el número y todos los cocientes sucesivos entre r y acumulando los residuos. (762)8 x (45)8. se suman los decimales equivalentes 15 + 6 = 21.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 1 5 9 F + E 4 6 1 3 E 5 5 14 19 = 16 + 3 9 4 14 15 6 21 = 16 + 5 Las columnas decimales equivalentes representan el razonamiento mental que debe efectuarse a fin de producir la suma hexadecimal. uno a uno. Este UNIVERSIDAD ANDINA DEL CUSCO 19 . La multiplicación de dos números de base r se puede realizar haciendo todas las operaciones aritméticas en decimal y convirtiendo los resultados intermedios.

5000 x 2 = 1. La conversión de una fracción decimal a base r se logra a través de un método similar al que se usa para los números enteros. y se acumulan los enteros y no los residuos. existe un número finito de dígitos en el número convertido.6875 x 2 = 1.3750 0.3750 x 2 = 0. Obsérvese que el primer entero produce el primer y más significativo bit de la fracción. También se puede utilizar este procedimiento para convertir números decimales en binario.6875 a binario: 0. En este ejemplo. por lo tanto. la base del número convertido es 2 y. todas las divisiones se deben efectuar entre 2. Por ejemplo: Conviértase la fracción decimal 0.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico procedimiento se explica mejor a través del siguiente ejemplo: Conviértase el número 153 decimal a octal. Obsérvese que el primer residuo produce el dígito menos significativo del número convertido y que los cocientes se dividen entre r hasta que el resultado es 0. En este caso. El UNIVERSIDAD ANDINA DEL CUSCO 20 Entero = 1 = 0 = 1 = 1 Dígito menos significativo Dígito más significativo Residuo = 1 = 0 = 0 = 1 = 0 = 1 Dígito más significativo Dígito menos significativo Residuo = 1 = 3 = 2 Dígito más significativo Dígito menos significativo .7500 0. 153/8 = 19 + 1/8 19/8 = 2 + 3/8 2/8 = 0 + 2/8 Resultado: (153)10 = (231)8. salvo que la multiplicación por r se usa en vez de la división. Conviértase el número decimal 41 a binario: 41/2 = 20 + 1/2 20/2 = 10 + 0/2 10/2 = 5 + 0/2 5/2 = 2 + 1/2 2/2 = 1 + 0/2 1/2 = 0 + 1/2 Resultado: (41)10 = (101001)2.0000 Respuesta: (0.7500 x 2 = 1.5000 0.6875)10 = (1011)2.

r = 10 y r – 1 = 9.656 x 8 = 5.5. El complemento radical disminuido.1.248 x 8 = 1.104 x 8 = 0.513 a octal: 153/8 = 19 + 1/8 19/8 = 2 + 3/8 2/8 = 0 + 2/8 0. Cuando el valor de la base r se sustituye en el nombre. Los complementos se utilizan en las computadoras digitales para simplificar la operación de sustracción o resta y para realizar la manipulación lógica. Complementos.104 0.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico proceso de multiplicar fracciones por r no necesariamente termina con ceros. de manera que debemos decidir cuántos dígitos de la fracción utilizar de la conversión.40651)8 6. La conversión de números decimales con partes enteras y fraccionarias se realiza convirtiendo cada parte por separado y después combinando las dos respuestas.5. El primero se conoce como el complemento a r's y el segundo como el complemento a (r – 1)'s. el complemento a (r – 1)'s de N se define como (rn – 1) – N.40651)8. El complemento radical y.832 x 8 = 6. 2. 6.832 0. 10 representa un número que consta de un 1 seguido de n ceros. 10n – 1 es un número representado por n UNIVERSIDAD ANDINA DEL CUSCO 21 . Existen dos tipos de complementos para cada sistema de base r.513)10 = (0.656 0.513 x 8 = 4.513)10 = (231. Combinando las dos resultados obtenemos que (153. Para números decimales. de esto modo el complemento a 9's de N es (10n – 1) – N. Complemento radical disminuido.984 Entero Residuo = 1 = 3 = 2 = 4 = 0 = 6 = 5 = 1 Dígito menos significativo Dígito más significativo Dígito más significativo Dígito menos significativo Resultado de la parte entera: (153)10 = (231)8 Resultado de la parte fraccionaria: (0. Podemos utilizar el siguiente ejemplo: Convertir el número decimal 153. Ahora.248 0. los dos tipos se conocen como complementos a 2's y a 1's para números binarios y a 10's y a 9's para números decimales. Dado un número N en base r que tiene n dígitos. 1.

A continuación se presentan algunos ejemplos numéricos. restando el primer dígito menos significativo distinto de cero a 10 y luego restando todos los dígitos significativos superiores a 9. El complemento a 10's para 246700 es 753300 y se obtiene dejando los dos ceros sin UNIVERSIDAD ANDINA DEL CUSCO 22 . En consecuencia. lo que hace que el bit cambie de 0 a 1 o bien de 1 a 0. es: 99999 – 12389 = 87610. se tiene 104 – 1 = 9999. El complemento a 9's de 546700. El complemento a r's de un número N de n dígitos en base r. r = 2 y r – 1 = 1. Sin embargo. Por ejemplo.5. respectivamente. Por lo tanto el complemento a 1's de un número binario se obtiene restando cada dígito de 1. Complemento radical. asimismo se puede formar dejando todos los ceros significativos tal y como están. El complemento a 9's de 12389. Haciendo la comparación con el complemento a (r – 1)'s se nota que el complemento a r's se obtiene sumando 1 al complemento a (r – 1)'s puesto que rn – N = (rn – 1) – N + 1. El complemento de a 2's para el número binario 101100. es 010011 + 1 = 010100. Por ejemplo. cuando se restan dígitos binarios de 1. se puede tener 1 – 0 = 1 o 1 – 1 = 0. El complemento a 1's de 1011001. 6. es 7610 + 1 = 7611. es: 999999 – 546700 = 453299. el complemento a 1's de un número binario se forma cambiando unos por ceros y ceros por unos.2. se define como rn – N para N ≠ 0. Lo que sigue son algunos ejemplos numéricos. y se obtiene sumando 1 al valor del complemento a 1's.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico nueves. si n = 4. Una vez más. y 0 para N = 0. se tiene 24 = (10000)2 y 24 – 1 = (1111)2. Por lo tanto. y se obtiene sumando 1 al complemento a 9's. el complemento de a 10's para el número decimal 2389. Se deduce que el complemento a 9's de un número decimal se obtiene restando cada dígito a 9. que es el complemento de a 10's de N. Como 10n es un número representado por 1 seguido de n ceros (0). de este modo el complemento a 1's de N es (2n – 1) – N. es 0100110 El complemento a 1's de 0001111. si n = 4. 2n – 1 es un número binario representado por n unos. En el caso de números binarios. 2n se representa por medio de un número binario que consta de un 1 seguido de n ceros. es 1110000 El complemento de a (r – 1)'s de números octales o hexadecimales se obtiene restando cada dígito 7 o F (15 decimal). 10n – N.

que se desecha. 6. El complemento a 2's para 1101100 es 0010100. restando 7 a 10 y restando los otros tres dígitos a 9. Cuando la resta se efectúa con hardware digital. El complemento a r's de N es rn – N. Si M < N.3. Este se realiza como M + (rn – N) = M – N + rn. calcúlese el complemento a r's para la suma y colóquese un signo negativo al frente. UNIVERSIDAD ANDINA DEL CUSCO 23 . Si M ≥ N. 2. Este parece ser el método más sencillo cuando las personas realizan la resta con papel y lápiz. se observa que este método es menos eficiente que el que utiliza complementos. en base r se puede hacer de la manera siguiente: 1. 3. Para obtener la respuesta en forma conocida. el complemento a 2's se puede formar dejando todos los ceros menos significativos y el primer 1 tal y como están. la suma producirá un acarreo final. El complemento del complemento es rn – (rn – N) = N que vuelve a dar el número original. la suma no produce un acarreo final y es igual a rn – (N – M) que es el complemento a r's de (N – M). Súmese el minuendo M al complemento a r's del sustraendo N. M – N. El método directo de sustracción que se enseña en las escuelas primarias aplica el concepto de "pedir prestado de otra cantidad". lo que queda es el resultado M – N. En este método. Si el número original N contiene un punto radical. éste debe eliminarse en forma temporal para formar el complemento a r's o a (r – 1)'s. En forma análoga. La resta de dos números sin signo de n dígitos.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico cambios. se pide prestado un 1 de una posición significativa superior cuando el dígito del minuendo es menor que el del sustraendo. y después reemplazando unos por ceros y ceros por unos en todos los demás bits significativos superiores. y se obtiene dejando los dos ceros de bajo orden y el primer 1 como están. rn. y después sustituyendo unos por ceros y ceros por unos en los otros bits más significativos. También cabe mencionar que el complemento del complemento devuelve el número a su valor original. Sustracción con complementos.5. El punto radical se devuelve después al número complementado en la misma posición relativa.

Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Los siguientes ejemplos ilustran este procedimiento: Utilizando el complemento a 10's. Respuesta: –(complemento a 10's para 30718) = –69282 Nótese que debido a que 3250 < 72532. M Complemento a 10's de N Suma Respuesta = = = = 72532 + 96750 169282 -100000 69282 Acarreo final desechado 105 = Nótese que M tiene cinco dígitos y que N tiene sólo cuatro. Mediante el uso del complemento a 10's hágase la resta 3250 – 72532 M Complemento a 10's de N Suma No hay acarreo final. La resta con complementos se realiza con números binarios en forma análoga utilizando el mismo procedimiento que se describió antes. de modo que se escribe N como 03250. Puesto que manejamos números sin signo. Cuando se hace la resta con complementos. se reconoce que la respuesta debe cambiarse por un número negativo con signo. no hay manera de obtener un resultado sin signo en este caso. Calculando el complemento a 10's de N se obtiene un 9 en el posición más significativa. El acarreo final significa que M > N y el resultado es positivo. Dados los números binarios X = 1010100 y Y = 100011. efectuar la resta 72532 – 3250. hágase la resta X – Y y Y – X utilizando complementos de 2. Cuando se trabaja con papel y lápiz. Ambos números deben tener el mismo número de dígitos. la respuesta negativa se reconoce por la ausencia del acarreo final y el resultado complementado. el resultado es negativo. X Complemento a 2's de Y Suma Acarreo final desechado 27 Respuesta: X – Y UNIVERSIDAD ANDINA DEL CUSCO = = = = = 1010100 + 0111101 10010001 -10000000 0010001 24 = = = 03250 + 27468 30718 .

a.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Y Complemento a 2's de X Suma No hay acarreo final.1000011 X Complemento a 1's de Y Suma Acarreo próximo al final Respuesta: X – Y b. Recuérdese que el complemento a (r – 1)'s es uno menos que el complemento a r's. Eliminar el acarreo final y añadir uno a la suma es un procedimiento que se conoce como acarreo próximo al final. porque ese es el tipo de complemento que se usa. Por esto. = = = 1000011 + 0101100 1101111 Respuesta: Y – X = –(Complemento a 2's para 1101111) = –0010001 La resta de números sin signo se puede hacer también por medio del complemento a (r – 1)'s. Repítase el ejemplo anterior utilizando el complemento a 1's. = = = 1000011 + 0101011 1101110 = = = = = 1010100 + 0111100 10010000 +1 0010001 UNIVERSIDAD ANDINA DEL CUSCO 25 . El procedimiento con acarreo próximo al final se puede aplicar también para restar números decimales sin signo con el complemento a 9's. el resultado de sumar el minuendo al complemento del sustraendo produce una suma que es uno menos que la diferencia correcta cuando hay acarreo final. X – Y = 1010100 .1010100 Y Complemento a 1's de X Suma No hay acarreo final. Respuesta: Y – X = –(Complemento a 1's para 1101110) = –0010001 Nótese que el resultado negativo se obtiene calculando el complemento a 1's para la suma. Y – X = 1000011 .

Este es la representación de números con signo que se utiliza en la aritmética ordinaria. El usuario determina si el número tiene o no signo.6. Como los números positivos emplean siempre con 0 (más) en la última UNIVERSIDAD ANDINA DEL CUSCO 26 . La cadena de bits 11001 representa el equivalente binario de 25 cuando se considera como un número sin signo o bien como –9 cuando se considera como un número con signo debido al 1 de la última posición a la izquierda. Si se supone que el número binario no tiene signo. la cadena de bits 01001 puede considerarse como 9 (binario sin signo) o como +9 (binario con signo). Como consecuencia. Números Binarios con Signo. Por ejemplo. Los enteros positivos. porque el último bit a la izquierda es 0. Cuando se efectúan operaciones aritméticas en una computadora. el sistema del complemento con signo vuelve negativo un número calculando su complemento. para representar enteros negativos. se necesita una notación de valores negativos. se acostumbra representar el signo con un bit colocado en la última posición a la izquierda del número. En este sistema un número negativo se indica a través de su complemento. el número consta de una magnitud y un símbolo (+ o –). o un bit (0 o 1) que indica el signo. incluyendo el cero. Sin embargo. conviene más emplear un sistema diferente para representar números negativos conocidos como sistema de complemento con signo. Es importante entender que los números binarios con y sin signo constan de una cadena de bits cuando se representan en una computadora. Debido a las limitaciones de hardware. entonces el último bit a la izquierda representa el signo y el resto de los bits representan el número. entonces el último bit a la izquierda es el más significativo del número. En la aritmética ordinaria. Si el número binario tiene signo. un número negativo se indica a través de un signo menos. que designa un signo menos y los otros cuatro bits que representan el 9 binario. La representación de los números con signo en el último ejemplo recibe el nombre de sistema de magnitud con signo. y un número positivo por un signo más. La convención hace que el bit del signo sea 0 para valores positivos y 1 para negativos. las computadoras deben representar todo con unos y ceros incluyendo el signo de un número. se pueden representar como números sin signo. En este sistema. Por lo general no hay confusión al identificar los bits porque se conoce con anticipación el tipo de representación del número. Mientras que el sistema del signo y la magnitud vuelve negativo un número cambiando su signo.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 6.

incluyendo el bit del signo. –9 se obtiene a partir de +9 cambiando el bit del signo de la última posición a la izquierda de 0 a 1. En el complemento a 1's con signo. existen tres maneras diferentes de representar –9 utilizando ocho bits: En la representación de la magnitud con signo : 10001001 En la representación del complemento a 1's con signo: 11110110 En la representación del complemento a 2's con signo: 11110111 En la magnitud con signo. incluyendo el bit del signo. se insertan ceros entre el bit del signo y el primer 1. Aunque sólo hay una manera de representar el número +9. El sistema del complemento a 2's con signo tiene sólo una representación para 0 y siempre es positiva. esta es la forma en que se distinguen de los números positivos. –9 se obtiene complementando todos los bits de +9. Así +9 se representa con un bit de signo de 0 en la última posición a la izquierda seguido del equivalente binario de 9 para da 00001001. en consecuencia. Para poner un ejemplo considérese el número 9 representado en binario con ocho bits. En la representación del complemento a 2's. En la tabla 1–3 se presenta una lista de todos los números binarios con signo de 4 bits posibles en las tres representaciones. existen ocho números positivos y ocho negativos. Nótese que todos lo números negativos tienen un 1 en la posición del último bit a la izquierda. se obtiene calculando el complemento a 2's del número positivo.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico posición a la izquierda. incluyendo dos ceros. Con cuatro bits se pueden representar 16 números binarios. Los otros dos sistemas tienen un 0 positivo y un 0 negativo. La representación del complemento a 2's con signo de –9. El número decimal equivalente se presenta también con fines de referencia. hay ocho números positivos incluyendo un cero y ocho números negativos. Nótese que los números positivos de las tres representaciones son idénticos y tienen un 0 en la última posición hacia la izquierda. Nótese que los ocho bits deben tener un valor y. Tabla 6–3: UNIVERSIDAD ANDINA DEL CUSCO 27 . En las representaciones de magnitud con signo y en las del complemento a 1's. caso que se ve en la aritmética ordinaria. El sistema del complemento con signo puede utilizar el complemento a 1's o a 2's pero el complemento a 2's es el más común. el complemento comenzará por lo regular con un 1 que indica un número negativo.

6. 6. El complemento a 1's presenta dificultades debido a las dos formas que tiene para representar el 0 y rara vez se emplea en operaciones aritméticas. pero es difícil de emplear cuando se aplica en la aritmética de computadora. excepto en algunas computadoras más antiguas. Por lo tanto. La adición o suma de dos números en el sistema de magnitud con signo se apega a las reglas de la aritmética ordinaria. Decimal +7 +6 +5 +4 +3 +2 +1 +0 -0 -1 -2 -3 -4 -5 -6 -7 -8 Complemento a 2's con signo 0111 0110 0101 0100 0011 0010 0001 0000 –– 1111 1110 1101 1100 1011 1010 1001 1000 Complemento a 1's con signo 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 –– Magnitud con signo 0111 0110 0101 0100 0011 0010 0001 0000 1000 1001 1010 1011 1100 1101 1110 1111 –– El sistema de magnitud con signo se utiliza en la aritmética ordinaria.1. se suman UNIVERSIDAD ANDINA DEL CUSCO 28 . el complemento con signo es el procedimiento que se utiliza normalmente.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Números binarios con signo. Si los signos son los mismos. Adición aritmética. El complemento a 1's es útil como operación lógica porque el cambio de 1 a 0 o de 0 a 1 es equivalente a una operación lógica de complemento.

La suma de dos números binarios con signo. si es negativo. los números negativos deben estar inicialmente en complemento a 2's y que el resultado que se obtiene después de la suma. incluyendo los bits de los signos. incluyendo sus bits de signos. se encuentra en forma de complemento a 2's. (+25) + (–37) = – (37 – 25) = – 12.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico las dos magnitudes y se da a la suma el signo común. A continuación se dan varios ejemplos numéricos de la adición. Si los signos son diferentes. El mismo procedimiento se aplica a números binarios en representación de signo y magnitud. Por ejemplo. se obtiene a partir de l suma de los dos números. Nótese que. En contraste. se resta la magnitud menor de la mayor y se da al resultado el signo de la magnitud mayor. el desbordamiento no causa problema porque no estamos limitados a la anchura de la página. + 6 + 13 + 19 00000110 00001101 00010011 – 6 + 13 + 7 11111010 00001101 00000111 + 6 – 13 – 7 00000110 11110011 11111001 – 6 – 13 – 19 11111010 11110011 11101101 En cada uno de los cuatro casos. se dice que ocurre un desbordamiento. El procedimiento es muy simple y se puede enunciar en la forma siguiente en el caso de números binarios. Este es un proceso que requiere la comparación de los signos y las magnitudes y luego efectuar la suma o la resta. Cualquier acarreo fuera de la posición del bit del signo se desecha y los resultados negativos se encuentran automáticamente en forma de complemento a 2's. la operación que se realiza es la adición. A fin de obtener una respuesta correcta. Si comenzamos con dos números de n bits y la suma ocupa n + 1 bits. UNIVERSIDAD ANDINA DEL CUSCO 29 . Se elimina un acarreo fuera de la posición del bit del signo. con números negativos representados en forma de complemento a 2's con signo. y se efectúa restando la magnitud menor 25 de la mayor 37 y utilizando el signo 37 como el signo del resultado. sino sólo una suma o adición. Cuando se realiza la suma con papel y lápiz. la regla de adición o suma de números en el sistema del complemento con signo no requiere una comparación o sustracción. debemos asegurarnos de que el resultado tenga un número de bits suficiente para dar cabida a la suma.

Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Simplemente sumamos otro 0 a un número positivo y otro 1 a un número negativo. es necesario convertirlo en un número positivo para ponerlo en una forma más conocida. El desbordamiento da problemas en las computadoras porque el número de bits que alojan un número es finito. y no se puede dar cabida a un resultado que exceda el valor finito en 1. Por ejemplo. que es el equivalente binario de +7. Lo contrario también es cierto porque el complemento de un número negativo en forma de complemento produce el número positivo equivalente. para extenderlos a n + 1 bits y después se hace la suma. La forma de complemento para representar números negativos es desconocida para las personas habituales al sistema de la magnitud con signo. Este procedimiento surge del hecho de que una operación de sustracción se puede cambiar por una operación de adición. Considérese la resta (–6) – (–13) = +7. Para determinar el valor de un número negativo cuando está en complemento a 2's con signo. La sustracción se cambia por adición calculando el complemento a 2's del sustraendo (–13) para producir (+13). en la posición más significativa. La sustracción o resta de dos números binarios con signo cuando los números negativos están en forma de complementos a 2's es muy simple y se puede enunciar de la manera siguiente: Calcúlese el complemento a 2's del sustraendo (incluyendo el bit del signo) y súmese al minuendo (incluyendo el bit del signo). En sistema binario con ocho bits se escribe como (11111010 – 11110011). el número binario con signo 11111001 es negativo porque el último bit a la izquierda es 1. Esto lo demuestra la relación siguiente: ( ± A) – ( + B) = ( ± A) + ( – B) ( ± A) – ( – B) = ( ± A) + ( + B) Pero el cambio de un número positivo por uno negativo se realiza fácilmente calculando su complemento a 2's. Sustracción aritmética.2. Se desecha un acarreo fuera de la posición del bit de signo. 6. se reconoce que el número es igual a –7. Por lo tanto.6. Su complemento a 2's es 00000111. si se cambia el signo del sustraendo. En sistema binario eso es 11111010 + 00001101 = UNIVERSIDAD ANDINA DEL CUSCO 30 .

La combinación de bits de un código de n bits se determina a partir de la cuenta en sistema binario de 0 a 2n .7.1. Un conjunto de cuatro elementos se puede codificar con dos bits. donde a cada elemento se le asigna una de las siguientes combinaciones de bits: 00. 11. la asignación del código será ambigua. realizar todas las operaciones aritméticas en sistema binario y luego convertir los resultados binarios de nuevo a sistema decimal. 10. Un código binario es un grupo de n bits que suponen hasta 2n combinaciones distintas de unos y ceros.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 100000111. Cabe observar que los números binarios en el sistema del complemento con signo se suman y restan por medio de las mismas reglas de suma y resta básicas de los números que no tienen signo. Un código binario tendrá algunas combinaciones de bits no asignadas si el número de elementos en el conjunto no es una potencia de 2. en caso contrario. 6. 01. También es posible realizar las operaciones aritméticas directamente con números decimales cuando están almacenadas en la computadora en forma codificada. Un conjunto de ocho elementos requiere un código de tres bits y uno de 16 elementos requiere un código de cuatro bits. El usuario o programador debe interpretar los resultados de tal adición y sustracción en forma diferente. Una manera de resolver esta diferencia consiste en convertir los números decimales a binarios. Las diez cifras decimales UNIVERSIDAD ANDINA DEL CUSCO 31 . Como la computadora sólo puede aceptar valores binarios. El sistema de numeración binaria es el más natural para una computadora. dependiendo de sí se supone que los números tienen o no signos. A cada elemento se le debe asignar una combinación de bits binarios única y desde luego dos elementos no pueden tener el mismo valor. pero las personas están acostumbradas al sistema decimal. Eliminando el acarreo final se obtiene la respuesta correcta 00000111 (+7). las computadoras sólo necesitan un circuito de hardware común para manejar ambos tipos de aritmética. Por lo tanto. debemos representar las cifras decimales a través de un código que contenga unos y ceros (1 y 0). donde cada combinación representa un elemento del conjunto que se codifica. Este método requiere que se almacenen los números decimales en la computadora en una forma en que se puedan convertir a binarios. Códigos Decimales (BCD).

A éste se le llama decimal codificado binario y se conoce comúnmente como BCD. según se representa en la Tabla 6-4. Un número en BCD mayor que 10 se ve diferente de su número binario equivalente aunque ambos contengan unos y ceros (1 y 0). Además. Un número decimal en BCD es el mismo que su número binario equivalente sólo cuando el número está entre 0 y 9. El código que se utiliza más comúnmente para representar los dígitos decimales es la asignación binaria directa. pero seis de las 16 posibles combinaciones se mantendrán no asignadas. Se pueden obtener numerosos códigos binarios diferentes disponiendo cuatro bits en diez combinaciones distintas. Considérese el número decimal 185 y su valor correspondiente en BCD y en binario: UNIVERSIDAD ANDINA DEL CUSCO 32 . las combinaciones binarias de la 1010 a la 1111 no se utilizan y no tienen significado alguno en el código BCD. Un código binario que distingue entre diez elementos debe contener al menos cuatro bits. Tabla 6 – 4: Decimal Codificado Binario BCD Símbolo Decimal 0 1 2 3 4 5 6 7 8 9 Dígito BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 La Tabla 6-4 representa el código de cuatro bits para un dígito decimal. donde cada grupo de cuatro bits representa un dígito decimal.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico forman dicho conjunto. Un número con n dígitos decimales requerirá 4n bits en BCD. El decimal 396 se representa en BCD con 12 bits como 0011 1001 0110.

Considérese la adición o suma de dos dígitos decimales en BCD. La única diferencia entre un número decimal y un BCD es que los decimales se escriben con los símbolos 0.. según se requiere. Considérense las tres adiciones BCD siguientes: 4 +5 9 0100 +0101 1001 4 +8 12 0100 +1000 1100 8 +9 17 1000 +1001 1 0001 33 UNIVERSIDAD ANDINA DEL CUSCO . donde 1 es el acarreo. 1. o menor que 1001 (sin acarreo). 6. 0010. 9 y los números BCD utilizan los códigos binarios 0000. . Es importante entender que los números BCD son números decimales y no números binarios. lo convierte en el digito correcto y produce asimismo un acarreo.. hay una ventaja en el uso de números decimales porque los datos de entrada y salida de una computadora son generados por personas que emplean el sistema decimal. aunque se representen en bits.7. Como cada digito no es mayor que 9. 0001.1.. Pero cuando la suma binaria es mayor que o igual a 1010. junto con un posible acarreo desde un par anterior de dígitos menos significativos. la suma no puede ser mayor que 9 + 9 + 1 = 19. el resultado es un dígito BCD no válido. Sin embargo... La suma binaria dará un resultado en el intervalo de 0 a 19.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico (185)10 = (0001 1000 0101)BCD = (10111001)2 El valor BCD tiene 12 bits pero el número binario equivalente necesita sólo ocho bits. La suma del 6 binario (0110) 2. Los valores binarios correspondientes son 1010 y 1111 y sólo tiene cuatro bits. Es evidente que un número BCD necesita más bits que su valor binario equivalente. 2. 1001. pero el valor del número es exactamente el mismo. En binario el intervalo será de 0000 a 10011 pero en BCD deber ser de 0000 a 1 1001. El 10 decimal se representa en BCD con ocho bits como 0001 0000 y el 15 decimal como 0001 0101.10 = 6. el primer 1 es un acarreo y los cuatro bits que siguen son la suma de dígitos BCD. Esto se debe a que la diferencia entre un acarreo en la posición 24 de la suma binaria y un acarreo decimal es 16 . Adición BCD.. Supóngase que se suman los dígitos BCD como si se tratara de números binarios. Cuando la suma binaria es igual a. . el digito BCD correspondiente es correcto. a la suma.

Esta condición ocurre cuando la suma es mayor que. dan un suma binaria de 0111 que no requiere de corrección.2.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico +0110 1 0010 + 0110 1 0111 En cada caso. la suma binaria produce un dígito BCD no válido. Aritmética decimal. la suma binaria requiere una corrección porque hay un acarreo. la suma binaria produce un acarreo. En el primer ejemplo. Si la suma binaria es mayor que o igual a 1010. El tercer par de dígitos. La representación de números decimales con signo en BCD es similar a la representación de números con signo en binario. se suma 0110 para obtener la suma de dígitos BCD correcta. Aunque los otros cuatro bits son menores que 1001.7. los dos dígitos BCD se suman como si fueran dos números binarios. más un acarreo previo. La suma de 0110 produce la suma de dígitos BCD correcta 0010 (2) y un acarreo. Al sumar 0110. La suma de dos números BCD sin signo de n dígitos sigue el mismo procedimiento. En el tercer ejemplo. 6. o igual a 16. En el segundo ejemplo. Considérese la adición 184 + 576 = 760 en BCD: Acarreo BCD 1 0001 + 0101 Suma binaria Suma de 6 Suma BCD 0111 0111 1 1000 0111 10000 0110 0110 0100 0110 1010 0110 0000 760 184 + 576 El primer par de dígitos BCD menos significativos da una suma de dígitos BCD de 0000 y un acarreo para el siguiente par de dígitos. se obtiene la suma de dígitos BCD requerida 0111 (7) y un acarreo BCD. Podemos emplear el conocido UNIVERSIDAD ANDINA DEL CUSCO 34 . dan una suma de dígitos de 0110 y un acarreo para el siguiente par. El segundo par de dígitos BCD. más un acarreo. la suma es igual a 9 y es la suma de dígitos BCD correcta.

La resta o sustracción de números decimales.8. del segundo número. efectuada en el sistema de complemento con signo: 0 375 + 9 760 0 135 El 9 de la última posición a la izquierda. Los dos números se suman y se desecha el acarreo final para obtener +135. ello supone que todos los números negativos están en forma de complementos a 10's. El usuario de la computadora puede especificar. se calcula el complemento a 9's se calcula restando cada dígito a 9. incluyendo los dígitos de los signos. que la operación aritmética se debe realizar con números decimales sin convertirlos a binarios.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico sistema de la magnitud con signo o bien el sistema del complemento con signo. sin signo o en el sistema del complemento a 10's con signo. Claramente. a través de instrucciones programadas. Calcúlese el complemento a 10's del sustraendo y súmese al minuendo. La suma se efectúa con dígitos BCD como se describió antes. Los procedimientos desarrollados para el sistema del complemento a 2's con signo. La adición se efectúa sumando todos los dígitos. es la misma que en el sistema binario. y desechando el acarreo final. Muchas computadoras tienen Hardware especial para efectuar operaciones aritméticas directamente con números decimales en BCD. representa un signo de menos y 9760 es el complemento a 10's para 0240. Considérese la adición (+375) + (-240) = +135. incluyendo el del signo. 6. El signo de un número decimal suele representarse con cuatro bits para coincidir con el código de cuatro bits de los dígitos decimales. pese este último es el que se utiliza con mayor frecuencia. Operaciones de Punto Flotante. El sistema de magnitud con signo es difícil de utilizar con computadoras. El sistema de complemento con signo puede ser el complemento a 9's o a 10's. Es costumbre designar un signo más con cuatro ceros y un signo menos con el equivalente BCD de 9 que es 1001. Para obtener el complemento a 10's de un número BCD. los números decimales contenidos en la computadora deben estar en BCD. Desde luego. se aplican también al sistema del complemento a 10's con signo para números decimales. 35 UNIVERSIDAD ANDINA DEL CUSCO .

el número decimal +6132. El número de punto flotante tiene dos partes. Un cero no puede ser UNIVERSIDAD ANDINA DEL CUSCO 36 . La primera contiene una fracción (a veces como mantisa) y la segunda designa la posición del punto decimal y recibe el nombre de exponente. Sólo la fracción y el exponente se representan físicamente en registros de computadora.6132789 Exponente +04 El valor del exponente indica que la posición real del punto decimal está cuatro posiciones a la derecha del punto decimal indicado en la fracción. Un número binario de punto flotante se representa en forma análoga. Por ejemplo. salvo que utiliza una base 2 para el exponente. Los números normalizados ofrecen la máxima precisión posible para el número de punto flotante. el número binario +1001. Por ejemplo. la fracción decimal 0. Los números decimales de punto flotante se interpretan como aquellos que representan un número en la forma: F x 10E Donde F es la fracción y E el exponente.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico En muchos cálculos científicos. El número de punto flotante es equivalente a: F x 2E = +(. La forma de ampliar el intervalo de números consiste en expresarlos en notación de punto flotante. La base 10 y el punto decimal de la fracción se dan por hecho y no se muestran en forma explícita.0035 no lo es.6132789 x 10+4.1001110)2 x 2+4 Se dice que un número de punto flotante es normalizado si el dígito más significativo de la fracción es un número distinto de cero. El exponente tiene el número binario equivalente a +4. el intervalo de números es muy grande. Por ejemplo.350 es normalizado pero 0. El punto binario de la fracción va después del bit del signo pero no se muestra en el registro.11 se representa con una fracción de ocho bits y un exponente de seis bits como: Fracción 01001110 Exponente 000100 La fracción tiene un 0 en la última posición a la izquierda para denotar un signo más. Esta representación es equivalente a la notación científica +.789 se representa en notación de punto flotante como: Fracción +.

Considérese la suma de los siguientes números de punto flotante. Podemos correr el primer número tres posiciones a la izquierda o desplazar el segundo número tres posiciones a la derecha. El número más grande que se puede alojar es aproximadamente equivalente al 10615 decimal. Considérese una computadora con registros de 48 bits.5372400 x 102 + . El procedimiento de alineación habitual consiste en correr la fracción que tenga el exponente menor a la UNIVERSIDAD ANDINA DEL CUSCO 37 . Por lo general.1.8. y un exponente con un bit de signo y 11 unos. Cuando las fracciones se almacenan en registros.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico normalizado porque no tiene un dígito distinto de cero. Es preferible aplicar el segundo método porque sólo reduce la precisión. El corrimiento a la derecha ocasiona una pérdida de dígitos menos significativos. La representación de punto flotante aumenta el intervalo de números que se pueden acomodar en un registro dado.1580000 x 10-1 Es necesario que los dos exponentes sean iguales antes de que se puedan sumar las fracciones. 6. el corrimiento a la izquierda provoca una pérdida de dígitos más significativos. el intervalo de enteros con signo será ±(247 – 1) que es aproximadamente ±1014. El número positivo o negativo mayor que se puede alojar es ± (1 – 2-35) x 2+2047 Este número se obtiene de una fracción que contiene un bit de signo y 35 unos. se representa en punto flotante por medio de ceros exclusivamente en la fracción y el exponente. Como se debe reservar un bit para el signo. La alineación se realiza corriendo una fracción y ajustando su exponente hasta que sea igual al otro exponente. Operaciones Aritméticas con Números de Punto Flotante. Los 48 bits se pueden emplear para representar un número de punto flotante con 36 bits para la fracción y 12 para el exponente. Las operaciones aritméticas con números de punto flotante son más complicados que con números enteros y su ejecución requiere más tiempo y hardware más complejo. El exponente máximo es 211 – 1 o 2047. La suma y resta de dos números requiere que los puntos decimales se alineen porque las partes del exponente deben ser iguales antes de que se sumen o resten las fracciones. en tanto que el primero puede inducir un error. .

Cuando se restan dos números. En el ejemplo anterior es necesario desplazar a la izquierda dos veces a fin de obtener .56430 x 105 . la suma puede contener un digito de desbordamiento.00350 x 105 Un número de punto flotante que tiene un 0 en la posición más significativa no es normalizado. el resultado puede contener ceros más significativos en la fracción. Después de esto.5372400 x 102 + . El producto se puede formar multiplicando las dos fracciones y sumando los exponentes. multiplicación y división. y a factores de escala que tienen una base implícita de 16 y un exponente explicito de 7 bits en formato exceso-64. se necesita desplazar la fracción de la izquierda y disminuir el exponente hasta que aparezca un dígito distinto de cero en la primera posición. como de UNIVERSIDAD ANDINA DEL CUSCO 38 .0001580 x 102 . No se maneja la posibilidad de que pueda haber demasiada e insuficiencia. Existen reglas básicas para el manejo de operaciones como la adición. un número de espacios igual a la diferencia entre los exponentes. sustracción.56780 x 105 – . Las reglas tienen el fin de especificar solamente los pasos principales necesaria para realizar las cuatro operaciones. se pueden sumar las fracciones. de números de punto flotante.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico derecha. como se muestra en el ejemplo que sigue: . Además los resultados intermedios tanto de alguna mantisa.35000 x 103.5373982 x 102 Cuando se suman dos fracciones normalizadas. La división se realiza dividiendo las fracciones y restando los exponentes. . Para normalizarlo. En la mayoría de las computadoras. La multiplicación y división de punto flotante no requieren una alineación de las fracciones. se ejecuta un procedimiento de normalización después de cada operación para asegurar que todos los resultados estén en forma normalizada. Las reglas se proporcionan mas adelante y se aplican a mantisas fraccionarias de 24 bits normalizados a forma hexadecimal. Un desbordamiento se puede corregir corriendo la suma una vez a la derecha e incrementando el exponente.

Réstese los exponentes y súmense 64. Ma. UNIVERSIDAD ANDINA DEL CUSCO 39 y utilícese después los primeros 24 bits que estén después del punto binario truncado como mantisa del después los primeros 24 bits que estén después del punto binario truncado como mantisa del . Reglas de Adición y Sustracción: 1. 3. Para explicar las operaciones de punto flotante en el diagrama de bloque tomaremos dos operándoos A y B donde Sa y Sb. Realícense la adición y sustracción con lasa mantisas y determínese el signo del resultado. Implante de Operaciones de Punto Flotante. Si es necesario. 4. Reglas de Multiplicación: 1. 3. el cual se divide en 1 bit para el signo. Si es necesario. 2. Ambos aspectos de las operaciones necesitan tomarse en cuenta cuidadosamente al diseñar un procesador aritmético. 2. son el signo. Si es necesario normalícese el valor resultante y utilícese resultado. Multiplíquense las mantisas y determínese el número del resultado. 2. Divídanse las mantisas y determínese el signo del resultado. 7 bits para el exponente y 24 bits para la mantisa. Eb.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico algunos exponentes podrían requerir más de 24 o 7 bits. Reglas de División: 1. normalice el valor resultante resultado. Ea. 3. normalice el valor resultante y utilícese después los primeros 24 bits que estén después del punto binario truncado como mantisa del resultado. desplácese a su mantisa a al derecha (en pasos de cuatro bits) tantos paso como sea la diferencia entre los exponentes. Iguálese el mayor exponente del resultado. a) Para la Suma y Resta: Veremos el implante de la dicción y sustracción mediante hardware con operador de punto flotante de 32 bits. Mb. Selecciónese el numero que tenga el exponente menor. respectivamente para su representación. Súmense los exponentes y réstese 64.

y según la operación suma y sustracción. La Lógica Control determina si las mantisas deben sumarse o restarse. Por ejemplo. De otra forma. Esto da como resultado que Mb se envíe al SHIFTER. entonces Ea>=Eb y las mantisas Ma y Mb se envían directamente por medio de la red SWAP.1. Por ejemplo. El paso 3 involucra al componente principal. lo determina el circuito sustractor de 7 bits del Angulo superior izquierdo del diagrama. por lo tanto. Si el signo es 1. El intervalo n esta restringiendo a 0. B es positivo (Sb=0) y la operación es a-b entonces las mantisas se suman y el signo del resultado es negativo (Sa=1). Esto esta determinado por el signo de diferencia resultante de operación de exponentes de al primera regla. entonces Ea<Eb y las mantisas se intercambian antes de enviar el SHIFTER. si n=7 es posible determinar de inmediato que el resultado es igual al operando mas grande o a su negativo. con lo que se desplaza n posiciones hexadecimales a la derecha. entonces las mantisas se restan. El signo del resultado Sa depende ahora de la operación de sustracción de las mantisas. Sin embargo esta operación no se muestra en forma explicita en el diagrama. el signo se envía a la red SWAP (cambiador) que esta en la esquina superior derecha del diagrama si el signo es 0. el sumador-restador de mantisa de la parte central del diagrama. en donde n=7 si Ea-Eb=7 . La Lógica Control también determina el signo del resultado Sa.2. que debe realizarse con los operándoos. Si a es negativa (Sa=1). Si Ea. 7. UNIVERSIDAD ANDINA DEL CUSCO 40 . El signo de la diferencia resultante de la comparación de exponentes determina que mantisas deben desplazarse. si Ea<Eb. Siguiendo las reglas de adición y sustracción el primer paso es comparar los exponentes para determinar que tan lejos se puede desplazar la mantisa del número del menor exponente este valor de conteo de desplazamiento n. La magnitud de la diferencia Ea-Eb que es n se envía a la unidad SHIFTER (desplazar. Mb desplazada será positivo. Ea entonces Ma. Eb entonces Ma.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico exponente y mantisa de A y B respectivamente. Esto se decide según los signos de los operándoos Sa y Sb. y el resultado también pero si Eb. Esto termina las reglas de adición y sustracción. La otra mantisa Ma se envía directamente al sumadorrestador de mantisa. n=Ea-Eb. si Ea>=Eb o Eb. pero el resultado negativo. El exponente E del resultado se determina en forma tentativa como Ea. Mb desplazada será positiva. El paso 2 lo realiza el multiplexador (MPX) de dos sentidos de la esquina inferior izquierda del diagrama. Por otra parte si tanto a como b son positivos y a la operación es a-b.

3.. Sb. Producida por el paso 3. Este seria el caso si sumaran dos mantisas de la forma 01xx. de punto flotante: El primer paso determinará el signo de la multiplicación en la red de control.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico Este ejemplo muestra que el signo proveniente de la comparación de los exponentes también se necesita como entrada a Red Control. Caso contrario el signo del resultado es 1 (negativo). el signo de la salida sumador-restador de mantisa es crucial para determinar el signo del resultado. El valor x también se resta del exponente tentativo del resultado E para generar el exponente verdadero del resultado Er. Entonces.. el valor M tendría la forma 1. b) Para la Multiplicación: El implante de la multiplicación y la división en aritmética de punto flotante se realiza utilizando operándoos A y B de formato Sa. Ma. Eb respectivamente explicados anteriormente: siguiendo las reglas de la multiplicación. UNIVERSIDAD ANDINA DEL CUSCO 41 .xxx.esta es la figura correspondiente a un valor de X de –1... Ea. Se normaliza la mantisa resultante si es necesario. entonces. El paso 4 de regla adición y sustracción es la normalización del resultado de la mantisa M. cuando Ea=Eb las mantisas se restan.. El numero de ceros a la derecha M determina el numero de X del desplazamiento de dígitos hexadecimales que debe aplicarse a M. el valor normalizado se trunca para generar la mantisa M de 24 bits del resultado. Ahora explicaremos paso a paso el diagrama de bloques diseñado para que se efectuara una multiplicación de dos números. Se multiplican las mantisas.. Debe hacerse notar que es posible que se necesite un solo desplazamiento de digito hexadecimal a la derecha para normalizar el resultado. 2. Se suman los exponentes de ambos operándoos. A su vez la lógica control recibe la señal de S en 1 para que se inicie el producto. que mencionaremos a continuación: 1. utilizando la siguiente lógica: Si ambos signos tanto del multiplicando como del multiplicador son iguales entonces el signo del producto es 0 (positivo.

El contador se decrementará después de formar cada producto parcial. Se usara también un sumador para sumar el contenido del registro B. Pp = 5+5 =10 Pp =Pp+5=10 + 5=15 Entonces el producto total estará almacenado en el registro A cuando el contador ya este en cero. La mantisa ingresa al detector de ceros hexadecimales. El registro A es un registro de corrimiento. luego este X pasa simultáneamente al normalizador y al restador de 7 bits. y el restador de 7 bits resta E-X. cada suma será el producto parcial de la multiplicación. B y Q deberán ser de carga en paralelo para recibir el multiplicador y el multiplicando. c) Para la División: UNIVERSIDAD ANDINA DEL CUSCO 42 . 5*3 quiere decir: El multiplicando 5 se sume así mismo 3 veces. y el producto parcial se formara en otro registro A. El tercer paso se realiza con el sumador de 7 bits.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico El segundo paso la realizan el registro B y el registro Q. para almacenar el acarreo de la suma de A mas B. Ejemplo. y este resultado es el exponente resultante de la operación. y además debe poder reiniciar en forma sincrona. El registro A deberá ser de corrimiento con carga en paralelo y debe poder colocarse en puesta a cero en forma sincronía para iniciar al registro a 0. En general la multiplicación se realiza con lógica: Que el multiplicando se sumara el numero de veces que el multiplicador lo designe. hasta llegar a cero. Z verifica si P=0. que reciben al multiplicando y al multiplicador respectivamente. C será un flip-flop D. el numero de ceros a la derecha de M determina el numero X. el normalizador corre X posiciones de ceros a la derecha de M (mantisa resultante). al contenido del registro B y deje el resultado en A. Como tercer paso paralelamente se usara un contador P que alojara un número binario igual al número de bits del multiplicador. el cual recibe los exponentes A y B respectivamente y envía el resultado al restador de 7 bits para que participe en la normalización de al mantisa.

En el segundo paso los exponentes Ea y Eb ingresan al restador de 7 bits. Mb. para que se dé inicio a la división. Esta mantisa ingresa al detector de ceros hexadecimales. en donde se resta el exponente generado y este es el exponente resultante. el cual devuelve el resultado en E. El tercer paso se calcula el signo del cociente. Como ultimo paso se procede a normalizar la mantisa resultante C. caso contrario se sigue realizando la secuencia de la división la Ma se almacena en un registro. este numero es el desplazamiento de dígitos hexadecimales que debe aplicarse a la mantisa C y generaría la mantisa resultante: El valor X también ingresa al restado de 7 bits. esta operación la realiza la lógica de control el cual devuelve en Sr.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico El implante de la división en aritmética de punto flotante se realiza utilizando operándoos A y B de formato Sa. Eb respectivamente explicados ya anteriormente. UNIVERSIDAD ANDINA DEL CUSCO 43 . En el primer paso se verifica que si Mb (divisor) es igual a cero. y si es así el resultado viene hacer el residuo de la división y el contador C el cociente (mantisa resultante). Ma. siguiendo las reglas de la división la variable S deberá ser 0. luego ambas mantisas ingresan a un restador donde se va restando sucesivamente Ma-Mb e incrementando el contador C. esta verificación se realiza en el verificador. Ea y Sb. hasta que se verifique que el resultado de al resta sea menor que Mb. en donde el numero de ceros a la derecha de C determina el numero X. si es así la lógica de control no realiza la operación.

Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 7. Al realizar las conversiones debemos utilizar métodos que no dependan de números enteros ya que se puede superar el tamaño máximo de ese tipo de variable. c. Para el caso de la división binaria si se emplean restas sucesivas. b. UNIVERSIDAD ANDINA DEL CUSCO 44 . Debemos tratar de realizar los algoritmos iterativos de complejidad baja ya que las operaciones se realizan bit a bit y el número de iteraciones es elevado. en el caso de que el divisor sea muy pequeño a comparación del dividendo el tiempo que se empleara para calcular el resultado será demasiado. Comentarios a. para que el proceso no demore tanto tiempo usaremos otro algoritmo que simula una división tradicional. en una operación recursiva observamos que se necesita demasiada memoria y demora en retornar un resultado el ALU se supone que es sumamente rápido.

dispone de un corto menú: activado (on). está preparado para mover información en bloques de uno.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 8. solo que en el caso del simulador se trata de utilizar objetos cuya manipulación interna parte por parte (bit a bit) exige operaciones que manejen solo bits por ello mas largo en su implementación. d. el funcionamiento de los algoritmos no son mas complicados que las funciones que uno realiza al ejecutar cualquier operación aritmética. Un bit no puede almacenar mucha información por si solo. Normalmente un sistema informático. dos. Conclusiones a. 16. 1 o 0. alto o bajo. La implementación del simulador aunque a simple vista se observa un extenso código y pareciera complicada. desactivado (of). es el bit. c. Pero en el chip correcto en el momento preciso. UNIVERSIDAD ANDINA DEL CUSCO 45 . El contenido del presente documento detalla la aritmética del ALU el cual ayuda la implementación del simulador tratando de no salir en lo posible del funcionamiento real del ALU. Trabajar con números binarios o hexadecimales. La base fundamental de la información digital. y cuando se empiezan a mover a la vez millones de ellos a una velocidad increíblemente rápida. b. en lugar de hacerlo con grandes números de bits diferentes. o cuatro bytes. 32 o 64 bits. dependiendo si utilizas un ordenador de 8. un solo bit puede activar instrucciones que cambian o mueven muchos otros bits.

Revista PC WORD.uc.py http://www.com http://www.edu.  Organización y Arquitectura del Computador – A. Tanenbaum.aclantis.  Internet.com http://www.pccomparativas.com http://www.Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico BIBLIOGRAFÍA  Revista COMPUTER HOY.lafacu. Tanenbaum. UNIVERSIDAD ANDINA DEL CUSCO 46 .dei.com http://www.howstuffworks.com  Microprocesadores – A. o o o o o o http://www.lawebdelprogramador. Revista PC ACTUAL.

……………………………………………. ……………………………………………………………. Objetivos.. ………………………………………………………………… 21 6.…. …. 23 6.. ……………………………………………………………………...7 Unidad de decodificación. ..2 Memoria caché. ………………………………………………… 22 6.4 Unidad aritmética lógica (ALU). ……………………………...Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico INDICE 1. …………………………………………….1.1..3 Coprocesador matemático. ………………………………………… 08 4.……… 07 4.. 07 3.. 13 6...………………………………………………….2 Complemento radical.1Adición aritmética..6. Partes del Microprocesador.3 Operaciones Aritméticas.. …………………………………………… 15 6. 06 3.3 Sustracción con complementos. …………………………………………………..1 Definición y Funcionamiento del bloque Aritmético Lógico.6.. ……………………………………………… 06 3.. 14 6. 08 4. 29 6.…………………………………………………. 04 3.5.5. Sistemas Numéricos.6 Prefetch Unit. 10 4. …………..1.……………………………………………………………………… 11 5..... ………………………………………………………………….2 Buses. Registros de Índice.. …………………………………………………………. ………………………………………………………….. 07 3..6 Números Binarios con Signo..…...2Sustracción aritmética.…….1 Números Binarios. ….……………………… 09 4. Unidad Aritmético-Lógica. ………………… 12 5. 21 6.1.4 Conversión de decimal a otra base. 06 3...…………………………………………………………… 14 6.5 Complementos. 03 2.3. ……………………………………………………… 18 6.. 20 6. ………………………………………. …………………………………………………………… 12 5. ……………………………………. ……………………………………………………..1 Complemento radical disminuido. …………………………………………………. ………………………………………………… 30 UNIVERSIDAD ANDINA DEL CUSCO 47 .. .2.2 Unidad De Corrimiento Lógico-Aritmético (ALSU).………………………………………………….1 Encapsulado. 25 6. …………………………………………………………………….. Registros de Bandera.2 Números Octales y Hexadecimales.5 Unidad de control. Otros componentes. 06 3. Registros de Propósito General... …………………………. 06 3. …………………………………………………………………… 08 4. …………………………………………………………………………. Microprocesador.……..5.1 Registros.

.. Índice....... …………… 37 7................ Comentarios..7.....Ingeniería de Sistemas Simulador de Unidad Aritmético Lógico 6. 31 6.. …………………………………………………… 35 6....2 Aritmética decimal. ………………………………………………………………………… 45 9.......8..7.. 44 8........1Operaciones Aritméticas con Números de Punto Flotante..... .. ………………………………………………………… 33 6... …... ………………………………………………………………………….....……………………………………………………………………………........... 47 UNIVERSIDAD ANDINA DEL CUSCO 48 .. Conclusiones..1 Adición BCD...... 36 6............7 Códigos Decimales (BCD).......... …………………………………………………….......... ………………………………………………. Bibliografía....8 Operaciones de Punto Flotante... 46 10........