Suma+y+registros

** //El procesador necesita para su funcionamiento de ciertas áreas de almacenamiento, que aquí se llaman **registros**, y que son de dimensiones mínimas [////3////]; sin embargo, tienen la ventaja de su rapidez. Comparados con los accesos a RAM, los de registro son como mínimo 10 veces más veloces.// //El 8088 dispone de catorce registros de 16 bits que se agrupan en cuatro grupos y que reciben nombres especiales (precisamente los que se utilizan para designarlos en lenguaje ensamblador).//
 * //SUMA Y REGISTRO//

//§3.1.1//
//Existen 4 registros denominados **AX**, **BX**, **CX** y **DX** que en realidad tienen asignados usos característicos, aunque pueden ser utilizados a discreción para cualquier cosa que necesitemos.// //Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [////6////], en caso necesario pueden ser utilizados en dos mitades (nibbles), "**H**igh" y "**L**ow", de 8 bits, con lo que puede considerarse que existen 12 registros de uso general (no simultáneos), los anteriores y sus mitades: **AH**; **AL**; **BH**; **BL**; **CH**; **CL**; **DH** y **DL**.//
 * //**AX** es denominado **acumulador**; suele contener uno de los operandos que intervienen en las operaciones aritméticas y lógicas, y después de esta, el resultado de la operación. En general las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcódigo// [[image:images/Ico_hojaFdwn.gif width="16" height="16" link="http://abrilmarzo.wikispaces.com/page/edit/Suma%20y%20registros#Unidad%20de%20Control"]] //más simple que la misma instrucción ejecutada con otro registro.//
 * //**BX** es el registro **base**, suele contener la dirección de inicio de una tabla de valores.//
 * //**CX** es denominado **contador**. Las instrucciones de bucle (LOOP) utilizan este registro como contador.//
 * //**DX** es un registro de **datos**, multiuso. Se utiliza en operaciones de multiplicación y división junto con **AX**. En operaciones de entrada/salida de puertos IN/OUT, su mitad inferior **DL**, contiene el número de puerto ([[image:images/Ico_hoja.gif width="16" height="16"]]// //2.5////).//

//§3.1.2//
//Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos segmentos (zonas de 64 KB de memoria). Utilizándolos en conjunción con otros registros que señalan las direcciones concretas dentro de estos segmentos (los desplazamientos ), permiten manejar la totalidad de la memoria direccionable (el bus de direcciones es de 20 bits). Ver al respecto el epígrafe "Direccionamiento segmentado" (// //5.1////).// //**Nota**: Puede ocurrir que programas pequeños utilicen el mismo segmento para el código, los datos y la pila.//
 * //**Segmento de código** **CS** ("Code segment"). Señala la dirección del segmento de código del programa que se está ejecutando ([[image:images/Ico_hoja.gif width="16" height="16"]]// //E1.3.2////).//
 * //**Segmento de datos DS** ("Data segment"). Señala la dirección del segmento de datos del programa en ejecución ([[image:images/Ico_hoja.gif width="16" height="16"]]// //E1.3.2////).//
 * //**Segmento de pila SS** ("Stack segment"). Señala la dirección del segmento donde está la pila del programa ([[image:images/Ico_hoja.gif width="16" height="16"]]// //E1.3.2////).//
 * //**Segmento extra ES** ("Extra segment"). Es un segmento auxiliar a los anteriores, se utiliza para señalar espacio extra en alguno de los segmentos o para almacenar momentáneamente direcciones intermedias.//

//§3.1.3//
//Son 5 registros destinados a contener direcciones; estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento // //(ver figura // //5.1 Fig.2////)// ORETGA CASTILLO FERNANDO
 * //El primero, denominado indistintamente **puntero de instrucción IP** ("Instrucción pointer") y **contador de programa PC** ("Program counter"), indica el desplazamiento (dentro del segmento de código **CS**) de la próxima instrucción a ejecutar.//
 * //El **puntero de pila SP** ("Stack Pointer"), señala el desplazamiento del final de la pila dentro del segmento de pila **SS**. En caso necesario la pila puede crecer a partir de este punto, de forma que por ejemplo, una nueva invocación de función creará un nuevo registro de activación que comenzará en este punto.//
 * //El **puntero base BP** ("Base pointer") señala el desplazamiento (dentro del segmento de pila **SS**) donde se encuentra el origen de la zona ocupada por las variables dinámicas.//
 * //Existen dos registros denominados "de índice", en razón de su utilización muy particular; el **índice fuente SI** ("Source index") y el **índice destino DI** ("Destination index"). Generalmente estos dos registros se utilizan con alguno de los registros de uso general y con ciertas instrucciones específicamente pensadas para transferir datos (dentro de un rango de posiciones de memoria), desde un punto inicial de un segmento de datos, a otro.//

[]

