Convert the following MIPS assembly code snippet into machine language (hex). Write the code in a memory arrangement sequentially starting from memory address 0x0000_F000.
add $s0, $s0, $s1
lw $s0, 0x20($t7)
addi $30, $30, -10
ori $s1, $a0, 100
j 0x400C

Respuesta :

Answer:

Explanation:

1) add $s0,$s0,$s1 \rightarrow R-format

opcode      rs       rt           rd                    shamt                  function

000000  $s0             $s1         $s0                  00000                  100000

000000  10000   10001         10000          00000                   100000

  = 0X42118020

2) lw $s0,0X20($t7)\rightarrow I-format

opcode          rs                  rt                                  offset

100000        $s0                 $t7                                   0X20

100000      10000        01111                          0000000000010000

  = 0X820F0010

3) addi $s0,$s0,-10 \rightarrow I-format  

opcode            rs                         rt                                       offset

001000         $s0                    $s0                                     -10

001000        10000              10000                     1111111111110110

= 0X2210FFF6

4) ori $s1,$a0,100 \rightarrow I-format

opcode     rs                 rt                      offset

001101   $s0         $a0                      100

001101  10000       00100 0000000001100100

= 0X36040064

5) j 0X400C \rightarrow J-format

 opcode                                              rs

 000010                                        0X400C

 000010                          0000000000100000000001100

= 0X0800400C