十六进制与寄存器和操作数中的数字的十进制表示

时间:2016-12-13 21:16:46

标签: assembly x86

我在概念上理解汇编语言时遇到了麻烦。我想澄清一下我是否走在正确的轨道上。

例如,假设寄存器eax包含十六进制值0x000000FF,指令为add eax, 44d。我基本上要做的就是增加44到255,这就是FF。结果将是0x0000012B,与eax寄存器中已有的格式相匹配。我想澄清一下这个感谢。

1 个答案:

答案 0 :(得分:1)

这些数字没有"数字系统"一点都不他们只有价值。

数字系统(十六进制,十进制,八进制,二进制等)只是一个书写系统。只有当数字必须写在某些信息载体上时才有意义 - 纸张,计算机屏幕,存储单元等。

更改数字系统,不会更改数字的值。

因此,您可以在不同的数字系统中编写数字,它将具有相同的值,无论它看起来是不同的。你只需要以不同的方式阅读它。

在汇编语言中,十六进制系统是首选,因为它允许非常容易(精神上)转换为二进制(系统CPU用于在内存中写入数字)。这就是大多数调试器将以十六进制显示数字的原因。