SBC(Subtract with Carry)带进位的减操作指令,用于执行操作数大于32位时的减法操作。该指令从寄存器<Rn>中减去<shifter_operand>表示的数值,再减去寄存器CPSR中C条件标志位的反码(NOT(Carry flag))。并将结果保存到目标寄存器<Rd>中,并根据指令的执行结果设置CPSR中相应的标志位。
If ConditionPassed{cond} then
Rd=Rn - shifter_operand-NOT(C Flag)
If S==1 and Rd==r15 then
CPSR=SPSR
Else if S==1 then
N flag=Rd[31]
Z flag=if Rd==0 then 1 else 0
C flag=NOT BorrowFrom{ Rn - shifter_operand-NOT(C Flag)}
V flag=OverflowFrom{ Rn - shifter_operand-NOT(C Flag)}