Está en la página 1de 14

1

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

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.

3

Codificacin de los modos de direccionamiento

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


4


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.

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

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

Especificacin de las instrucciones:

Descripcin Cdigo
mnemnico
Cdigo
operacin
Formato
instrucc.
Especificacin de
los operandos
Suma
normalizada
larga
ADR 2A RR R1, R2
Salta si
ndice alto
BXH 86 RS R1, R3, D2(B2)
Movimiento
inmediato
MVI 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
8


El VAX


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



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

2. Especificacin de registro (4 bits).

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


Veamos algunos ejemplos de instrucciones del VAX:
10
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)


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:
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:
17
(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 = 0 X 3 7 5 0
18


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

Ejemplo
DIV $8, $9 = 0 8 9 X X 0x1A
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)


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 es
base (registro rt) + desplazamiento (offset)

23
(2.2) Instrucciones de salto condicional (bifurcacin)



BEQ rs, rt, offset (if (rs = rt) then branch)

Operacin: tgt_offset sign_extend(offset || 0
2
)
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.
24

Ejemplos

beq $19, $20, 6205


bne $19, $20, 6205


Estas instrucciones saltaran a la instruccin que est 6206
instrucciones ms adelante en memoria.



25
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 2
15
-1 instrucciones hacia
delante y 2
15
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
26
(2.3) Instrucciones con un operando inmediato
Para operaciones con constantes

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

Modo de direccionamiento inmediato.
27
3. Tipo J (Salto)

Operacin: PC PC
32..28
|| instr_index || 0
2

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.

También podría gustarte