2011-10-02 744 views
2

我需要将这些十六进制值转换为MIPS指令:如何将十六进制值转换为32位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

+1

堆栈溢出的目的是通过谁需要你有相同问题的帮助,所以以供将来参考,请包括未来的人使用至少与你的问题有一个半永久性的联系,并尽可能地描述链接的重要内容。如果与问题相关,也只包含链接。 – sonictt1

+0

MIPS参考数据表:https://drive.google.com/file/d/0B--CA_Lm6gBWb2N5MUc3SVBvVkE/view?usp =分享 – jogo

回答

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 
相关问题