REV、REV16、REVSH、RBIT

ワード内またはハーフワード内で、バイトまたはビットを反転する命令です。

Show/hide構文

op{cond} Rd, Rn

各パラメータには以下の意味があります。

op

以下のいずれかを指定します。

REV

ワード内のバイト順序を反転させます。

REV16

各ハーフワード内のバイト順序を独自に反転させます。

REVSH

下位ハーフワード内のバイト順序を反転させ、それを 32 ビットに符号拡張します。

RBIT

32 ビットワード内のビット順序を反転させます。

cond

任意の条件コードを指定します。

Rd

デスティネーションレジスタを指定します。

Rn

オペランドを保持するレジスタを指定します。

Show/hide使用法

以下の命令を使用して、エンディアン方式を変更できます。

REV

32 ビットのビッグエンディアンデータをリトルエンディアンデータに変換するか、32 ビットのリトルエンディアンデータをビッグエンディアンデタに変換します。

REV16

16 ビットのビッグエンディアンデータをリトルエンディアンデータに変換するか、16 ビットのリトルエンディアンデータをビッグエンディアンデタに変換します。

REVSH

次のいずれかの変換を行います。

  • 16 ビットの符号付きビッグエンディアンデータを 32 ビットの符号付きリトルエンディアンデータに変換します。

  • 16 ビットの符号付きリトルエンディアンデータを 32 ビットの符号付きビッグエンディアンデータに変換します。

Show/hideレジスタの制約条件

レジスタには PC は使用できません。

SP は ARM 命令で使用できますが、これらは ARMv6T2 以降では非推奨です。Thumb 命令では SP は使用できません。

Show/hide条件フラグ

これらの命令によるフラグへの影響はありません。

Show/hide16 ビット命令

これらの命令は、Thumb コード内では次の形式で使用できます。これらは 16 ビット命令です。

REV Rd, Rm

RdRm は共に Lo レジスタである必要があります。

REV16 Rd, Rm

RdRm は共に Lo レジスタである必要があります。

REVSH Rd, Rm

RdRm は共に Lo レジスタである必要があります。

Show/hideアーキテクチャ

RBIT を除く上記の ARM 命令は、ARMv6 以降で使用できます。

ARM 命令 RBIT は、ARMv6T2 以降で使用できます。

これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。

これらの 16 ビット Thumb 命令は、ARMv6 以降で使用できます。

Show/hide

    REV     r3, r7
    REV16   r0, r0
    REVSH   r0, r5       ; 符号付きハーフワードを反転させる
    REVHS   r3, r7       ; "より大きい" または "同じ" 条件を適用して反転させる
    RBIT    r7, r8

Show/hide関連項目

参照:
Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489EJ
Non-ConfidentialID081711