Repertorio de instrucciones MIPS
Escuela Politécnica
Universidad de Extremadura
PRÁCTICAS DE MIPS:
REPERTORIO DE INSTRUCCIONES MIPS
Asignatura ESTRUCTURA DE COMPUTADORES
2º Ingeniería Informática
2º Ingeniería Técnica en Informática de Sistemas
Curso 2010 / 2011
Juan A. Gómez Pulido
Escuela Politécnica, UEX
2010
Juan A. Gómez Pulido. UEX, 2010
Instrucciones de carga /almacenamiento
Son instrucciones que leen y escriben en memoria utilizando registros.
lw $t0, dir
Supongamos que en el segmento de datos escribimos:
.data
load-word: Carga en el registro
dir: .byte 0x0d, 2, 11
$t0 el contenido de la palabra de
memoria cuya dirección es dir
Entonces la memoria estará así:
00
00
00
00
00
00
00
00
00
00
00
00
Después deejecutar la instrucción
lw $t0,dir , el registro $t0
tomará el valor 0x000b020d
00
0b
02
0d
dir es una etiqueta que indica la
dirección 0x10010000, que es la dirección del byte 0x0d, es
decir, de la primera posición de la palabra de memoria
lb $t0, dir
load-byte: Carga en el registro
$t0 el contenido del byte de
memoria cuya dirección es dir
la $t0, dir
Siguiendo con elejemplo de la memoria anterior, si $t0 vale
0x000b020d y ejecutamos la instrucción
lb $t0, dir+2
entonces el contenido de $t0 será ahora 0x0000000b (ojo,
no 0x0007020b)
Siguiendo con el ejemplo anterior, después de ejecutar esta
instrucción, el contenido de $t0 será 0x10010000
load-address: Carga en el
registro $t0 la dirección de
memoria etiquetada con dir
sw $t0, dir
store-word:Almacena en la
palabra de memoria
direccionada por dir, el
contenido del registro $t0
Partiendo de esta situación de la
memoria dibujada a la derecha,
supongamos que el contenido del
registro $t0 es 0x010f123a
00
00
00
00
00
00
00
00
00
00
00
00
00
0b
02
0d
00
00
00
00
01
0f
12
3a
00
00
00
00
00
0b
020d
Ejecutamos sw $t0, dir+8
La situación de la memoria
después de la ejecución de esta
instrucción es la que está
dibujada a la derecha
2
Repertorio de instrucciones MIPS
sb $t0, dir
Supongamos que $t0 tiene el
valor 0x010f123a, y que la
situación actual de la memoria
es la de la derecha. Después de
ejecutar la instrucción
00
00
00
00
00
00
00
0000
00
00
00
0b
02
0d
00
00
00
00
00
00
00
00
00
00
00
00
00
store-byte: Almacena en
el byte de memoria
direccionado por dir,
el contenido del byte
menos significativo del
registro $t0
00
0b
3a
0d
sb $t0, dir+1
el contenido de la memoria es
ahora el reflejado a la derecha
Las instrucciones hasta aquí descritasson las que necesitaremos para todas las prácticas. A
continuación se listqan todas las instrucciones de este tipo:
Instrucción
la Rd, dir
lb Rd, dir
lbu Rd, dir
ld Rd, dir
Acción
Carga dirección
Carga byte
Carga byte sin signo
Carga palabra doble
lh Rd, dir
Carga mitad de
palabra
Carga mitad de
palabra sin signo
Carga palabra
Carga palabra en
coprocesador
Carga palabraizquierda (derecha)
Almacena byte
lhu Rd, dir
lw Rd, dir
lwcz Rd, dir
lwl Rd, dir
lwr Rd, dir
sb Rs, dir
sd Rs, dir
sh Rs, dir
sw Rs, dir
swcz Rs, dir
swl Rs, dir
swr Rs, dir
ulh Rd, dir
ulhu Rd, dir
ulw Rd, dir
ush Rs, dir
usw Rs, dir
Almacena palabra
doble
Almacena mitad de
palabra
Almacena palabra
Almacena palabra de
coprocesador
Almacena palabra
izquierda(derecha)
Carga mitad de
palabra no alineada
Carga mitad palabra
no alineada sin signo
Carga palabra no
alineada
Almacena mitad de
palabra no alineada
Almacena palabra no
alineada
Descripción
Carga en Rd la dirección dir (no su contenido)
Carga en Rd el byte de memoria direccionado por dir
Carga en Rd el byte de memoria direccionado por dir (extiende el signo)
Carga en Rd y en Rd+1...
Regístrate para leer el documento completo.