将机器代码解码为汇编指令的过程

时间:2018-09-10 02:31:12

标签: java assembly decode machine-code

我在作业中给了机器代码为:

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

0 个答案:

没有答案