对于他们两个我的输出是1000 0000(80h)。以十进制形式添加它们是64 + 64 = 128.如果是无符号,则128在范围内,如果有符号则超出范围。
因此,对于无符号,应该设置的标志是溢出标志(因为当添加的数字为正时MSB为负)和符号标志(因为MSB为1)。
对于signed,溢出标志应该再次被设置(因为128超出了8位有符号的范围),并且由于MSB,sign标志应该设置为1。不应设置进位标志,因为在MSB位中没有发生进位操作。它是否正确?在这种情况下,签名与未签名的标志应该相同吗?
只有一个加法操作为操作的有符号和无符号效果设置标志。减法是相同的(cmp只是一个丢弃结果的减法,除了标志)
而已。如果您正在执行未签名或已签名的操作,则会查看不同的标志,具体取决于您要检测的内容。