语法:
sub{条件}{s} Rd, Rs, 寄存器移位操作或立即数
备注:
- {条件} 可选项
- {s} 可选项.
当有s时,最终运算结果影响CPSR的条件标志位;
当没有s时,最终运算结果不影响CPSR的条件标志位;- Rd 目的寄存器
- Rs 源寄存器
运算原理:
Rd = Rs - 寄存器移位操作或立即数
常见减法的形式:
sub Rd, Rn ;//Rd -= Rn
sub Rd, Rn, #立即数 ;//Rd = Rn-立即数
sub Rd, #立即数 ;//Rd -= 立即数
sub Rd, Rn, Rm ;//Rd = Rm-Rm
示例:
减法操作:
sub r0, r0, #1 ;//r0=r0-1
当 subs 指令与跳转指令配合使用时,可以实现循环,此时不再需要 cmp :
mov r0, #0x10 1 subs r0, r0, #1 ;//当上面 r0 递减之后,不为 0 时,就向前调整到标号 1 处执行 bne %B1