Orga
o
Cap´
ıtulo II: Conjunto de Instrucciones
Erika Rosas Olivos
erika.rosas@usach.cl
Universidad de Santiago de Chile
Santiago - Chile
Basada en Computer Organization and Design, David A. Patterson and John L.
Hennessy, 4ta Edici´n
o
Segundo Semestre 2013
Organizaci´n de Computadores
o
1 / 20
Addressing
Instrucciones manejan informaci´n sobredonde leer o escribir los
o
operados. El tema de especificar donde est´n los operados, es
a
decir, sus direcciones, es llamado addressing.
Organizaci´n de Computadores
o
2 / 20
Addressing Inmediato
• Lo m´s sencillo: La instrucci´n espec´
a
o
ıfica un operando para la
direcci´n.
o
• Operando inmediato.
• Ventaja: No requiere memoria extra para buscar el operando.
•Desventaja: El n´mero de valores est´ limitado por el tama˜o
u
a
n
del campo.
• Ejemplo: addi $t0, $t0, 5
• 5 es el operando con addressing inmediato.
Organizaci´n de Computadores
o
3 / 20
Addressing Directo (Absoluto)
• Especificar la direcci´n completa del operando en memoria.
o
• La instrucci´n accessa la misma direcci´n de memoria.
o
o
• 1 sola referencia a memoria paraacceder los datos.
• No se necesita c´lculo.
a
´
• Util con variables globales, OS programming.
• Espacio limitado para la direcci´n.
o
• Ejemplo: move $a0, 0x25
Organizaci´n de Computadores
o
4 / 20
Addressing Modo Registro
• Se especifica un registro en lugar de una direcci´n de memoria.
o
• Es el tipo de addressing m´s usado.
a
• Hay un n´mero limitado de registros.
u
•Instrucciones peque˜as y r´pidas.
n
a
• Ejemplo: addi $t0, $t0, 5
• $t0 es el operando con addressing modo registro.
• No hay acceso a memoria.
Organizaci´n de Computadores
o
5 / 20
Addressing Registro Indirecto
• El operando viene de memoria, pero su direcci´n no
o
est´ directamente en la instrucci´n, sino que contenido en un
a
o
registro.
• Cuando una direcci´n seocupa de esta forma se llama
o
puntero.
• Se cuenta con un espacio de direcciones m´s grande.
a
• Ejemplo: lw $a0, 0($a1)
Organizaci´n de Computadores
o
6 / 20
Addressing indexado, Base, o con desplazamiento
• Direccionar memoria con un registro m´s una constante offset.
a
• Base con desplazamiento : Base + constante
• Base-indexado: Se suma el contenido de un registro en vez deuna constante a la base.
• Base-indexado con desplazamiento: lo anterior m´s la
a
constante de desplazamiento.
• Ejemplo: lw $a0, 20($a1)
• Registro con direcci´n base es $a1.
o
• Offset es 20.
• Direcci´n en 20+($a1)
o
Organizaci´n de Computadores
o
7 / 20
Addressing relativo
• Es una versi´n del tipo anterior, donde la direcci´n de
o
o
desplazamiento es la que seindica en la instrucci´n.
o
• Relativo a Program Counter: PC + Address. En realidad es
relativo a la instrucci´n siguiente (PC+4).
o
• En general se usa para hacer branching a alguna etiqueta.
• Jump-and-link usa otras formas de addressing dado que no es
necesario que la siguiente instrucci´n se encuentre cerca.
o
Organizaci´n de Computadores
o
8 / 20
Addressing MIPS:Operandos de 32-bit
lui: Load Upper Inmmediate permite asigna los 16-bit m´s
a
significativos de un registro.
lui $t0, 255 (load upper immediate)
001111
00000
01000
0000 0000 1111 1111
Contenido de $t0 luego de la instrucci´n.
o
0000 0000 1111 1111
Organizaci´n de Computadores
o
0000 0000 0000 0000
9 / 20
Cargar constante de 32-bits
¿Cu´l es el c´digo MIPS assemblypara cargar la palabra de 32-bit
a
o
en un registro $s0?
0000 0000 0011 1101 0000 1001 0000 0000
Primero los 16-bit m´s significativos:
a
lui $s0, 61
0000 0000 0011 1101 0000 0000 0000 0000
Luego los 16-bit m´s a la derecha
a
ori $s0, $s0, 2304 (or immediate)
0000 0000 0011 1101 0000 1001 0000 0000
Organizaci´n de Computadores
o
10 / 20
Formato tipo-J
j
10000
2
6 bits...
Regístrate para leer el documento completo.