古詩詞大全網 - 成語故事 - 在ARM匯編中,ADD可以替換為ADDS嗎,SUB可以替換為SUBS嗎?為什麽?

在ARM匯編中,ADD可以替換為ADDS嗎,SUB可以替換為SUBS嗎?為什麽?

在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 寄存器。