Introducción a Microprocesadores y Sumas Binarias
Introducción a Microprocesadores y Sumas Binarias
Introducción a los
MICROPROCESADORES
Parte I
ADICIÓN BINARIA:
dec
Regla 1: 0 + 0 = 0
Regla 2: 0 + 1 = 1
Regla 3: 1 + 0 = 1
Regla 4: 1 + 1 = 2
1
02/01/2025
ADICIÓN BINARIA:
dec bin
Regla 1: 0 + 0 = 0 0 0
Regla 2: 0 + 1 = 1 0 1
Regla 3: 1 + 0 = 1 0 1
Regla 4: 1 + 1 = 2 1 0
ADICIÓN BINARIA:
A + B dec bin
Regla 1: 0 + 0 = 0 0 0
Regla 2: 0 + 1 = 1 0 1
Regla 3: 1 + 0 = 1 0 1
Regla 4: 1 + 1 = 2 1 0
suma
acarreo
Tabla de verdad
Suma de dos bits:
a b suma acarreo
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
2
02/01/2025
a b suma acarreo
a
suma 0 0 0 0
b
0 1 1 0
1 0 1 0
acarreo 1 1 0 1
a
suma ()
b
acarreo (As)
half adder
a
Half
Adder
b As
3
02/01/2025
Ej:
1 1
+ 1 1
___________________
acarreo (As)
1 b
1 1
+ 1 1 suma ()
___________________
10
Ej:
1 1
1 1
+ 1 1
___________________
1 0
1 1
1 1
+ 1 1
___________________
1 1 0
11
a
Half
As
Adder As
b
12
4
02/01/2025
a
Half
As
Adder As
b
13
Ae
Full
a Adder
b As
14
Ej: Ae
1 1
1 1
+ 1 1 a Full Adder
___________________ As
1 1 0 b
15
5
02/01/2025
16
Ae c2
a2
c4 FA
a3 a2 a1 a0 b2 As
+ b3 b2 b1 b0
Ae c3
c3 c2 c1 c0 a3
FA
b3 As c4
17
n=4 bits
n
Inc Ae C = c3 c2 c1 c0
Full
n
A = a3 a2 a1 a0 A Adder
N Bits
n
B = b 3 b 2 b 1 b0 B As c4
18
6
02/01/2025
Practica 1
• Desarrollar el circuito anterior, Sumador completo de 4 bits en
proteus, usando bloques
19
Sumador Restador
Las operaciones básicas de una unidad aritmética son la suma como ya
se vio y la resta.
Conceptos que se toman en cuenta son:
• Números con signo.
• Representación binaria de un numero negativo.
• Complemento a 2.
20
21
7
02/01/2025
22
23
AX
B Ctrl
X Ctrl Salida
X 0 0
X 1 X
24
8
02/01/2025
Complemento a 2
Con Signo
A = a 3 a2 a1 a0 24 16 015 Para un numero de 4 bits:
23 22 21 20 -8 7 = 16 Elementos
8 4 2 1 -8 4 2 1 Pesos Posicionales
bs a2 a1 a0 valor decimal
0 0 0 0 0
Complemento a 2 0 0 0 1 1
El método para hallar un numero negativo a partir del numero 0 0 1 0 2
positivo en binario 0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0011 3 0 1 1 0 6
0 1 1 1 7
1) Cambiar los 1 0 y 0 1 (complemento a 1) 1 0 0 0 -8
1 0 0 1 -7
1 0 1 0 -6
0011 3
1 0 1 1 -5
1100 1 1 0 0 -4
1 1 0 1 -3
1 1 1 0 -2
2) Al valor resultante del paso 1), sumar 1 (complemento a 2) 1 1 1 1 -1
1100 a3 a2 a1 a0
+ 0001 0*23 + 1*22 + 1*21 + 0*20 = 6
1101 -3 0*8 + 1*4 + 1*2 + 0*1 = 6
int var; 216 65536
2/01/2025 Germán Jesús Pereira Muñoz, PhD. -32768 32767 25
25
Complemento a 2
1) Inversor Controlado hallar el complemento a 1
Tabla del XOR
A B Salida
0 0 0
0 1 1
1 0 1
1 1 0
AX
B Ctrl
X Ctrl R
X 0 X
X 1 /X
26
Complemento a 2
1) Inversor Controlado hallar el complemento a 1
X Ctrl R
X 0 X
X 1 /X
X Ctrl R
X 0 X
X 1 /X
27
9
02/01/2025
Complemento a 2
1) Inversor Controlado hallar el complemento a 1
X Ctrl R
X 0 X
X 1 /X
X Ctrl R
X 0 X
X 1 /X
28
29
Complemento a 2
1) Inversor Controlado hallar el complemento a 1 Control de paso
X Ctrl R X Ctrl Salida
X 0 X X 0 0
X 1 /X X 1 X
30
10
02/01/2025
Sumador Restador
de 4 bits
31
X Ctrl Salida
X 0 0
X 1 X
25 = 32 combinaciones
= 32 Operaciones
A = a3 a2 a1 a0
X Ctrl R
B = b 3 b 2 b1 b 0 X 0 X
X 1 /X
R = r3 r2 r1 r0
-X = X\ + 1
-1 = 1111
32
X Ctrl Salida
Sumador Restador de n bits
X 0 0
X 1 X
X Ctrl R
X 0 X
X 1 /X
A = a3 a2 a1 a0
S4 S3 S2 S1 S0 R C FUNCION
B = b3 b2 b1 b0
R = r3 r2 r1 r0
-X = /X + 1 numero negativo
-1 = 1111
33
11
02/01/2025
28 1 1 1 0 0 /A+B+0 = /A+B ?
12 0 1 1 0 0 1111+B+0 = B-1 0 DECB
34
Ejercicio 1
• Desarrollar el circuito UA (SUMADOR – RESTADOR) en Proteus,
para comprobar la tabla de la diapositiva anterior
35
Funciones Lógicas
• Es imposible no tener en cuenta el uso de funciones lógicas entre variables de n bits.
• La operación AND entre dos valores de n bits se efectúa bit a bit entre bits del mismo
peso y puede ser descrita esquemáticamente así:
A = a3 a2 a1 a0
B = b 3 b2 b 1 b 0
36
12
02/01/2025
Funciones Lógicas
A = a3 a2 a1 a0
B = b 3 b 2 b 1 b0
37
Funciones Lógicas
Combinar las funciones lógicas con las funciones aritméticas:
• basta con diseñar una estructura que emplee los bloques de las tres funciones lógicas y el Sumador-
Restador
S/R
38
Función
S6 S5 habilitada
0 0 A AND B
0 1 A OR B
1 0 A XOR B
1 1 SUM / REST
39
13
02/01/2025
A = a3 a2 a1 a0
B = b 3 b2 b 1 b 0
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 40
40
S6 S5 Función
0 0 AND
0 1 OR
1 0 XOR
1 1 S/R
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 41
41
ALU
S6 S5 S4 S3 S2 S1 S0 R C Funcion
0 0 X X X X X A AND B X AND
0 1 X X X X X A OR B X OR
1 0 X X X X X A XOR B X XOR
1 1 0 0 0 0 0 0 0 NOP
1 1 0 0 0 0 1 1 0 uno
1 1 0 0 0 1 0 0+1111+0 = -1 0 menos uno
1 1 0 1 0 0 0 0+B+0 = B 0 LIB
1 1 0 1 0 0 1 0+B+1 = B + 1 ? INCB
1 1 0 1 0 1 0 0+/B+0 = /B 0 COMPB
1 1 0 1 0 1 1 0+/B+1 = /B+1 = -B 0 NEGB
1 1 0 1 1 0 0 1111+B+0 = B-1 0 DECB
1 1 1 0 0 0 0 A+0+0 = A 0 LIA
1 1 1 0 0 0 1 A+0+1 = A+1 ? INCA
1 1 1 0 0 1 0 A+1111+0 = A-1 0 DECA
1 1 1 0 1 0 0 /A+0+0 = /A 0 COMPA
1 1 1 0 1 0 1 /A+0+1 = /A+1= -A 0 NEGA
1 1 1 1 0 0 0 A+B+0 = A + B ? ADD
1 1 1 1 0 1 1 A+/B+1 = A - B ? SUB
42
14
02/01/2025
Ejercicio 2
• Desarrollar el circuito ALU en Proteus, para comprobar la tabla
de la diapositiva anterior
43
44
45
15
02/01/2025
46
• Dos categorías
• RAM: Escritura/Lectura.
E0,0 E0,1 E0,2 0,3
• ROM: Solo Lectura
1,0 K1,1 K1,2 A1,3
47
48
16
02/01/2025
ALU Codificada
Dir.
A3 A2 A1 A0 S7 S6 S5 S4 S3 S2 S1 S0
Mem C Funcion
0 0 0 0 0 0 1 1 1 0 0 0 0 0 LIA
1 0 0 0 1 0 1 1 1 0 1 0 0 0 COMPA
2 0 0 1 0 0 1 1 0 1 0 0 0 0 LIB
3 0 0 1 1 0 1 1 0 0 0 0 0 0 NOP
4 0 1 0 0 1 1 1 1 0 0 0 1 ? INCA
5 0 1 0 1 0 1 1 1 0 0 1 0 0 DECA
6 0 1 1 0 0 1 1 1 0 1 0 1 0 NEGA
7 0 1 1 1 1 1 1 1 1 0 0 0 ? ADD
8 1 0 0 0 0 1 1 1 1 0 1 1 ? SUB
9 1 0 0 1 0 0 0 X X X X X 0 AND
10 1 0 1 0 0 0 1 X X X X X 0 OR
11 1 0 1 1 0 1 0 X X X X X 0 XOR
12 1 1 0 0 0 0 0 0 0 0 0 0 Futura Expansión
13 1 1 0 1 0 0 0 0 0 0 0 0 Futura Expansión
14 1 1 1 0 0 0 0 0 0 0 0 0 Futura Expansión
15 1 1 1 1 0 0 0 0 0 0 0 0 Futura Expansión
PALABRA DE CONTROL
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 49
49
A3 A2 A1 A0 S7 S6 S5 S4 S3 S2 S1 S0
0 0 0 0 0 0 1 1 1 0 0 0 0
1 0 0 0 1 0 1 1 1 0 1 0 0
2 0 0 1 0 0 1 1 0 1 0 0 0
3 0 0 1 1 0 1 1 0 0 0 0 0
4 0 1 0 0 1 1 1 1 0 0 0 1
5 0 1 0 1 0 1 1 1 0 0 1 0
6 0 1 1 0 0 1 1 1 0 1 0 1
7 0 1 1 1 1 1 1 1 1 0 0 0
8 1 0 0 0 1 1 1 1 1 0 1 1
9 1 0 0 1 0 0 0 X X X X X
10 1 0 1 0 0 0 1 X X X X X
11 1 0 1 1 0 1 0 X X X X X
50
51
17
02/01/2025
52
ALU Codificada
53
ALU Codificada
El funcionamiento de la ALU codificada es como sigue:
1. Se introduce la información de proceso en las entradas A y B de datos.
2. Se introduce el código de operación a la entrada del descodificador (ROM)
de operaciones (A0A3). El código de operación “invoca” a la función
mediante el descodificador que genera una palabra de control (S0S7)
luego de un tiempo de retardo (tiempo de acceso de lectura de la ROM que
actúa como descodificador de operaciones).
3. Cada uno de los bits de control (S0S7) actúa sobre los componentes de
una manera predeterminada y la operación se lleva a cabo luego de un
tiempo de retardo de la ALU.
4. Finalmente, el resultado está disponible a la salida (R y C) para su
observación.
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 54
54
18
02/01/2025
ALU
Codificada
55
Para calcular una expresión algebraica con operadores aritméticos y lógicos es posible establecer
mentalmente la secuencia de operaciones a ejecutarse, como se hace normalmente con una
calculadora de mano simple.
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 56
56
Ejemplo
• Desarrollar el pseudo código para realizar la siguiente operación:
~(3+2)
1. Colocar el dato 3 Registro A
2. Colocar el dato 2 Registro B
2/01/2025
3. Buscar en la Tabla 2 la dirección que permita la Operación de “+”
4. Copiar el valor del Resultado a la entrada A
• Resultado Registro A ( MANUAL )
5. Buscar en la Tabla 2 la dirección que permita la Operación de “~” que corresponde la función
complemento de Registro A (~A)
57
19
02/01/2025
Registro Acumulador
• La necesidad de establecer una conexión entre la salida de la ALU
y una de sus entradas de modo que el resultado de una operación
esté presente en la entrada para ser usada como operando de la
siguiente operación a ser ejecutada.
• Debido a la naturaleza combinacional del sistema, la realimentación
directa no permitirá un sistema estable.
58
Registro Acumulador
59
ALU
Codificada
Registro
Acumulador
60
20
02/01/2025
61
Ensamblador
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 62
62
63
21
02/01/2025
Ejercicios
Desarrollar un algoritmo para maquina (ALU), con las siguientes características:
• Numero de línea Instrucción Codificación Comentario
6. NOP 0011 // comentario
Una vez ejecutado el programa
Ejercicios:
1. ~ ( ( ~(5 + 4) AND 7 ) - 5 ) máximo 15 min
2. ( ( (~ 8 ) OR 5 ) + 2) XOR 6 máximo 15 min
3. (3 + 5) / 2 máximo 15 min
4. ~ ( ( ~ ( ( - 8 ) + 5 ) ) – 5 ) máximo 15 min
5. (~ (~ (~ (~ 7)))) AND 3 máximo 15 min
64
Detector de cero.
Es posible detectar que un resultado de la ALU es cero mediante una compuerta OR negada:
65
66
22
02/01/2025
67
68
ALU + Banderas
69
23
02/01/2025
70
71
72
24
02/01/2025
73
ALU + Banderas
Palabra de Estado
A3 A2 A1 A0 Descripción N Z P C Función
0 0 0 0 A X X X X LIA
0 0 0 1 Comp(A) X X X X COMPA
0 0 1 0 B X LIB
0 0 1 1 0 0 1 0 0 NOP o CLR
0 1 0 0 A+1 INCA
0 1 0 1 A-1 X DECA
0 1 1 0 NOTA+A= -A NEGA
0 1 1 1 A+B ADD
1 0 0 0 A-B SUB
1 0 0 1 A and B 0 AND
1 0 1 0 A or B 0 OR
1 0 1 1 A xor B 0 XOR
2/01/2025 Germán Jesús Pereira Muñoz, PhD. 74
74
Ejercicios
Desarrollar un algoritmo para maquina (ALU con Banderas), con las siguientes características:
• Numero de línea Instrucción Codificación Comentario
6. NOP 0011 // comentario
Una vez ejecutado el programa describir del resultado el estado de las banderas
Ejercicios:
1. ~ ( ( ~(5 + 4) AND 7 ) - 5 ) máximo 15 min
2. ( ( (~ 8 ) OR 5 ) + 2) XOR 6 máximo 15 min
3. (3 + 5) / 2 máximo 15 min
4. ~ ( ( ~ ( ( - 8 ) + 5 ) ) – 5 ) máximo 15 min
5. (~ (~ (~ (~ 7)))) AND 3 máximo 15 min
75
25
02/01/2025
• ~ ( ( ~(5 + 4) AND 7 ) - 5 )
1. NOP 0011
2. LIB 0010 B5
3. ADD 0111 A5+4
4. COMPA 0001 A ~A
5. AND 1001 AA AND 7
6. SUB 1000 AA-5
76
ALMACENAMIENTO DE DATOS
• El registro acumulador solo permite almacenar el
resultado de la ultima operación esto resulta
insuficiente operaciones mas complejas.
Memoria de Datos
77
78
26
02/01/2025
RAM de datos
74HC241
F2114 Buffer tri state
Memoria RAM 1024 x 4
79
RAM de datos
Circuito de Prueba Escritura/Lectura
Solo se usará 32
direcciones de la
memoria RAM 2114
80
81
27
02/01/2025
82
83
84
28