200k views
3 votes
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

1 Answer

4 votes

Answer:

Step-by-step 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

User Duleshi
by
5.7k points