在arm中,ADD加法不带进位的,adds是带进位的,运算完成要置符号位,所以不能替换,sub和subs是做减法的,类似用法。
如果指定了 S,则这些指令将会根据结果来更新 N、Z、C 和 V 标记。
16 位指令
这些指令的下列形式可用于 Thumb-2 之前的 Thumb 代码中,在 Thumb-2 代码中使用时为 16 位指令:
ADDS Rd, Rn, #imm
imm 范围为 0-7。Rd 和 Rn 必须都是 Lo 寄存器。
ADDS Rd, Rn, Rm
Rd、Rn 和 Rm 必须都是 Lo 寄存器。
ADD Rd, Rd, Rm
ARMv6 及更低版本: Rd 和/或 Rm 必须是 Hi 寄存器。 ARMv6T2 及更高版本: 无此限制。
ADDS Rd, Rd, #imm
imm 范围为 0-255。Rd 必须是 Lo 寄存器。
SUBS Rd, Rn, Rm
Rd、Rn 和 Rm 必须都是 Lo 寄存器。
SUBS Rd, Rn, #imm
imm 范围为 0-7。Rd 和 Rn 必须都是 Lo 寄存器。
SUBS Rd, Rd, #imm
imm 范围为 0-255。Rd 必须是 Lo 寄存器。
在arm中,ADD加法不带进位的,adds是带进位的,运算完成要置符号位,所以不能替换,sub和subs是做减法的,类似用法。
如果指定了 S,则这些指令将会根据结果来更新 N、Z、C 和 V 标记。
16 位指令
这些指令的下列形式可用于 Thumb-2 之前的 Thumb 代码中,在 Thumb-2 代码中使用时为 16 位指令:
ADDS Rd, Rn, #imm
imm 范围为 0-7。Rd 和 Rn 必须都是 Lo 寄存器。
ADDS Rd, Rn, Rm
Rd、Rn 和 Rm 必须都是 Lo 寄存器。
ADD Rd, Rd, Rm
ARMv6 及更低版本: Rd 和/或 Rm 必须是 Hi 寄存器。 ARMv6T2 及更高版本: 无此限制。
ADDS Rd, Rd, #imm
imm 范围为 0-255。Rd 必须是 Lo 寄存器。
SUBS Rd, Rn, Rm
Rd、Rn 和 Rm 必须都是 Lo 寄存器。
SUBS Rd, Rn, #imm
imm 范围为 0-7。Rd 和 Rn 必须都是 Lo 寄存器。
SUBS Rd, Rd, #imm
imm 范围为 0-255。Rd 必须是 Lo 寄存器。
举报