SUMA Y REGISTRO El procesador necesita para su funcionamiento de ciertas áreas de almacenamiento, que aquí se llaman registros, y que son de dimensiones mínimas [[[#[3]|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).
§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.
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ódigomá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 (//2.5//).
Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [[[#[6]|6]]], en caso necesario pueden ser utilizados en dos mitades (nibbles), "High" y "Low", 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.
§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//).
Segmento de códigoCS ("Code segment"). Señala la dirección del segmento de código del programa que se está ejecutando ( [[../Cpp/E1_3_2.htm#Segmento de c�digo|E1.3.2]]).
Segmento de datos DS ("Data segment"). Señala la dirección del segmento de datos del programa en ejecución ( [[../Cpp/E1_3_2.htm#Segmento de datos|E1.3.2]]).
Segmento de pila SS ("Stack segment"). Señala la dirección del segmento donde está la pila del programa ( [[../Cpp/E1_3_2.htm#La pila o stack|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.
Nota: Puede ocurrir que programas pequeños utilicen el mismo segmento para el código, los datos y la pila.
§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//)
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.
S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
Cout = A · B + A · Cin + B · Cin ! Acarreo.
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:
S = (A " B) " Cin ! Suma.
Cout = A · B + Cin · (A " B) ! Acarreo.
El bloque combinacional con sus componentes integrados serían el siguiente: F.A.
A S
B
Cin
Cout
3.3. Sumador con propagación de acarreo.
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:
_ _ _ _
S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
Cout = A · B + A · Cin + B · Cin ! Acarreo.
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
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.
4.4 SUMA Y RESTA DEL 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. SUMA
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 RESTA
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
La suma y la resta.
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:
Tabla de verdad.
Función lógica de cada salida de la tabla de verdad.
Bloque combinacional y, en algunos, los componentes que integran el bloque.
3.1. Semisumador binario (H.A.).
El semisumador posee la siguiente tabla de verdad:
Entradas
Salidas
A
B
S
C
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Las funciones de las salidas del semisumador son las siguientes:
_ _
S = A · B + A · B = A " B ! Suma.
C = A · B ! Acarreo.
El bloque combinacional y el bloque con sus componentes integrados serían los siguientes:
A C
B S H.A.
A
C
S
B 3.2. Sumador completo (F.A.).
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:
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
Las funciones de las salidas del sumador son las siguientes:
_ _ _ _
S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
Cout = A · B + A · Cin + B · Cin ! Acarreo.
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:
S = (A " B) " Cin ! Suma.
Cout = A · B + Cin · (A " B) ! Acarreo.
El bloque combinacional con sus componentes integrados serían el siguiente: F.A.
A S
B
Cin
Cout
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”,
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.
ARENAS QUIJANO ITZEL
http://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica
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. SUMA
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 RESTA
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
1. = 1
0. = 0
.0–1 = 1 prestando un uno al bit siguiente.
Con estas reglas tenemos por ejemplo.
11001001- 00110101 = 10010100
El procesador necesita para su funcionamiento de ciertas áreas de almacenamiento, que aquí se llaman registros, y que son de dimensiones mínimas [[[#[3]|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).
§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.- 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
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 (
//2.5//).
Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [[[#[6]|6]]], en caso necesario pueden ser utilizados en dos mitades (nibbles), "High" y "Low", 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.§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- Segmento de código CS ("Code segment"). Señala la dirección del segmento de código del programa que se está ejecutando (
[[../Cpp/E1_3_2.htm#Segmento de c�digo|E1.3.2]]). - Segmento de datos DS ("Data segment"). Señala la dirección del segmento de datos del programa en ejecución (
[[../Cpp/E1_3_2.htm#Segmento de datos|E1.3.2]]). - Segmento de pila SS ("Stack segment"). Señala la dirección del segmento donde está la pila del programa (
[[../Cpp/E1_3_2.htm#La pila o stack|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.
Nota: Puede ocurrir que programas pequeños utilicen el mismo segmento para el código, los datos y la pila.§3.1.3
Son 5 registros destinados a contener direcciones; estas direcciones son desplazamientos dentro de los segmentos indicados por los registros de segmento- 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.
ORETGA CASTILLO FERNANDOhttp://www.zator.com/Hardware/H3_2.htm
3.2. Sumador completo (F.A.).
- S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
- Cout = A · B + A · Cin + B · Cin ! Acarreo.
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:- S = (A " B) " Cin ! Suma.
- Cout = A · B + Cin · (A " B) ! Acarreo.
El bloque combinacional con sus componentes integrados serían el siguiente:F.A.
A S
B
Cin
Cout
3.3. Sumador con propagación de acarreo.
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:
_ _ _ _
- S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
- Cout = A · B + A · Cin + B · Cin ! Acarreo.
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
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
4.4 SUMA Y RESTA DEL 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.
SUMA
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
RESTA
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
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…
http://www.youtube.com/watch?v=-Fc79TPvFCA
Instituto Tecnológico de Estudios Superiores de Ecatepec
REFERENCIAS:
http://www.mitecnologico.com/Main/SumaYRegistroAlu
ANTONIO PALOMINO GONZALEZ 7221
La suma y la resta.
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:
- Tabla de verdad.
- Función lógica de cada salida de la tabla de verdad.
- Bloque combinacional y, en algunos, los componentes que integran el bloque.
3.1. Semisumador binario (H.A.).El semisumador posee la siguiente tabla de verdad:
_ _
- S = A · B + A · B = A " B ! Suma.
- C = A · B ! Acarreo.
El bloque combinacional y el bloque con sus componentes integrados serían los siguientes:A C
B S
H.A.
A
C
S
B
3.2. Sumador completo (F.A.).
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:
_ _ _ _
- S = A · B · Cin + A · B · Cin + A · B · Cin + A · B · Cin ! Suma.
- Cout = A · B + A · Cin + B · Cin ! Acarreo.
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:- S = (A " B) " Cin ! Suma.
- Cout = A · B + Cin · (A " B) ! Acarreo.
El bloque combinacional con sus componentes integrados serían el siguiente:F.A.
A S
B
Cin
Cout
JOSE ISACC SIERRA JUAREZ
REFERENCIAS
www.mitecnologico.com/Main/SumaYRegistroAlu
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:
- 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.
ARENAS QUIJANO ITZELhttp://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica
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.
SUMA
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
RESTA
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.
Con estas reglas tenemos por ejemplo.
11001001- 00110101 = 10010100
AUTOR: DE LA CRUZ IBAÑEZ MOISES
El siguiente es un video tutorial…
http://www.youtube.com/watch?v=-Fc79TPvFCA
http://atc2.aut.uah.es/~juani/documentos/capitulo3.pdf