将程序集转换为十六进制。如何逐步进行?

时间:2019-09-15 01:49:53

标签: assembly hex

我有这个问题:

  

提供以下指令的类型和十六进制表示形式:sw $ t1,32($ t2)

所以我有这个二进制文件:

101011 01010 01001 0000 0000 0010 0000

43 10 9 32

43是用于存储单词和的操作码。
10是$ t2的注册码
9是$ t1的注册码。
地址是32

但是如何将其转换为十六进制?

1 个答案:

答案 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体系结构,则二进制文件是准确的,但十进制数是不正确的。