-
Notifications
You must be signed in to change notification settings - Fork 0
/
CodificacionInstruccions
117 lines (99 loc) · 2.81 KB
/
CodificacionInstruccions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
8bits numero
2bits codigo de acción
2bits número de registro
2bits banco/caché a modificar
2bits operacion (ALU)
***********************
---------------------------------------------
OO->Modificacion de datos en memoria
1. Numero a cargar (en caso de carga)
2. Codigo de acción
00 Mantener
01 ShiftRight
10 ShiftLeft
11 Cargar
3. Numero de registro de cada banco
4. Banco que cargas
Ejemplo:
01001000|11|00|01|00 ->Numero a cargar|Operacion carga|Registro 00|Banco 01|Codigo de carga en registro
---------------------------------------------
01->Modificacion de datos en registro
OPCION0, carga inmediata (xxxxxxxxxxxxx|0|01)
1. Numero a cargar (en caso de carga)
2. Cero (OPCION0)
3. 2bits vacios
4. Codigo de acción
00 Mantener
01 ShiftRight
10 ShiftLeft
11 Cargar
5. Modificar regA (0), regB(1)
Ejemplo
01001010|0|xx|11|0|01 ->Numero a cargar|Codigo opcion0|xx|Código acción (carga)|Registro A|Codigo modificacion reg
*********************** HASTA AQUI FUNCIONANDO
OPCION1, carga de memoria (xxxxxxxxxxxxx|1|01)
1. 8bits vacios
2. Código opcion1
3. Modificar regA (0), regB(1)
4. Numero de registro de banco
5. Banco que cargas
Ejemplo
xxxxxxxx|1|0|01|10|01 ->xxx|Codigo opcion1|Registro A|Num Regs del que cargas|Num del banco|Codigo modificacion reg
---------------------------------------------
10->Carga resultado ALU en memoria
1. 8bits vacios
2. Codigo de acción (11) Carga
3. Numero de registro de cada banco
4. Banco en el que se carga
xxxxxxxx|11|10|11|10 ->xxxx|Operacion carga|Registro 10|Banco 11|xx|¿?¿?¿??¿?¿?¿?¿?
---------------------------------------------
11->Operacion ALU
1. 8bits vacios
2. Operación
00 And
01 Or
10 Suma
11 Resta
3. 1bit vacio
4. Acarreo
5. 2bits vacios
xxxxxxxx|10|x|1|xx|11 ->xxxx|Operacion suma|x|Acarreo|xx|Codigo suma|
((Operacion a modificar con un futuro diseño ALU))
------------------------------------------------
------------------------------------------------
------------------------------------------------
ALU REWORK
11->Operacion ALU
1. 11bits vacios
2. 3bits operacions
000 Transferir A
001 A++
010 A+B
011 A+B+1
100 A+(¬B) complemento a 1
101 A+(¬B)+1 complemento a 2
110 A--
111 Transferir A
3. 2bits Código ALU (11)
-
-
-
-
-
-
-
-
-
-
Cargo 40 en Reg3, Banco 1 00101000|11|11|01|00
Cargo 32 en Reg2, Banco 3 00100000|11|10|11|00
Cargo 10 en Reg0, Banco 0 00001010|11|00|00|00
Cargo -6 en Reg2, Banco 0 11111010|11|10|00|00
Cargo 18 en Caché A 00001000|0|xx|11|0|01
Cargo Reg3, Banco1 (40) en Caché B xxxxxxxx|1|1|11|01|01
A+B (18+40)=58 xxxxxxxxxxx|010|11
A-B (18-40)=-22 xxxxxxxxxxx|101|11
Cargo Reg0, Banco0 (10) en Caché A xxxxxxxx|1|0|00|00|01
Cargo Reg2, Banco0 (-6) en Caché B xxxxxxxx|1|1|10|00|01
A+B (10+-6)=4 xxxxxxxxxxx|010|11
A-B (10--6)=16 xxxxxxxxxxx|101|11