我在作业中给了机器代码为:
3c011001
34300000
8e080000
20090003
11200004
01094020
2129ffff
ae080000
08100004
2002000a
0000000c
我需要对它们进行解码以获取汇编指令,如:
lui $at, 0x1001
ori $s0, $at, 0x0000
lw $t0, 0($s0)
addi $t1, $zero, 3
beq $t1, $zero, 0x0004
add $t0, $t0, $t1
addi $t1, $t1, -1
sw $t0, 0($s0)
j 0x00400010
addi $v0, $zero, 10
syscall
这里的解码程序是什么?
我尝试了一个Java程序将十六进制值转换为二进制值,并且基于MIPS编码,我在二进制值上使用了大小写转换,并且输出结果为:
0011 1100 0000 0001 0001 0000 0000 0001 lui $at, 0x1001
0011 0100 0011 0000 0000 0000 0000 0000 ori $s0, $at, 0x0000
1000 1110 0000 1000 0000 0000 0000 0000 lw $t0, 0($s0)
0010 0000 0000 1001 0000 0000 0000 0011 addi $t1, $zero, 3
0001 0001 0010 0000 0000 0000 0000 0100 beq $zero, $t1
0000 0001 0000 1001 0100 0000 0010 0000 add $t1, $t0, 0x4020
0010 0001 0010 1001 1111 1111 1111 1111 addi $t1, $t1, 0x15151515
1010 1110 0000 1000 0000 0000 0000 0000 sw $t0, 0($s0)
0000 1000 0001 0000 0000 0000 0000 0100 j 0x0004
0010 0000 0000 0010 0000 0000 0000 1010 addi $v0, $zero, 0x00010
0000 0000 0000 0000 0000 0000 0000 1100 syscall