对于他们两个,我的输出都是1000 0000(80h)。用十进制加它们是64 + 64 =128。如果是无符号,则128在范围内;如果是有符号,则超出范围。
因此,对于未签名的,应设置的标志是溢出标志(因为当添加的数字为正数时,MSB为负)和标志标志(因为MSB为1)。
对于带符号的溢出标志应再次设置为OFF(因为128超出8位带符号的范围),并且由于MSB,应将符号标志设置为1。进位标志不应设置,因为MSB位中未发生进位操作。它是否正确?在这种情况下,为有符号与无符号设置的标志应该相同?
答案 0 :(得分:0)
只有一个加法操作会为操作的有符号和无符号效果设置标志。减法是相同的(cmp只是减法,除标志外,它会舍弃结果)
就是这样。如果要执行未签名或已签名的操作,则要查看不同的标志,具体取决于要检测的内容。