当我们做mov eax,-4时会发生什么?

时间:2017-11-20 10:57:55

标签: x86 signed twos-complement negative-number

我知道-4被复制到EAX寄存器中。

我的怀疑:

    在复制到EAX之前,
  • -4将被转换为二进制补码二进制表示法吗?

  • 如果将其转换为二进制补码二进制表示法,谁来完成这项工作?

  • 是否有用于表示负数的特殊操作码?

  • 我们可以在EAX寄存器中存储的最大负数是多少?

  • 是否有任何特殊的操作码或带符号算术的指令?

当我们在CPU中乘以负数和正数时会发生什么?

1 个答案:

答案 0 :(得分:1)

转换为二进制补码二进制文件由汇编程序完成。汇编程序发出的机器代码包含二进制形式的数据。

某些操作码将数据解释为无符号值,有些操作符号用于有符号值,而某些操作码对两者都相同。没有专门针对负数的操作码。

当解释为有符号数时,eax的范围是-2 ^ 31 .. 2 ^ 31-1。

假设使用带符号的乘法指令,并且没有溢出,则将负数乘以正数会将正确的否定结果作为二进制补码值。