我有这个问题:
提供以下指令的类型和十六进制表示形式:sw $ t1,32($ t2)
所以我有这个二进制文件:
101011 01010 01001 0000 0000 0010 0000
43 10 9 32
43是用于存储单词和的操作码。
10是$ t2的注册码
9是$ t1的注册码。
地址是32
但是如何将其转换为十六进制?
答案 0 :(得分:0)
据我了解,您正在MIPS32架构上运行它。指令确实会产生您编写的二进制输出,但是输出的十进制表示形式不正确。如果前8位产生的32是正确的,则后8位不能产生9。在某些区域,您将5位分组为4位。因此第一步就是将它们正确分组。
1010 1101 0100 1001 0000 0000 0010 0000
现在前8位产生32。
接下来的八位产生0。
接下来的八位产生73。
最后八位产生173。
现在,您只需要每个十进制值的十六进制表示。
十六进制的32是20。
十六进制中的0为0。
十六进制的73是49。
十六进制173是广告。
Little Endian中的哪条指令给您
20 00 49广告
在您的情况下,汇编指令的二进制重新设置错误或二进制表示的十进制表示错误。如果您使用的是MIP32体系结构,则二进制文件是准确的,但十进制数是不正确的。