如何将十六进制值转换为32位MIPS指令?

时间:2011-10-02 22:49:46

标签: binary hex mips

我需要将这些Hex值转换为MIPS指令:

我先将它们转换为二进制,但不确定是否有必要。

Hex: 0x0000 0000 - Binary: 0000 0000 0000 0000 0000 0000 0000 0000
Hex: 0xAFBF 0000 - Binary: 1010 1111 1011 1111 0000 0000 0000 0000
Hex: 0x3424 001E - Binary: 0011 0100 0010 0100 0000 0000 0000 0000

请解释这个过程,以便我将来可以这样做。

我有MIPS reference data sheet

2 个答案:

答案 0 :(得分:3)

MIPS指令编码非常简单,并且在每个MIPS文档中都有解释,包括您在上面阅读的表格。只需获取操作码字段并确定它是否是R,I或J型指令以正确获取其余参数。如果操作码为0,那么它总是R型,在这种情况下查找功能字段

第一条指令0x00000000

6-bit opcodes = 000000: R type
6-bit funct: 000000 ==> sll
rs, rd, rt = 0
==> sll $0, $0, $0 or nop

第二条指令0xAFBF0000

opcode: 101011 = 0x2B => sw

最后一个0x3424001E

opcode: 001101 = 0x0D => ori

如果你使用像ODA这样的反汇编程序,你会看到这样的结果

.data:0x00000000    00000000    nop   
.data:0x00000004    afbf0000    sw ra,0(sp)   
.data:0x00000008    3424001e    ori a0,at,0x1e

答案 1 :(得分:-1)

您在寻找MIPS反汇编吗?这是一个:

http://acade.au7.de/disasmips.htm