ARM 命令セット一覧

ニーモニックARM ISA説明
ADCv12つの32ビット値とキャリーの加算
ADDv12つの32ビット値の加算
ANDv12つの32ビット値のビット単位の論理積
Bv1相対分岐 +/- 32MB
BICv12つの32ビット値の論理ビットクリア(AND NOT)
BKPTv5ブレークポイント命令
BLv1リンク付き相対分岐
BLXv5リンク付き分岐交換
BXv4T分岐交換
CDP,CDP2v2,v5コプロセッサのデータ処理操作
CLZv5先行ゼロカウント
CMNv12つの32ビット値の否定比較
CMPv12つの32ビット値の比較
EORv12つの32ビット値の排他的論理和
LDC,LDC2v2,v5コプロセッサに単一または複数の32ビット値をロードする
LDMv1メモリからARMレジスタに複数の32ビット値をロードする
LDRv1,v4,v5Eメモリの仮想アドレスから単一の値をロードする
MCR,MCR2,MCRRv2,v5,v5EARMレジスタからコプロセッサへの移動
MLAv232ビット値の積和
MOVv132ビット値をレジスタに移動する
MRC,MRC2,MRRCv2,v5,v5EコプロセッサからARMレジスタへの移動
MRSv3ステータスレジスタ(cpsrまたはspsr)からARMレジスタへの移動
MSRv3ARMレジスタからステータスレジスタ(cpsrまたはspsr)への移動
MULv22つの32ビット値の乗算
MVNv132ビット値の論理NOTをレジスタに移動する
ORRv12つの32ビット値のビット単位の論理和
PLDv5Eプリロードヒント命令
QADDv5E符号付き32ビット飽和加算
QDADDv5E符号付きダブルおよび32ビット飽和加算
QDSUBv5E符号付きダブルおよび32ビット飽和減算
QSUBv5E符号付き32ビット飽和減算
RSBv12つの32ビット値の反転減算
RSCv12つの32ビット値のキャリー付き反転減算
SBCv12つの32ビット値のキャリー付き減算
SMLAxyv5E符号付き積和命令
SMLALv3M符号付きロング積和
SMLALxyv5E符号付きロング積和
SMLAWyv5E符号付き積和命令
SMULLv3M符号付きロング乗算
SMULxyv5E符号付き乗算命令
SMULWyv5E符号付き乗算命令
STC,STC2v2,v5コプロセッサから単一または複数の32ビット値をメモリにストアする
STMv1複数の32ビットレジスタからメモリへのストア
STRv1,v4,v5Eメモリの仮想アドレスにレジスタをストアする
SUBv12つの32ビット値の減算
SWIv1ソフトウェア割り込み
SWPv2aメモリのワード・バイトをレジスタと交換、割り込みなし
TEQv12つの32ビット値の等価テスト
TSTv132ビット値のビットのテスト
UMLALv3M符号無しロング積和
UMULLv3M符号無しロング乗算

アセンブラの擬似命令

ニーモニック説明
ADRアドレスロード擬似命令

詳細画面で登場する記号の意味

・Rd = Destination Register (転送先レジスタ) ・Rn = Source Register (転送元レジスタ) ・Rm = Source Register 2 (転送元レジスタ 2)

・sp は r13 と同じ場所を指す ・lr は r14 と同じ場所を指す ・pc は r15 と同じ場所を指す

・中括弧 "{ }" で囲まれた範囲はオプション

・S が接尾文字として付いている命令は、cpsr (ステータスレジスタ) を更新する

・N の取り得る範囲 (バレルシフタ演算の構文)

説明構文
即値#immediate (16進数の場合は #0x)
レジスタRm
事前に指定した値だけ論理左シフト (即値)Rm, LSL #shift
事前に指定した値だけ論理左シフト (レジスタ)Rm, LSL Rs
事前に指定した値だけ論理右シフト (即値)Rm, LSR #shift
事前に指定した値だけ論理右シフト (レジスタ)Rm, LSR Rs
事前に指定した値だけ算術右シフト (即値)Rm, ASR #shift
事前に指定した値だけ算術右シフト (レジスタ)Rm, ASR Rs
事前に指定した値だけ右ローテート (即値)Rm, ROR #shift
事前に指定した値だけ右ローテート (レジスタ)Rm, ROR Rs
拡張付き右ローテートRm, RRX

・<cond>の取り得る範囲 (条件ニーモニック)

<cond>命令が実行される条件cpsr の状態
{|AL}常時True
EQ等しい (最後の結果が 0 である)Z == 1
NE等しくない (最後の結果が 0 でない)Z == 0
{CS|HS}キャリーがセットされ、符号なしのより大きいか等しい (比較の後)C == 1
{CC|LO}キャリーがクリアで、符号なしのより小さい (比較の後)C == 0
MIマイナス (最後の結果が負)N == 1
PLプラス (最後の結果が 0 または 0 より大きい)N == 0
VSV フラグがセットされている (最後の結果が符号付きオーバーフロー)V == 1
VCV フラグがクリアされている (最後の結果が符号付きオーバーフローなし)V == 0
HI符号なしのより大きい (比較の後)C == 1 && Z == 0
LS符号なしのより小さいか等しい (比較の後)C == 0 || Z == 1
GE符号付きのより大きいか等しいN == V
LT符号付きのより小さいN != V
GT符号付きのより大きいN == V && Z == 0
LE符号付きのより小さいか等しいN != V || Z == 1
NV常に否定−ARMv1 および ARMv2専用−使用してはいけないFalse

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 17:45:12 (2408d)