汇编中如何计算负数

2024-04-30

我是汇编新手,我有一个关于如何表示负数的问题 我有三个 DWORDS 变量,比方说:

result DWORD 0
i DWORD 3
j DWORD 5

我想计算这个公式:结果= i - j + 8 但是,当我执行 i-j 时,由于符号,结果将是一个非常高的数字 那么最后如何才能让结果好呢?


对于 32 位 DWORD,整数范围为 –2147483648 到 2147483647 或十六进制 -0x80000000 到 0x7FFFFFFF。

因此数字 -1 的存在类似于 0xFFFFFFFF。 (如计数器下溢)

如果设置了高位 (31),则该数字为负数。要将负数(负数)变为正数,您必须对数字进行补码并加 1。

Example:

    0xFFFFFFFE   //-2
xor 0xFFFFFFFF   //binary complement 
---------------
    0x00000001   //result of complement
+   0x00000001   //add 1
---------------
    0x00000002   //Result of negation is 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编中如何计算负数 的相关文章

随机推荐