//3.2. Sumador completo (F.A.).//
 * **Entradas** |||||| **Salidas** ||
 * **A** || **B** |||| **Cin** || **S** || **Cout** ||
 * 0 || 0 |||| 0 || 0 || 0 ||
 * 0 || 0 |||| 1 || 1 || 0 ||
 * 0 || 1 |||| 0 || 1 || 0 ||
 * 0 || 1 |||| 1 || 0 || 1 ||
 * 1 || 0 |||| 0 || 1 || 0 ||
 * 1 || 0 |||| 1 || 0 || 1 ||
 * 1 || 1 |||| 0 || 0 || 1 ||
 * 1 || 1 |||| 1 || 1 || 1 ||

Otra forma de implementarlo sería por medio de semisumadores donde al final la suma tarda 9 unidades de tiempo para el resultado final. Tendríamos las siguientes funciones para la suma total y el acarreo de salida producido por la suma total: El bloque combinacional con sus componentes integrados serían el siguiente:
 * S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
 * Cout = A · B + A · Cin + B · Cin ! Acarreo.
 * S = (A " B) " Cin ! Suma.
 * Cout = A · B + Cin · (A " B) ! Acarreo.
 * F.A.**

A S

B

Cin Cout

Este sumador se encuentra como circuito integrado denominado 74ls83 y son varios sumadores que se emplean en sumas de palabras de un bit. En nuestro caso sumaremos palabras de 4 bits: dos entradas para los operandos A y B en el circuito así como para el carry de entrada, tendrá entonces dos salidas para el resultado, de ancho de palabra de cuatro bits, y para el bit del carry de salida cuyo ancho de palabra es de un bit. Para sumar dos números de n bits se necesita colocar en cascada n sumadores completos. El acarreo se propaga de una etapa a la siguiente con lo que el circuito combinacional será un Sumador con Propagación de Acarreo (Carry Propagated Adder). Los sumadores han sido construidos con puertas lógicas a partir de la expresión: _ _ _ _ El bloque combinacional del sumador formado por estos sumadores completos que han sido integrados con puertas lógicas sería el siguiente: B3 A3 B2 A2 B1 A1 B0 A0
 * //3.3. Sumador con propagación de acarreo.//**
 * S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
 * Cout = A · B + A · Cin + B · Cin ! Acarreo.

C3 C2 C1 C0

8T 6T 4T 2T

9T 7T 5T 3T C4 S3 S2 S1 S0 Los sumadores completos también pueden estar construidos con semisumadores con lo que la suma NO varía en su resultado aunque sí el bloque combinacional. El bloque combinacional con sus componentes integrados serían los siguientes:
 * F.A.**

A S B Cin Cout B3 A3 B2 A2 B1 A1 B0 A0 C3 C2 C1 C0 9T 7T 5T 3T 8T 6T 4T 2T C4 S3 S2 S1 S0 Por: Herrera Gutierrez Jessica bibliografia:http://html.rincondelvago.com/alu_1.html

La suma y la resta son operaciones de dos palabras de 1 bit de las que se obtiene una suma y un carry. Existen distintas formas de implementar la suma y la resta. En este apartado veremos distintos circuitos combinacionales basados en distintas funciones lógicas. Si sumamos números decimales es común la expresión “cinco mas siete es igual a doce, entonces son dos y llevo uno”. Este “llevo uno” se conoce como el acarreo. De la misma manera se realiza una suma binaria de varios bits. Unicamente necesitamos recordar las sencillas reglas de la suma binaria de un bit. 1+1 = 0 y llevo 1 1+0 = 1 0+1 = 1 0+0 = 0 1+1+1 = 1 y llevo 1 Con estas reglas tenemos por ejemplo. Acarreo → 1 11 10010111 + 01010110 = 11101101 La resta se lleva de manera similar en números decimales y binarios. Si en la suma existe el acarreo, en la resta existe el “préstamo”, igual que en decimales. 1. = 0
 * 4.4 SUMA Y RESTA DEL ALU **
 * SUMA **
 * RESTA **

1. = 1

0. = 0

.0–1 = 1 prestando un uno al bit siguiente. Con estas reglas tenemos por ejemplo. 11001001- 00110101 = 10010100 El siguiente es un video tutorial… [] Instituto Tecnológico de Estudios Superiores de Ecatepec
 * REFERENCIAS: **
 * http://www.mitecnologico.com/Main/SumaYRegistroAlu **
 * __ANTONIO PALOMINO GONZALEZ 7221 __**

La suma y la resta son operaciones de dos palabras de 1 bit de las que obtengo una suma y un carry. Existen distintas formas de implementar la suma y la resta. En este apartado veremos distintos circuitos combinacionales basados en distintas funciones lógicas. Cada componente vendrá descrito por los siguientes aspectos: El semisumador posee la siguiente tabla de verdad: Las funciones de las salidas del semisumador son las siguientes: _ _ El bloque combinacional y el bloque con sus componentes integrados serían los siguientes: A C B S A C S B En este circuito combinacional se realiza una suma con los dos operandos A y B como en el semisumador pero con el acarreo, Cin, proveniente de otra suma y así obtener la suma completa, que tarda 3 unidades de tiempo, y el acarreo, que tarda 2. El bloque sería el siguiente: Cin A S B Cout El sumador completo posee la siguiente tabla de verdad: Las funciones de las salidas del sumador son las siguientes: _ _ _ _ Otra forma de implementarlo sería por medio de semisumadores donde al final la suma tarda 9 unidades de tiempo para el resultado final. Tendríamos las siguientes funciones para la suma total y el acarreo de salida producido por la suma total: El bloque combinacional con sus componentes integrados serían el siguiente: A S B Cin Cout
 * //<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">La suma y la resta. //**<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">Tabla de verdad.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">Función lógica de cada salida de la tabla de verdad.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">Bloque combinacional y, en algunos, los componentes que integran el bloque.
 * //<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">3.1. Semisumador binario (H.A.). //**<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">
 * **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Entradas ** |||| **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Salidas ** ||
 * **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">A ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">B ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">S ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">C ** ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 ||
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">S = A · B + A · B = A " B ! Suma.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">C = A · B ! Acarreo.
 * <span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">H.A. **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">
 * //<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">3.2. Sumador completo (F.A.). //**<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">
 * **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Entradas ** |||||| **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Salidas ** ||
 * **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">A ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">B ** |||| **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Cin ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">S ** || **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">Cout ** ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">0 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 ||
 * <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 |||| <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 || <span style="color: black; display: block; font-family: 'Arial','sans-serif'; font-size: 12pt; text-align: center;">1 ||
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">Cout = A · B + A · Cin + B · Cin ! Acarreo.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">S = (A " B) " Cin ! Suma.
 * <span style="font-family: 'Arial','sans-serif'; font-size: 12pt;">Cout = A · B + Cin · (A " B) ! Acarreo.
 * <span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">F.A. **<span style="color: black; font-family: 'Arial','sans-serif'; font-size: 12pt;">

JOSE ISACC SIERRA JUAREZ

REFERENCIAS www.mitecnologico.com/Main/**Suma**YRegistro**Alu**

SUMA Y REGISTRODEL ALU

La suma y la resta son operaciones de dos palabras de 1 bit de las que se obtiene una suma y un carry. Existen distintas formas de implementar la suma y la resta. En este apartado veremos distintos circuitos combinacionales basados en distintas funciones lógicas. Si sumamos números decimales es común la expresión “cinco mas siete es igual a doce, entonces son dos y llevo uno”. Este “llevo uno” se conoce como el acarreo. De la misma manera se realiza una suma binaria de varios bits. Unicamente necesitamos recordar las sencillas reglas de la suma binaria de un bit.

La resta se lleva de manera similar en números decimales y binarios. Si en la suma existe el acarreo, en la resta existe el “préstamo”,

POST BAUTISTA MATA JONATHAN ADRIAN

http://www.monografias.com/Computacion/Hardware/index.shtml



La mayoría de las ALU pueden realizar las siguientes operaciones: ARENAS QUIJANO ITZEL
 * Operaciones aritméticas de números enteros ( [|adición], [|sustracción] , y a veces [|multiplicación] y [|división] , aunque esto es más costoso)
 * [|Operaciones lógicas] de [|bits] ( [|AND], [|NOT] , [|OR] , [|XOR] , [|XNOR] )
 * [|Operaciones de desplazamiento] de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin [|extensión de signo] ). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.

[]

La suma y la resta son operaciones de dos palabras de 1 bit de las que se obtiene una suma y un carry. Existen distintas formas de implementar la suma y la resta. En este apartado veremos distintos circuitos combinacionales basados en distintas funciones lógicas. Si sumamos números decimales es común la expresión “cinco mas siete es igual a doce, entonces son dos y llevo uno”. Este “llevo uno” se conoce como el acarreo. De la misma manera se realiza una suma binaria de varios bits. Unicamente necesitamos recordar las sencillas reglas de la suma binaria de un bit. 1+1 = 0 y llevo 1 1+0 = 1 0+1 = 1 0+0 = 0 1+1+1 = 1 y llevo 1 Con estas reglas tenemos por ejemplo. Acarreo → 1 11 10010111 + 01010110 = 11101101 La resta se lleva de manera similar en números decimales y binarios. Si en la suma existe el acarreo, en la resta existe el “préstamo”, igual que en decimales.
 * SUMA **
 * RESTA **

code 1. = 0

1. = 1

0. = 0

.0–1 = 1 prestando un uno al bit siguiente.

code Con estas reglas tenemos por ejemplo. 11001001- 00110101 = 10010100


 * __AUTOR: DE LA CRUZ IBAÑEZ MOISES__**

El siguiente es un video tutorial…

[]

[]