tak*_*a15 5 assembly arm compare carryflag
在这里的ARM文档中,它表示:
进位发生:
...如果减法的结果是正数或零...
我从这个关于SO的答案中知道,当存在无符号下溢时(即被减去(subtrahend)的数字大于从(被减数)减去的数字),进位标志设置为减法。
因此,请考虑以下示例:
r1 = 5
r2 = 10
CMP r1, r2
Run Code Online (Sandbox Code Playgroud)
比较(CMP)做减法这里提到,然后设置相应的标志。在这种情况下,r1-r2 = 5-10 = -5。由于此处未签名下溢(5 <10),因此我们希望设置进位标志。但是根据ARM文档,结果(-5)不是正数或零,因此,不应设置进位标志。(假设我们查看签名的结果;否则根据文档将不会发生进位)。
ARM文档是否错误?我有什么误会