Está en la página 1de 14

2.5.

Formato de las instrucciones


Representacin 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:

Tamao de las instrucciones: aspecto bsico del diseo del formato.


Compromiso entre:
- Repertorio de instrucciones potente (ms operaciones, ms
operandos, 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 las
instrucciones: tamao de las instrucciones fijo e igual al tamao de la
palabra de la mquina.
Los direccionamientos implcito e indirecto, permiten acortar el tamao
de la instruccin.
2

Codificacin de los modos de direccionamiento


Segn el nmero de modos de direccionamiento que tenga una
arquitectura:

Caractersticas de los formatos de instruccin que deben tener las


arquitecturas:
- Cada computador tiene unos pocos formatos: cada instruccin se
ajusta a uno de ellos. Cuantos menos ms sencilla la unidad de
control.
- Son sistemticos: campos del mismo tipo tienen la misma longitud y
ocupan el mismo sitio dentro de la instruccin (cdigo de operacin
el primero). Simplifica la decodificacin de la instruccin.

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 de
direccionamiento determinado.
5

Veamos ejemplos de instrucciones (RR, RS y SI) del IBM 360:


Especificacin de las instrucciones:
Descripcin Cdigo
mnemnico
Suma
ADR
normalizada
larga
Salta si
BXH
ndice alto
Movimiento MVI
inmediato

Cdigo
Formato Especificacin de
operacin instrucc. los operandos
2A
RR
R1, R2
86

RS

R1, R3, D2(B2)

92

SI

D1(B1), inmediato

ADR 3, 4
equivale a 0x2A34
BXH 5, 8, X6B8(7) equivale a 0x865876B8
MVI XA49(6), X3F equivale a 0x923F6A49
7

El VAX
Formato de instruccin muy flexible: cdigo de operacin de 8 bits,
seguido de un mximo de cinco especificadores de operando:

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 utilizan
para codificar el valor del operando.

2. Especificacin de registro (4 bits).


3. Especifica
opcionalmente
un
desplazamiento
en
direccionamiento base + desplazamiento (8, 16 32 bits).

el

Veamos algunos ejemplos de instrucciones del VAX:


9

10

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

11

Formatos de instruccin de la MIPS (3 de 32 bits)

12

13

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:


14

(1.1) Tres operandos en registros

ADD rd, rs, rt

(rd rs + rt)

SUB rd, rs, rt

(rd rs - rt)
15

Ejemplos

Modo de direccionamiento registro:

16

(1.2) Dos operandos en registros

SLL rd, rt, sa


(rd rt << sa)
(Desplaza rt, sa posiciones a la izquierda, y pone el resultado en rd)
Ejemplo
sll $7, $3, 5 =

17

Divide rs por rt, deja el cociente en LO y el resto en HI.


Ejemplo
DIV $8, $9

0x1A

18

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.
19

(2.1) Instrucciones de carga/almacenamiento

LW rt, offset(base)

(rt memory[base+offset])

SW rt, offset(base)

(memory[base+offset] rt)

20

Ejemplos

21

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 es


base (registro rt) + desplazamiento (offset)

22

(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 offset field shifted left 2 bits) is added
to the address of the instruction following the branch (not the branch
itself), to form a PC-relative effective target address.
23

Ejemplos
beq $19, $20, 6205

bne $19, $20, 6205

Estas instrucciones saltaran a la instruccin


instrucciones ms adelante en memoria.

que

est

6206

24

El modo de direccionamiento es relativo al contador de programa.

En este modo, se especifica el desplazamiento (en nmero de


instrucciones), con respecto al PC, donde est la instruccin destino del
salto: direccin destino = PC + desplazamiento * 4.
Las instrucciones de bifurcacin pueden saltar 215-1 instrucciones hacia
delante y 215 hacia atrs.
En el ejemplo, si la instruccin beq $19, $20, 6205 est en la direccin
5300, la direccin de la instruccin destino del salto sera:
PC + (6205 * 4) = 5304 + 24820 = 30124
25

(2.3) Instrucciones con un operando inmediato


Para operaciones con constantes

ADDI rt, rs, immediate (rt rs + immediate)


Ejemplo

Modo de direccionamiento inmediato.


26

3. Tipo J (Salto)

Operacin: PC PC32..28 || instr_index || 02


Modo de direccionamiento pseudodirecto: la direccin de salto son los
26 bits menos significativos de la instruccin, desplazados 2 posiciones
a la izquierda y concatenados con los 4 bits ms significativos del PC.

27

También podría gustarte