|
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opcode |
opcode | 命令または命令クラス |
---|---|
00xxxx | シフト(イミディエイト)、加算、減算、移動、比較 |
010000 | データ処理 |
010001 | 特殊なデータ命令、分岐、交換 |
01001x | リテラルプールからのロード (PC相対ロード) |
0101xx | 単一データアイテムのロード/ストア |
011xxx | |
100xxx | |
10100x | PC相対アドレスの生成 |
10101x | SP相対アドレスの生成 |
1011xx | その他の16ビット命令 |
11000x | マルチプルレジスターストア |
11001x | マルチプルレジスターロード |
1101xx | 条件分岐とスーパーバイザーコール |
11100x | 無条件分岐 |
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | op1 | op2 | op |
op1 | op2 | op | 命令クラス |
---|---|---|---|
01 | 00xx0xx | x | マルチプルロード/ストア命令 |
01 | 00xx1xx | x | デュアルまたは排他的ロード/ストア命令 |
01 | 01xxxxx | x | データ処理(レジスターシフト) |
01 | 1xxxxxx | x | コプロセッサー命令 |
10 | x0xxxxx | 0 | データ処理(イミディエイト) |
10 | x1xxxxx | 0 | データ処理(プレーンバイナリイミディエイト) |
10 | xxxxxxx | 1 | 分岐とその他の制御 |
11 | 000xxx0 | x | 単一のデータ項目の格納 |
11 | 001xxx0 | x | Advanced SIMD(NEON)要素または構造体のロード/ストア命令 |
11 | 00xx001 | x | バイトのロード、メモリーのヒント |
11 | 00xx011 | x | ハーフワードのロード、メモリーのヒント |
11 | 00xx101 | x | ワードのロード |
11 | 00xx111 | x | ※未定義※ |
11 | 010xxxx | x | データ処理(レジスター) |
11 | 0110xxx | x | 乗算、積和演算、差の絶対値 |
11 | 0111xxx | x | ロング乗算、ロング積和演算、除算 |
11 | 1xxxxxx | x | コプロセッサー命令 |
IT{x{y{z}}} <firstcond>オペコードは次の通り。
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | firstcond | mask |
ITTE NE ITT AL IT NEITのあと、最大3文字でTまたはEを附すことが出来る。