ARM技术论坛
直播中

张丽

7年用户 1394经验值
私信 关注
[问答]

在ARM汇编中ADD可以替换为ADDS吗

在ARM汇编中,ADD可以替换为ADDS吗,SUB可以替换为SUBS吗?为什么?懂ARM汇编的请进,谢谢。

回帖(2)

刘艳

2022-11-9 15:15:30
在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 寄存器。
举报

李辉

2022-11-9 15:15:52
答案是:
Adds(带进位) add
产生进位的时候不可以
不产生进位的时候可以
sub, subs类似
举报

更多回帖

发帖
×
20
完善资料,
赚取积分