Está en la página 1de 5

Ejemplos de modos de direccionamiento de la MIPS

(1) Inmediato Instruccin ensamblador: addi $t0,$t1,4 (operando inmediato)

Tipo I Instruccin mquina: 001000010010100000000000000000100 4 Operacin a realizar: $t0 = $t1 + 4 Contenido de los registros antes de la operacin:

Contenido de los registros despus de la operacin:

(2) Registro: Instruccin ensamblador: sub $10, $11, $12 (los 3 operandos direccionados en modo registro)

Tipo R Instruccin mquina:

00000001011011000101000000100010 $11 $12 $10

Operacin a realizar: $10 = $11 - $12 = 7 4 = 3 Contenido de los registros despus de la operacin:

(3) Base (+desplazamiento)

Instruccin ensamblador: sw

$13, 8($14) (dir.base+desplaz.)

Instruccin mquina: 10101101110011010000000000001000 $14 8 Operacin: transfiere la palabra en el registro $13 a la posicin de memoria especificada (8 + $14)
4

Contenido de los registros antes de la operacin:

De forma que la operacin a realizar es: M ($14 + 8) = M (0x10010008) = $13 = 0x1234567

El valor queda almacenado en la correspondiente posicin de memoria:

(4) Relativo al contador de programa Este modo de direccionamiento, especifica un salto relativo (nmero de instrucciones) a la instruccin de bifurcacin

Instruccin ensamblador: bgez $t2, instr1 (dir. relativo al PC) add $t7, $t0,$t1 instr1: add $t7, $t1, $t2

Instruccin mquina: 00000101010000010000000000000010 2 Operacin: bifurca a la instruccin especificada por la etiqueta instr1 si el registro $t2 es mayor o igual que 0 Sea [0x0040002C] la direccin de la instruccin de bifurcacin (bgez $t2, instr1) instr1 = 0x0040002C + (2*4)= 0x00400034, que es la direccin de la instruccin destino del salto (add $t7,$t1,$t2) PCSpim simula mal el salto condicional, ya que el desplazamiento debera ser con respecto al PC actualizado, es decir, apuntando a la instruccin siguiente en memoria a la de salto.
7

(5) Pseudodirecto La direccin se calcula concatenando los 4 bits ms significativos del PC con la direccin de 26 bits especificada en la instruccin y dos ceros

Instruccin ensamblador: instr2:

j instr2 (dir. pseudodirecto) add $t7, $t0,$t1 add $t7, $t1, $t2

Operacin : salta a la instruccin especificada por instr2


8

Instruccin mquina: 00001000000100000000000000010000

Sea [0x00400038] la direccin de la instruccin de salto (j instr2) instr2 = 00000000010000000000000001000000 = 0x00400040, que es la direccin de la instruccin destino del salto (add $t7,$t1,$t2)

También podría gustarte