Instruções MIPS e Código da máquina

um registo $t0 contém valor 0x10008040. Escreva o código da máquina para a instrução MIPS que carrega uma palavra da memória principal no endereço 0x10008048, e armazena o resultado no Registo $s1. A instrução deve fazer uso do register $t0. Responda como um valor hexadecimal para o código da máquina.

Cheguei tão longe nesta questão.
 lw $t0, 8($s1)
Então, sou o stack a agradecer pela ajuda.

Author: mtrn, 2017-05-16

2 answers

Na verdade, só encontraste a instrução, por isso, não está a acabar lá a partir do teu espectrómetro.

Escreva o código da máquina para a instrução MIPS .

lw $s1, 8($t0)

Para escrever o código da máquina para esta instrução, é necessário ver a folha de referência MIPS folha de referência MIPS

Se você olhar para a folha o lw tem opcode 35 e para {[7] } é 17, para $t0 é 8 e o offset é 8. Organizá-lo como após

op  rs rt  immidiate
35  8  17  8

Para binário

100011  01000  10001  0000000000001000

Agrupar em 4 bits

1000 1101  0001 0001 0000 0000 0000 1000

Para hexadecimal

0x8D110008

Resposta como um valor hexadecimal para o código da máquina.

0x8D110008
 1
Author: Adam, 2017-05-16 20:06:37
Quase consegui, mas tens de trocar os registos. Acho que é isso, só uma instrução.
lw $s1, 8($t0) // $s1 = *($t0 + 8) 
 2
Author: nico, 2017-05-16 16:49:15