【发布时间】:2011-07-04 16:18:58
【问题描述】:
我正在阅读 JR Gibson 的 ARM 汇编书,第 5 章。在对整数 ADD 和 SUB 指令的解释中,给出了计算结果后更新标志的表格。
我无法理解的是 2 个整数 A、B 的无符号整数加法的标志更新,其中 A 和 B 是“不都是 0”,结果是 2^31-1 < result < 2^32(即在0x7FFFFFFF、0x100000000之间)
它指出上述结果导致标志N=1、Z=0、C=0、V=X(无关)被设置,指令助记符扩展被解释为
EQ = No, NE = Yes, CS = No, CC = Yes, MI = Yes, PL = No, VS, VC = X, HI = No, LS = Yes, LT, GT, LE = X
为什么无符号加法导致 32 位范围内的值导致设置 N 位(因此 MI 和 LS 是 Yes)
我期待的是 N 标志可以设置,因为第 31 位是 1(从位 0 开始计数),但结果是肯定的(即 PL = Yes,因为它在范围 @987654343 内@)。
我这里有什么不明白吗?
【问题讨论】:
-
@skaffman:感谢编辑!下次我会做得更好.. ;)