当签名与未签名时,40h + 40h会出现什么标志?

问题描述 投票:0回答:1

对于他们两个我的输出是1000 0000(80h)。以十进制形式添加它们是64 + 64 = 128.如果是无符号,则128在范围内,如果有符号则超出范围。

因此,对于无符号,应该设置的标志是溢出标志(因为当添加的数字为正时MSB为负)和符号标志(因为MSB为1)。

对于signed,溢出标志应该再次被设置(因为128超出了8位有符号的范围),并且由于MSB,sign标志应该设置为1。不应设置进位标志,因为在MSB位中没有发生进位操作。它是否正确?在这种情况下,签名与未签名的标志应该相同吗?

assembly binary flags unsigned signed
1个回答
0
投票

只有一个加法操作为操作的有符号和无符号效果设置标志。减法是相同的(cmp只是一个丢弃结果的减法,除了标志)

  • V(溢出)标志捕获有符号的溢出。
  • C(进位)标志捕获无符号溢出。
  • S(符号)标志捕获结果的最高位。
  • 如果所有结果位都为0,则设置Z(零)标志。

而已。如果您正在执行未签名或已签名的操作,则会查看不同的标志,具体取决于您要检测的内容。

© www.soinside.com 2019 - 2024. All rights reserved.