1 指令语法
adc <Xd>, <Xn>, <Xm>
2 指令语义
adc
就是带「进位」加法,指令中的c
就是英文carry
。
整个指令等价于:
(Xd, _) = Xn + Xm + PSTATE.C
也就是将寄存器Xn
,寄存器Xm
,PSTATE
中的「进位」标志相加,将相加的结果写入寄存器Xd
,但是丢弃相加产生的「进位」。
也就是说,adc
指令只是使用PSTATE
中的「进位」标志,但是最终结果不影响PSTATE
中的「进位」标志。
3 PSTATE
上面代码中PSTATE
是Process State
,存储着ARM CPU
运行时的一些状态。
PSTATE
中最常见的状态就是 NZCV
:
N: 借位标志 - Negative Condition flag
Z: 0 - Zero Condition flag
C: 进位标志 - Carry Condition flag
V: 溢出标志 - Overflow Condition flag
要表示PSTATE
中的某一标志,比如「进位」,可以写成PSTATE.C
。
PSTATE
除