とは:
ORRS R1、R3は?
R1 |= R3 だけで、おそらく N または Z フラグを設定していますか?
これは露骨に明らかかもしれませんが、オペランド 2なしで ORR ニーモニックを説明しているドキュメントは見つかりませんでした。
フィードバックをお待ちしております。
-b.
Thumb命令です。16 ビットの Thumb オペコードでは、2 つのオペランドしか適合できず、余分なoperand2
.
ご想像のとおり、そうR1 |= R3
です。S
フラグの存在は、この命令が If-Then ブロック (適切な ARM 条件付き実行の代わりに Thumb が持っているもの) の一部であることを示します。同じオペコードORR
を生成し、コンテキストのみが異なります。ORRS
ARM アセンブリでは、デスティネーション レジスタ (Rd) がソース レジスタ (Rn) と同じである命令では、Rd を省略できます。したがって、これらは同じであり、まったく同じ命令にアセンブルされます。
orrs r1, r1, r3
orrs r1, r3
add r1, r1, #5
add r1, #5
等々。
それはarmv7mtrmまたはそれ自身のtrmにあるかもしれません、しかしそれらは持っています、私は統一された、アセンブリ言語という用語を覚えていません、それで
r0、r3を追加
腕と親指の両方で組み立てられます。親指の場合は、腕の場合と同じように、上記はr0、r0、r3を追加することになります。親指の場合、3レジスタオプションは取得できませんが、機能はr0 = r0+r3を意味します。