8/8/2019 2.6 Formato de instrucciones
1/14
1
2.5. Formato de las instruccionesRepresentacin binaria de las instrucciones en el computador.
La secuencia de bits se divide en campos que especifican la operacin
y los operandos.Representacin sencilla:
Representacin ms compleja:
2
Tamao de las instrucciones: aspecto bsico del diseo del formato.
Compromiso entre:
- Repertorio de instrucciones potente (ms operaciones, msoperandos, ms modos de direccionamiento y mayor rango de
direcciones (ms registros)): ms bits para codificar.
- Programas cortos: instrucciones cortas y de longitud fija.
- Sencillez del hardware de captacin y decodificacin de lasinstrucciones: tamao de las instrucciones fijo e igual al tamao de lapalabra de la mquina.
Los direccionamientos implcito e indirecto, permiten acortar el tamaode la instruccin.
8/8/2019 2.6 Formato de instrucciones
2/14
3
Codificacin de los modos de direccionamiento
Segn el nmero de modos de direccionamiento que tenga unaarquitectura:
4
Caractersticas de los formatos de instruccin que deben tener lasarquitecturas:
- Cada computador tiene unos pocos formatos: cada instruccin seajusta a uno de ellos. Cuantos menos ms sencilla la unidad de
control.
- Son sistemticos: campos del mismo tipo tienen la misma longitud yocupan el mismo sitio dentro de la instruccin (cdigo de operacinel primero). Simplifica la decodificacin de la instruccin.
8/8/2019 2.6 Formato de instrucciones
3/14
5
Ejemplos de formatos de instrucciones
IBM 360
16 registros de tipo general: 0 15
Palabra de 32 bits
Modos de direccionamiento del computador:- inmediato (8 bits)- registro: Ri (4 bits)- almacenamiento (base + desplazamiento): Bi (registro base), Di
(desplazamiento de 12 bits)- indexado: Xi (registro ndice), Bi (registro base), Di (desplazamiento)
Tiene 5 formatos de instruccin, segn los modos de direccionamiento.
2 o 3 operandos explcitos, cada uno mediante un modo dedireccionamiento determinado.
6
8/8/2019 2.6 Formato de instrucciones
4/14
7
Veamos ejemplos de instrucciones (RR, RS y SI) del IBM 360:
Especificacin de las instrucciones:
Descripcin Cdigomnemnico Cdigooperacin Formatoinstrucc. Especificacin delos operandosSumanormalizadalarga
ADR 2A RR R1, R2
Salta sindice alto
BXH 86 RS R1, R3, D2(B2)
Movimiento
inmediato
MVI 92 SI D1(B1), inmediato
ADR 3, 4 equivale a 0x2A34BXH 5, 8, X6B8(7) equivale a 0x865876B8MVI XA49(6), X3F equivale a 0x923F6A49
8
El VAX
Formato de instruccin muy flexible: cdigo de operacin de 8 bits,seguido de un mximo de cinco especificadores de operando:
8/8/2019 2.6 Formato de instrucciones
5/14
9
Cada especificador de operando se compone de dos o tres partes:
1. Cdigo del modo de direccionamiento (4 bits):
- 5: registro
- 0xC: base + desplazamiento (de 16 bits)- 0xA: base + desplazamiento (de 8 bits)- Para especificar un operando inmediato los 2 bits ms significativos
son 00 y los 6 bits restantes (2 + 4 del campo registro) se utilizanpara codificar el valor del operando.
2. Especificacin de registro (4 bits).
3. Especifica opcionalmente un desplazamiento en eldireccionamiento base + desplazamiento (8, 16 32 bits).
Veamos algunos ejemplos de instrucciones del VAX:
10
8/8/2019 2.6 Formato de instrucciones
6/14
11
Ejemplos:
Dar la instruccin mquina equivalente a:
CLRL R13 equivale a 0xD45D
MOVW 362(R3), 67(R12) equivale a 0xB0C36A01AC43
ADDL3 #58, R1, 55(R11) equivale a 0xC13A51AC37
12
Formatos de instruccin de la MIPS (3 de 32 bits)
8/8/2019 2.6 Formato de instrucciones
7/14
13
14
1. Tipo R (Registro)
- opcode: cdigo de operacin primario, cuyo valor es cero.- rs: especificador de registro fuente.- rt: especificador de registro objetivo (fuente/destino).- rd: especificador de registro destino.- sa: cantidad de desplazamiento.- function: campo funcin, especifica la operacin.
Utilizado para instrucciones aritmticas y lgicas:
8/8/2019 2.6 Formato de instrucciones
8/14
15
(1.1) Tres operandos en registros
ADD rd, rs, rt (rd rs + rt)
SUB rd, rs, rt (rd rs - rt)
16
Ejemplos
Modo de direccionamiento registro:
8/8/2019 2.6 Formato de instrucciones
9/14
17
(1.2) Dos operandos en registros
SLL rd, rt, sa (rd rt
8/8/2019 2.6 Formato de instrucciones
10/14
19
2. Tipo I (Inmediato)
- opcode: especifica la operacin.
Para instrucciones:(2.1) de transferencia de datos (carga/almacenamiento):
- rs: registro base.- rt: registro fuente/destino.- offset: desplazamiento.
(2.2) de salto condicional:- rs y rt: para establecer la condicin.- offset: desplazamiento.
(2.3) instrucciones con operandos inmediatos:- rs: operando fuente.- rt: operando destino.- offset (inmediate): operando fuente.
20
(2.1) Instrucciones de carga/almacenamiento
LW rt, offset(base) (rt memory[base+offset])
SW rt, offset(base) (memory[base+offset] rt)
8/8/2019 2.6 Formato de instrucciones
11/14
21
Ejemplos
22
Existen instrucciones distintas para los diferentes tamaos de dato(i) Load Byte
(ii) Load Half Word
(iii) Load Word
En todos los casos, el direccionamiento para el segundo operando esbase (registro rt) + desplazamiento (offset)
8/8/2019 2.6 Formato de instrucciones
12/14
23
(2.2) Instrucciones de salto condicional (bifurcacin)
BEQ rs, rt, offset (if (rs = rt) then branch)
Operacin: tgt_offset sign_extend(offset || 02)condition (GPR[rs] = GPR[rt])if (condition) then PC PC + tgt_offset endif
An 18-bit signed offset (the 16-bit offsetfield shifted left 2 bits) is addedto the address of the instruction following the branch (not the branchitself), to form a PC-relative effective target address.
24
Ejemplos
beq $19, $20, 6205
bne $19, $20, 6205
Estas instrucciones saltaran a la instruccin que est 6206instrucciones ms adelante en memoria.
8/8/2019 2.6 Formato de instrucciones
13/14
25
El modo de direccionamiento es relativo al contador de programa.
En este modo, se especifica el desplazamiento (en nmero deinstrucciones), con respecto al PC, donde est la instruccin destino delsalto: direccin destino = PC + desplazamiento * 4.
Las instrucciones de bifurcacin pueden saltar 215-1 instrucciones haciadelante y 215 hacia atrs.
En el ejemplo, si la instruccin beq $19, $20, 6205 est en la direccin5300, la direccin de la instruccin destino del salto sera:PC + (6205 * 4) = 5304 + 24820 = 30124
26
(2.3) Instrucciones con un operando inmediatoPara operaciones con constantes
ADDI rt, rs, immediate (rt rs + immediate)Ejemplo
Modo de direccionamiento inmediato.
8/8/2019 2.6 Formato de instrucciones
14/14
27
3. Tipo J (Salto)
Operacin: PC PC32..28 || instr_index || 02
Modo de direccionamiento pseudodirecto: la direccin de salto son los26 bits menos significativos de la instruccin, desplazados 2 posicionesa la izquierda y concatenados con los 4 bits ms significativos del PC.