ARM® コンパイラ armasm ユーザガイド

バージョン 5.04


目次

序章
本書について
本書の構成
表記規則
Feedback
本製品に関するフィードバック
内容に関するフィードバック
1 アセンブラの概要
1.1 ARM コンパイラツールチェーンのアセンブラについて
1.2 アセンブラの主な機能
1.3 アセンブラの操作方法
1.4 アセンブラのパス 2 で省略できるディレクティブ
2 ARM アーキテクチャの概要
2.1 ARM アーキテクチャについて
2.2 ARM、Thumb、および ThumbEE の命令セット
2.3 ARM、Thumb、および ThumbEE 状態の切り替え
2.4 プロセッサモード、および特権モードと非特権モードでのソフトウェア実行
2.5 ARMv6-M および ARMv7-M のプロセッサモード
2.6 NEON テクノロジ
2.7 VFP ハードウェア
2.8 ARM レジスタ
2.9 汎用レジスタ
2.10 レジスタへのアクセス
2.11 事前宣言されている主要なレジスタ名
2.12 事前宣言されている拡張レジスタ名
2.13 事前宣言されている XScale レジスタ名
2.14 事前宣言されているコプロセッサ名
2.15 プログラムカウンタ
2.16 アプリケーションプログラムステータスレジスタ
2.17 Q フラグ
2.18 カレントプログラムステータスレジスタ
2.19 セーブドプログラムステータスレジスタ
2.20 ARM 命令セットと Thumb 命令セットの概要
2.21 インラインバレルシフタへのアクセス
3 アセンブリ言語モジュールの構造
3.1 アセンブリ言語のソース行の構文
3.2 リテラル
3.3 ELF セクションと AREA ディレクティブ
3.4 ARM アセンブリ言語モジュールのサンプル
4 ARM アセンブリ言語の記述
4.1 統合アセンブラ言語について
4.2 サブルーチン呼び出しでのレジスタの使用方法
4.3 レジスタへの 32 ビットイミディエート値のロード
4.4 MOV および MVN を使用したイミディエート値のロード
4.5 MOV32 を使用したレジスタへの 32 ビット値のロード
4.6 LDR Rd, =const を使用したレジスタへの 32 ビットイミディエート値のロード
4.7 リテラルプール
4.8 レジスタへのアドレスのロード
4.9 ADR を使用したレジスタへのアドレスのロード
4.10 ADRL を使用したレジスタへのアドレスのロード
4.11 LDR Rd, =label を使用したレジスタへのアドレスのロード
4.12 レジスタのロードとストアを実行する他の方法
4.13 複数レジスタ ロード/ストア命令
4.14 ARM と Thumb での複数レジスタのロード/ストア命令
4.15 LDM および STM を使用したスタックの実装
4.16 ネストされたサブルーチンのスタック操作
4.17 LDM および STM によるブロックコピー
4.18 メモリアクセス
4.19 読み出し-変更-書き込み操作
4.20 イミディエート定数付きのオプションのハッシュ
4.21 マクロについて
4.22 Test-and-Branch(テスト-分岐)マクロのサンプル
4.23 符号なし整数除算マクロのサンプル
4.24 命令とディレクティブの再配置
4.25 シンボルバージョン
4.26 Frame ディレクティブ
4.27 例外テーブルと unwind テーブル
4.28 RVCTv2.1 以降のアセンブリ言語に関する変更点
5 条件コード
5.1 条件付き命令
5.2 ARM 状態での条件付き実行
5.3 Thumb 状態での条件付き実行
5.4 条件フラグの更新
5.5 条件コードの接尾文字
5.6 条件コードの意味の比較
5.7 条件付き実行を使用するメリット
5.8 条件付き実行を使用するメリットの実例
5.9 実行速度の最適化
6 アセンブラの使用
6.1 アセンブラのコマンドライン構文
6.2 環境変数を使用したコマンドラインオプションの指定
6.3 via ファイルの概要
6.4 via ファイルの構文規則
6.5 stdin を使用したアセンブラへのソースコードの入力
6.6 組み込み変数および定数
6.7 ソースコードでの armasm のバージョンの指定
6.8 診断メッセージ
6.9 インターロック診断
6.10 自動 IT ブロック生成
6.11 Thumb 分岐ターゲットのワード境界整列
6.12 Thumb コードサイズの診断
6.13 ARM 命令と Thumb 命令の移植性の診断
6.14 命令の幅
6.15 2 つのパスアセンブラ診断
6.16 条件付きアセンブリ
6.17 C プリプロセッサを使用する
6.18 アドレス境界調整
6.19 Thumb での命令の幅の選択
7 シンボル、リテラル、式、および演算子
7.1 シンボルの命名規則
7.2 変数
7.3 数値定数
7.4 アセンブリ時の変数代入
7.5 レジスタ相対式と PC 相対式
7.6 ラベル
7.7 PC 相対アドレスのラベル
7.8 レジスタ相対アドレスのラベル
7.9 絶対アドレスのラベル
7.10 数値のローカルラベル
7.11 数値のローカルラベルの構文
7.12 文字列式
7.13 文字列リテラル
7.14 数値式
7.15 数値リテラルの構文
7.16 浮動小数点リテラルの構文
7.17 論理式
7.18 論理リテラル
7.19 単項演算子
7.20 バイナリ演算子
7.21 乗算演算子
7.22 文字列操作演算子
7.23 シフト演算子
7.24 加算、減算、および論理演算子
7.25 関係演算子
7.26 ブール演算子
7.27 演算子の優先順位
7.28 アセンブリ言語と C 言語における演算子の優先順位の違い
8 NEON と VFP プログラミング
8.1 NEON と VFP 向けのアーキテクチャサポート
8.2 半精度拡張
8.3 融合型積和演算拡張
8.4 拡張レジスタバンクのマッピング
8.5 レジスタバンクの NEON ビュー
8.6 拡張レジスタバンクの VFP ビュー
8.7 VFP レジスタおよび NEON レジスタへの値のロード
8.8 NEON 命令および VFP 命令の条件付き実行
8.9 浮動小数点の例外
8.10 NEON データ型および VFP データ型
8.11 NEON ベクタ
8.12 Normal、Long、Wide、および Narrow の NEON 演算
8.13 サチュレート NEON 命令
8.14 NEON スカラ
8.15 拡張表記
8.16 {0,1} 上の多項式算術演算
8.17 NEON/VFP システムレジスタ
8.18 flush-to-zero モード
8.19 flush-to-zero モードをいつ使用すべきか
8.20 flush-to-zero モードの使用による影響
8.21 flush-to-zero モードの影響を受けない演算
8.22 VFP ベクタモード
8.23 VFP 拡張レジスタバンクのベクタ
8.24 VFP ベクタのラップアラウンド
8.25 VFP ベクタのストライド
8.26 ベクタの長さに関する制限
8.27 スカラ演算、ベクタ演算、および混合演算の制御
8.28 VFP ディレクティブとベクタ表記の概要
8.29 UAL 以前の VFP 構文とニーモニック
8.30 ベクタ表記
8.31 VFPASSERT SCALAR
8.32 VFPASSERT VECTOR
9 アセンブラコマンドラインオプション
9.1 --16
9.2 --32
9.3 --apcs=qualifier…qualifier
9.4 --arm
9.5 --arm_only
9.6 --bi
9.7 --bigend
9.8 --brief_diagnostics、--no_brief_diagnostics
9.9 --checkreglist
9.10 --compatible=name
9.11 --cpreproc
9.12 --cpreproc_opts=options
9.13 --cpu=list
9.14 --cpu=name アセンブラオプション
9.15 --debug
9.16 --depend=dependfile
9.17 --depend_format=string
9.18 --device=list
9.19 --device=name
9.20 --diag_error=tag[,tag,…]
9.21 --diag_remark=tag[,tag,…]
9.22 --diag_style={arm|ide|gnu}
9.23 --diag_suppress=tag[,tag,…]
9.24 --diag_warning=tag[,tag,…]
9.25 --dllexport_all
9.26 --dwarf2
9.27 --dwarf3
9.28 --errors=errorfile
9.29 --execstack、--no_execstack
9.30 --execute_only
9.31 --exceptions、--no_exceptions
9.32 --exceptions_unwind、--no_exceptions_unwind
9.33 --fpmode=model
9.34 --fpu=list
9.35 --fpu=name
9.36 -g
9.37 --help
9.38 -idir{,dir, …}
9.39 --keep
9.40 --length=n
9.41 --li
9.42 --library_type=lib
9.43 --licretry
9.44 --list=file
9.45 --list=
9.46 --littleend
9.47 -m
9.48 --maxcache=n
9.49 --md
9.50 --no_code_gen
9.51 --no_esc
9.52 --no_hide_all
9.53 --no_regs
9.54 --no_terse
9.55 --no_warn
9.56 -o filename
9.57 --pd
9.58 --predefine "directive"
9.59 --reduce_paths、--no_reduce_paths
9.60 --regnames=none
9.61 --regnames=callstd
9.62 --regnames=all
9.63 --report-if-not-wysiwyg
9.64 --show_cmdline
9.65 --split_ldm
9.66 --thumb
9.67 --thumbx
9.68 --unaligned_access、--no_unaligned_access
9.69 --unsafe
9.70 --untyped_local_labels
9.71 --version_number
9.72 --via=filename
9.73 --vsn
9.74 --width=n
9.75 --xref
10 ARM 命令と Thumb 命令
10.1 ARM 命令と Thumb 命令の概要
10.2 命令の幅指定子
10.3 フレキシブル第 2 オペランド(Operand2)
10.4 定数としての Operand2 の構文
10.5 シフトが任意に実行されるレジスタとしての Operand2 の構文
10.6 シフト演算
10.7 サチュレート命令
10.8 条件コード
10.9 ADC
10.10 ADD
10.11 ADR(PC 相対)
10.12 ADR(レジスタ相対)
10.13 ADRL 疑似命令
10.14 AND
10.15 ASR
10.16 B
10.17 BFC
10.18 BFI
10.19 BIC
10.20 BKPT
10.21 BL
10.22 BLX
10.23 BX
10.24 BXJ
10.25 CBZ、CBNZ
10.26 CDP、CDP2
10.27 CLREX
10.28 CLZ
10.29 CMP、CMN
10.30 CPS
10.31 CPY 疑似命令
10.32 DBG
10.33 DMB
10.34 DSB
10.35 EOR
10.36 ERET
10.37 ISB
10.38 IT
10.39 LDC および LDC2
10.40 LDM
10.41 LDR(イミディエートオフセット)
10.42 LDR(PC 相対)
10.43 LDR(レジスタオフセット)
10.44 LDR(レジスタ相対)
10.45 LDR 疑似命令
10.46 LDR、非特権モード
10.47 LDREX
10.48 LSL
10.49 LSR
10.50 MAR
10.51 MCR および MCR2
10.52 MCRR および MCRR2
10.53 MIA、MIAPH、MIAxy
10.54 MLA
10.55 MLS
10.56 MOV
10.57 MOV32 疑似命令
10.58 MOVT
10.59 MRA
10.60 MRC および MRC2
10.61 MRRC および MRRC2
10.62 MRS(PSR 汎用レジスタ)
10.63 MRS(システムコプロセッサレジスタから ARM レジスタへ)
10.64 MSR(ARM レジスタからシステムコプロセッサレジスタへ)
10.65 MSR(PSR への汎用レジスタ)
10.66 MUL
10.67 MVN
10.68 NEG 疑似命令
10.69 NOP
10.70 ORN(Thumb のみ)
10.71 ORR
10.72 PKHBT、PKHTB
10.73 PLD、PLDW、PLI
10.74 POP
10.75 PUSH
10.76 QADD
10.77 QADD8
10.78 QADD16
10.79 QASX
10.80 QDADD
10.81 QDSUB
10.82 QSAX
10.83 QSUB
10.84 QSUB8
10.85 QSUB16
10.86 RBIT
10.87 REV
10.88 REV16
10.89 REVSH
10.90 RFE
10.91 ROR
10.92 RRX
10.93 RSB
10.94 RSC
10.95 SADD8
10.96 SADD16
10.97 SASX
10.98 SBC
10.99 SBFX
10.100 SDIV
10.101 SEL
10.102 SETEND
10.103 SEV
10.104 SHADD8
10.105 SHADD16
10.106 SHASX
10.107 SHSAX
10.108 SHSUB8
10.109 SHSUB16
10.110 SMC
10.111 SMLAxy
10.112 SMLAD
10.113 SMLAL
10.114 SMLALD
10.115 SMLALxy
10.116 SMLAWy
10.117 SMLSD
10.118 SMLSLD
10.119 SMMLA
10.120 SMMLS
10.121 SMMUL
10.122 SMUAD
10.123 SMULxy
10.124 SMULL
10.125 SMULWy
10.126 SMUSD
10.127 SRS
10.128 SSAT
10.129 SSAT16
10.130 SSAX
10.131 SSUB8
10.132 SSUB16
10.133 STC および STC2
10.134 STM
10.135 STR(イミディエートオフセット)
10.136 STR(レジスタオフセット)
10.137 STR、非特権モード
10.138 STREX
10.139 SUB
10.140 SUBS PC、lr
10.141 SVC
10.142 SWP と SWPB
10.143 SXTAB
10.144 SXTAB16
10.145 SXTAH
10.146 SXTB
10.147 SXTB16
10.148 SXTH
10.149 SYS
10.150 TBB、TBH
10.151 TEQ
10.152 TST
10.153 UADD8
10.154 UADD16
10.155 UASX
10.156 UBFX
10.157 UDIV
10.158 UHADD8
10.159 UHADD16
10.160 UHASX
10.161 UHSAX
10.162 UHSUB8
10.163 UHSUB16
10.164 UMAAL
10.165 UMLAL
10.166 UMULL
10.167 UND 疑似命令
10.168 UQADD8
10.169 UQADD16
10.170 UQASX
10.171 UQSAX
10.172 UQSUB8
10.173 UQSUB16
10.174 USAD8
10.175 USADA8
10.176 USAT
10.177 USAT16
10.178 USAX
10.179 USUB8
10.180 USUB16
10.181 UXTAB
10.182 UXTAB16
10.183 UXTAH
10.184 UXTB
10.185 UXTB16
10.186 UXTH
10.187 WFE
10.188 WFI
10.189 YIELD
11 ThumbEE 命令
11.1 ThumbEE 命令差分
11.2 命令の概要
11.3 CHKA
11.4 ENTERX、LEAVEX
11.5 HB、HBL、HBLP、HBP
12 NEON および VFP 命令
12.1 NEON 命令の概要
12.2 NEON と VFP に共通の命令の概要
12.3 VFP 命令の概要
12.4 要素と構造体のロード/ストア命令で提供されるインターリーブ
12.5 ロードとストア命令、要素と構造体の命令における境界調整の制約
12.6 VABA および VABAL
12.7 VABD および VABDL
12.8 VABS
12.9 VABS(浮動小数点)
12.10 VACLE、VACLT、VACGE、および VACGT
12.11 VADD(浮動小数点)
12.12 VADD
12.13 VADDHN
12.14 VADDL および VADDW
12.15 VAND(イミディエート)
12.16 VAND(レジスタ)
12.17 VBIC(イミディエート)
12.18 VBIC(レジスタ)
12.19 VBIF
12.20 VBIT
12.21 VBSL
12.22 VCEQ(イミディエート #0)
12.23 VCEQ(レジスタ)
12.24 VCGE(イミディエート #0)
12.25 VCGE(レジスタ)
12.26 VCGT(イミディエート #0)
12.27 VCGT(レジスタ)
12.28 VCLE(イミディエート #0)
12.29 VCLE(レジスタ)
12.30 VCLS
12.31 VCLT(イミディエート #0)
12.32 VCLT(レジスタ)
12.33 VCLZ
12.34 VCMP、VCMPE
12.35 VCNT
12.36 VCVT(固定小数点または整数と浮動小数点間)
12.37 VCVT(半精度浮動小数点数と単精度浮動小数点数間の変換)
12.38 VCVT(単精度と倍精度の間)
12.39 VCVT(浮動小数点と整数間の変換)
12.40 VCVT(浮動小数点と固定小数点間)
12.41 VCVTB、VCVTT(半精度拡張)
12.42 VDIV
12.43 VDUP
12.44 VEOR
12.45 VEXT
12.46 VFMA、VFMS
12.47 VFMA、VFMS、VFNMA、VFNMS
12.48 VHADD
12.49 VHSUB
12.50 VLDn(1 レーンへの 1 つの n 要素構造体)
12.51 VLDn(全レーンへの 1 つの n 要素構造体)
12.52 VLDn(複数の n 要素構造体)
12.53 VLDM
12.54 VLDR
12.55 VLDR(ポストインクリメントとプレデクリメント)
12.56 VLDR 疑似命令
12.57 VMAX および VMIN
12.58 VMLA
12.59 VMLA(スカラによる)
12.60 VMLA(浮動小数点)
12.61 VMLAL(スカラによる)
12.62 VMLAL
12.63 VMLS(スカラによる)
12.64 VMLS
12.65 VMLS(浮動小数点)
12.66 VMLSL
12.67 VMLSL(スカラによる)
12.68 VMOV(浮動小数点)
12.69 VMOV(イミディエート)
12.70 VMOV(レジスタ)
12.71 VMOV(1 本の ARM レジスタと単精度 VFP の間)
12.72 VMOV(2 本の ARM レジスタと拡張レジスタ間)
12.73 VMOV(ARM レジスタと NEON スカラの間)
12.74 VMOVL
12.75 VMOVN
12.76 VMOV2
12.77 VMRS
12.78 VMSR
12.79 VMUL
12.80 VMUL(浮動小数点)
12.81 VMUL(スカラによる)
12.82 VMULL
12.83 VMULL(スカラによる)
12.84 VMVN(レジスタ)
12.85 VMVN(イミディエート)
12.86 VNEG(浮動小数点)
12.87 VNEG
12.88 VNMLA(浮動小数点)
12.89 VNMLS(浮動小数点)
12.90 VNMUL(浮動小数点)
12.91 VORN(レジスタ)
12.92 VORN(イミディエート)
12.93 VORR(レジスタ)
12.94 VORR(イミディエート)
12.95 VPADAL
12.96 VPADD
12.97 VPADDL
12.98 VPMAX および VPMIN
12.99 VPOP
12.100 VPUSH
12.101 VQABS
12.102 VQADD
12.103 VQDMLAL および VQDMLSL(ベクタまたはスカラによる)
12.104 VQDMULH(ベクタまたはスカラによる)
12.105 VQDMULL(ベクタまたはスカラによる)
12.106 VQMOVN および VQMOVUN
12.107 VQNEG
12.108 VQRDMULH(ベクタまたはスカラによる)
12.109 VQRSHL(符号付き変数による)
12.110 VQRSHRN および VQRSHRUN(イミディエートによる)
12.111 VQSHL(符号付き変数による)
12.112 VQSHL および VQSHLU(イミディエートによる)
12.113 VQSHRN および VQSHRUN(イミディエートによる)
12.114 VQSUB
12.115 VRADDHN
12.116 VRECPE
12.117 VRECPS
12.118 VREV16、VREV32、VREV64
12.119 VRHADD
12.120 VRSHL(符号付き変数による)
12.121 VRSHR(イミディエートによる)
12.122 VRSHRN(イミディエートによる)
12.123 VRSQRTE
12.124 VRSQRTS
12.125 VRSRA(イミディエートによる)
12.126 VRSUBHN
12.127 VSHL(イミディエートによる)
12.128 VSHL(符号付き変数による)
12.129 VSHLL(イミディエートによる)
12.130 VSHR(イミディエートによる)
12.131 VSHRN(イミディエートによる)
12.132 VSLI
12.133 VSQRT
12.134 VSRA(イミディエートによる)
12.135 VSRI
12.136 VSTM
12.137 VSTn(複数の n 要素構造体)
12.138 VSTn(1 レーンへの 1 つの n 要素構造体)
12.139 VSTR
12.140 VSTR(ポストインクリメントとプレデクリメント)
12.141 VSUB(浮動小数点)
12.142 VSUB
12.143 VSUBHN
12.144 VSUBL および VSUBW
12.145 VSWP
12.146 VTBL および VTBX
12.147 VTRN
12.148 VTST
12.149 VUZP
12.150 VZIP
13 ワイヤレス MMX テクノロジの命令
13.1 ワイヤレス MMX テクノロジの命令について
13.2 ワイヤレス MMX テクノロジをサポートする WRN ディレクティブおよび WCN ディレクティブ
13.3 Frame ディレクティブとワイヤレス MMX テクノロジ
13.4 ワイヤレス MMX ロード/ストア命令
13.5 ワイヤレス MMX テクノロジの命令と XScale の命令
13.6 ワイヤレス MMX の命令
13.7 ワイヤレス MMX の疑似命令
14 ディレクティブリファレンス
14.1 ディレクティブの一覧(アルファベット順)
14.2 アセンブリ制御ディレクティブについて
14.3 Frame ディレクティブについて
14.4 ALIAS
14.5 ALIGN
14.6 AREA
14.7 ARM、THUMB、THUMBX、CODE16、CODE32
14.8 ASSERT
14.9 ATTR
14.10 CN
14.11 COMMON
14.12 CP
14.13 DATA
14.14 DCB
14.15 DCD、DCDU
14.16 DCDO
14.17 DCFD、DCFDU
14.18 DCFS、DCFSU
14.19 DCI
14.20 DCQ、DCQU
14.21 DCW、DCWU
14.22 END
14.23 ENTRY
14.24 EQU
14.25 EXPORT、GLOBAL
14.26 EXPORTAS
14.27 FRAME ADDRESS
14.28 FRAME POP
14.29 FRAME PUSH
14.30 FRAME REGISTER
14.31 FRAME RESTORE
14.32 FRAME RETURN ADDRESS
14.33 FRAME SAVE
14.34 FRAME STATE REMEMBER
14.35 FRAME STATE RESTORE
14.36 FRAME UNWIND ON
14.37 FRAME UNWIND OFF
14.38 FUNCTION、PROC
14.39 ENDFUNC、ENDP
14.40 FIELD
14.41 GBLA、GBLL、GBLS
14.42 GET、INCLUDE
14.43 IF、ELSE、ENDIF、ELIF
14.44 IMPORT、EXTERN
14.45 INCBIN
14.46 INFO
14.47 KEEP
14.48 LCLA、LCLL、LCLS
14.49 LTORG
14.50 MACRO、MEND
14.51 MAP
14.52 MEXIT
14.53 NOFP
14.54 OPT
14.55 QN、DN、SN
14.56 RELOC
14.57 REQUIRE
14.58 REQUIRE8、PRESERVE8
14.59 RLIST
14.60 RN
14.61 ROUT
14.62 SETA、SETL、SETS
14.63 SPACE または FILL
14.64 TTL、SUBT
14.65 WHILE、WEND
A アセンブラドキュメントに対する改訂
A.1 『armasm ユーザガイド』に対する改訂

図の一覧

2-1 汎用レジスタとプログラムステータスレジスタの構成
8-1 拡張レジスタバンク
8-2 VFPv2 レジスタバンク
8-3 VFPv3 レジスタバンク
10-1 ASR #3
10-2 LSR #3
10-3 LSL #3
10-4 ROR #3
10-5 RRX
12-1 3 要素構造体からなる配列のインターリーブの解除
12-2 imm = 3 の場合のダブルワード VEXT 演算
12-3 VPADAL 演算の例(データ型 I16 の場合)
12-4 VPADD 演算の例(データ型 I16 の場合)
12-5 ダブルワード VPADDL 演算の例(データ型 S16 の場合)
12-6 クワッドワード VSHL.64 Qd, Qm, #1 の演算
12-7 クワッドワード VSLI.64 Qd, Qm, #1 の演算
12-8 ダブルワード VSRI.64 Dd, Dm, #2 の演算
12-9 ダブルワード VTRN.8 演算
12-10 ダブルワード VTRN.32 演算

表の一覧

2-1 ARM プロセッサ モード
2-2 事前宣言されている主要なレジスタ
2-3 事前宣言されている拡張レジスタ
2-4 事前宣言されている XScale レジスタ
2-5 事前宣言されているワイヤレス MMX レジスタ
2-6 事前宣言されているコプロセッサレジスタ
2-7 命令グループ
4-1 ARM 状態のイミディエート値(8 ビット)
4-2 MOV 命令に使用できる ARM 状態のイミディエート値
4-3 32 ビット Thumb のイミディエート値
4-4 MOV 命令に使用できる 32 ビット Thumb のイミディエート値
4-5 スタック指向接尾文字および同等のアドレシングモード接尾文字
4-6 複数ロード/ストア命令の接尾文字
4-7 以前の ARM アセンブリ言語からの変更点
4-8 要件の緩和
4-9 UAL 以前の Thumb 構文と UAL 構文の相違点
5-1 条件コードの接尾文字
5-2 条件コード
5-3 条件分岐のみの場合
5-4 すべての命令を条件付きで実行する場合
6-1 組み込み変数
6-2 組み込みブール定数
6-3 定義済みマクロ
6-4 {TARGET_ARCH_ARM} と {TARGET_ARCH_THUMB} の関連
6-5 コマンドラインオプション
6-6 armcc における等価のコマンドラインオプション
7-1 文字列を返す単項演算子
7-2 数値または論理値を返す単項演算子
7-3 乗算演算子
7-4 文字列操作演算子
7-5 シフト演算子
7-6 加算、減算、および論理演算子
7-7 関係演算子
7-8 ブール演算子
7-9 ARM アセンブリ言語における演算子の優先順位
7-10 C における演算子の優先順位
8-1 NEON データ型指定子
8-2 VFP データ型指定子
8-3 NEON サチュレーションの範囲
8-4 UAL 以前の VFP ニーモニック
8-5 FCONST で使用できる浮動小数点値
9-1 互換性のあるプロセッサまたはアーキテクチャの組み合わせ
9-2 サポートされている ARM アーキテクチャ
9-3 診断メッセージの重大度
9-4 GNU-stack セクションに対するコマンドラインオプションと AREA ディレクティブの指定
10-1 ARM 命令と Thumb 命令の概要
10-2 条件コードの接尾文字
10-3 PC 相対オフセット
10-4 レジスタ相対オフセット
10-5 B 命令の使用可否と範囲
10-6 BL 命令の使用可否と分岐の範囲
10-7 BLX 命令の使用可否と分岐の範囲
10-8 BX 命令の使用可否と分岐の範囲
10-9 BXJ 命令の使用可否と分岐の範囲
10-10 オフセットとアーキテクチャ、LDR、ワード、ハーフワード、バイト
10-11 PC 相対オフセット
10-12 オプションとアーキテクチャ、LDR(レジスタオフセット)
10-13 レジスタ相対オフセット
10-14 オフセットとアーキテクチャ、LDR(ユーザモード)
10-15 オフセットとアーキテクチャ、STR、ワード、ハーフワード、バイト
10-16 オプションとアーキテクチャ、STR (レジスタオフセット)
10-17 オフセットとアーキテクチャ、STR (ユーザモード)
10-18 expr の範囲とエンコーディング
11-1 ThumbEE LDR/STR(イミディエートオフセット)のオフセットと使用可否
11-2 ThumbEE LDR/STR(レジスタオフセット)のオフセットと使用可否
11-3 ThumbEE LDR(レジスタ相対)のオフセット
11-4 追加の ThumbEE 命令
12-1 NEON 命令の概要
12-2 NEON と VFP に共通の命令の概要
12-3 VFP 命令の概要
12-4 VBIC(イミディエート)におけるイミディエート値のパターン
12-5 VLDn のパラメータの有効な組み合わせ(1 レーンへの 1 つの n 要素構造体)
12-6 VLDn のパラメータの有効な組み合わせ(全レーンへの 1 つの n 要素構造体)
12-7 VLDn のパラメータの有効な組み合わせ(複数の n 要素構造体)
12-8 VMOV(イミディエート)の使用可能なイミディエート値
12-9 VMVN(イミディエート)の使用可能なイミディエート値
12-10 VORR(イミディエート)におけるイミディエート値のパターン
12-11 VQRSHRN と VQRSHRUN(イミディエートによる)の使用可能なイミディエート範囲
12-12 VQSHL と VQSHLU(イミディエートによる)の使用可能なイミディエート範囲
12-13 VQSHRN と VQSHRUN(イミディエートによる)の使用可能なイミディエート範囲
12-14 VRECPE に有効範囲外の入力を指定した場合の結果
12-15 VRECPS に有効範囲外の入力を指定した場合の結果
12-16 VRSHR(イミディエートによる)で使用可能なイミディエート範囲
12-17 VRSHRN(イミディエートによる)で使用可能なイミディエート範囲
12-18 VRSQRTE の有効範囲外の入力を指定した場合の結果
12-19 VRSQRTS の有効範囲外の入力を指定した場合の結果
12-20 VRSRA(イミディエートによる)で使用可能なイミディエート範囲
12-21 VSHL(イミディエートによる)で使用可能なイミディエート範囲
12-22 VSHLL(イミディエートによる)で使用可能なイミディエート範囲
12-23 VSHR(イミディエートによる)で使用可能なイミディエート範囲
12-24 VSHRN(イミディエートによる)で使用可能なイミディエート範囲
12-25 VSRA(イミディエートによる)で使用可能なイミディエート範囲
12-26 VSTn のパラメータの有効な組み合わせ(複数の n 要素構造体)
12-27 VSTn のパラメータの有効な組み合わせ(1 レーンへの 1 つの n 要素構造体)
12-28 ダブルワード VUZP.8 演算
12-29 クワッドワード VUZP.32 演算
12-30 ダブルワード VZIP.8 演算
12-31 クワッドワード VZIP.32 演算
13-1 ワイヤレス MMX テクノロジの命令
13-2 ワイヤレス MMX テクノロジの疑似命令
14-1 ディレクティブのリスト
14-2 OPT ディレクティブの設定
A-1 発行 I と発行 J の相違点
A-2 発行 H と発行 I の相違点
A-3 発行 G と発行 H の相違点
A-4 発行 F と発行 G の相違点
A-5 発行 E と発行 F の相違点
A-6 発行 D と発行 E の相違点
A-7 発行 C と発行 D の相違点
A-8 発行 B と発行 C の相違点
A-9 発行 A と発行 B の相違点

リリース情報

ドキュメント履歴
発行 日付 機密保持ステータス 変更点
A 5 月 2010 非機密扱い ARM コンパイラ v4.1 リリース
B 30 9 月 2010 非機密扱い ARM コンパイラ v4.1 のアップデート 1
C 28 1 月 2011 非機密扱い ARM コンパイラ v4.1 パッチ 3 のアップデート 2
D 30 4 月 2011 非機密扱い ARM コンパイラ v5.0 リリース
E 29 7 月 2011 非機密扱い ARM コンパイラ v5.0 のアップデート 1
F 30 9 月 2011 非機密扱い ARM コンパイラ v5.01 リリース
G 29 2 月 2012 非機密扱い ARM コンパイラ v5.01 リリースマニュアルの更新 1
H 27 7 月 2012 非機密扱い ARM コンパイラ v5.02 リリース
I 31 1 月 2013 非機密扱い ARM コンパイラ v5.03 リリース
J 16 12 月 2013 非機密扱い ARM コンパイラ v5.04 リリース

著作権

® または ™ のマークが付いた言葉およびロゴは、この著作権情報で別段に規定されている場合を除き、ARM® の EU またはその他の国における登録商標および商標です。本書に記載されている他の製品名は、各社の所有する商標です。

本書に記載されている情報の全部または一部、ならびに本書で紹介する製品は、著作権所有者の文書による事前の許可を得ない限り、転用・複製することを禁じます。

本書に記載されている製品は、今後も継続的に開発・改良の対象となります。本書に含まれる製品およびその利用方法についての情報は、ARM が利用者の利益のために提供するものです。したがって当社では、製品の市販性または利用の適切性を含め、暗示的・明示的に関係なく一切の責任を負いません。

本書は、本製品の利用者をサポートすることだけを目的としています。本書に記載されている情報の使用、情報の誤りまたは省略、あるいは本製品の誤使用によって発生したいかなる損失・損傷についても、ARM は一切責任を負いません。

ARM という用語が使用されている場合、"ARM または必要に応じてその子会社" を指します。

機密保持ステータス

本書は非機密扱いであり、本書を使用、複製、および開示する権利は、ARM および ARM が本書を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限により異なります。

無制限アクセスは、ARM 社内による分類です。

製品ステータス

本書の情報は最終版であり、開発済み製品に対応しています。

Web アドレス

非機密扱いPDF file icon PDF 版ARM DUI0473JJ
Copyright © 2010-2013 ARM.All rights reserved.