gpt4 book ai didi

assembly - 如何在汇编中使用负数作为一个?

转载 作者:行者123 更新时间:2023-12-02 03:49:52 26 4
gpt4 key购买 nike

我有一个汇编的算术程序,但是当我加、减、乘负数时,它不会产生所需的输出。

例如

输入:

-1+2=66675 (should be 1)

-1-1=656745 (should be -2)

-1*-1=66757 (should be 1)

问题:

  • 我如何将 (-) 和 (1) 视为一个?

  • 如何对有符号数进行算术运算?

任何建议...

最佳答案

我建议阅读 2 的赞美以及有符号整数和无符号整数之间的区别。您显示的值看起来很可疑,就像一个 signed int 负值在没有进行转换的情况下被转换为 unsigned int 值。负整数有一个设置为 1 的最高有效位。如果你在没有首先屏蔽的情况下将该值插入一个无符号整数,那么你会得到比预期大得多的数字。

8 位表示的示例:

signed value = -1 
unsigned value = 255
binary = 1111 1111

Take the twos compliment:
1111 1111
XOR 0000 0000
equals 0000 0000
add1 0000 0001
dec value = 1

您可以在此处了解更多信息(他们有一个您可以查看的补码加法示例):http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm

关于assembly - 如何在汇编中使用负数作为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com