gpt4 book ai didi

assembly - 如何确定何时设置零标志、符号标志、溢出标志和进位标志?

转载 作者:行者123 更新时间:2023-12-03 15:24:01 26 4
gpt4 key购买 nike

整个旗帜的事情让我很困惑。网络上的定义似乎很简单。对于这一切,我似乎无法得到一个非常好的适用解释。

根据他们的定义,
-进位:表示无符号整数溢出
- 溢出:表示有符号整数溢出
- 零:操作产生零
- 符号:操作产生一个负数

那么下面的句子到底是真的吗?
- 以下说明将设置标志标志:(这里的答案是 252 不是负数。那么为什么要设置标志标志?)

mov al,0FEh
sub al,2
  • 在 8 位寄存器中添加 7Fh 和 05h 设置溢出标志。(这里的答案是 132。它没有超过 255 那么为什么会出现溢出?)
  • 8 位寄存器加 0FFh 和 05h 不会设置溢出标志。(答案是 300 那怎么没有溢出标志呢?它在 256 以上)
  • 在 8 位寄存器中将 5 添加到 0FBh 设置零标志(这里的答案是 256,而不是 0。我知道 8 位只能容纳 255 但“0”从何而来?我只是不明白.)

  • 有人可以让我知道我在这里做错了什么以及解决这个问题的正确方法是什么?
    谢谢。

    最佳答案

    The answer here is 252 not a negative number. So why is the sign flag set?



    由于无符号是 252,但无符号不能有符号,所以符号标志只与作为有符号处理的数字有关。无论您如何处理它,处理器始终将其处理为带有符号标志的签名。所以 252 大于 127,因此它在 2 的补码中为负,并且设置了符号位。

    Adding 7Fh and 05h in an 8-bit register sets the Overflow flag.(The answer here is 132. It’s not above 255 so why is there an overflow?)



    正如您所说,当有符号数溢出时设置溢出。一个有符号的 8 位变量可以从 -128 到 127。因此从 127 到 132 是溢出。

    Adding 0FFh and 05h in an 8-bit register does not set the Overflow flag.(the answer is 300 so how is there not an overflow flag on? It’s above 256)



    同样,溢出是有符号溢出。这会导致无符号溢出,因此将设置进位位。

    Adding 5 to 0FBh in an 8-bit register sets the Zero flag (The answer here is 256, not 0. I understand the 8 bit can only hold 255 but where does the “0” come from? I just don’t get it.)



    正如你所说,8位可以上升到255。之后它溢出并且最低8位为0。所以结果为零并且设置了零位。

    关于assembly - 如何确定何时设置零标志、符号标志、溢出标志和进位标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583461/

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