7.21 C および C++ コードのインラインアセンブラのレジスタリストのオペランド

レジスタリストには最大 16 個のオペランドを列挙できます。列挙できるのは、仮想レジスタまたは式のレジスタオペランドです。

レジスタリスト内で仮想レジスタと式オペランドを指定する順番は重要です。レジスタリストのオペランドの読み出しと書き込みは、左から右に行われます。最初のオペランドは最下位アドレスを使用し、後続のオペランドは前のアドレスを 4 ずつインクリメントして得られるアドレスを使用します。LDM 命令または STM 命令の通常の演算では、最も番号が小さい物理レジスタが最下位アドレスに常に保存されますが、それとは逆の新しい動作です。この動作の違いは、レジスタの仮想化によるものです。
式オペランドや仮想レジスタは、レジスタリストに複数回列挙できます。それらは指定されているごとに使用されます。
ベースレジスタの更新は、指定した場合に行われます。更新によって、ベースレジスタにロードされている値はメモリロードのときに上書きされます。
レジスタリストの後に ^ を指定してユーザモードのレジスタを特権モードで動作させることは、インラインアセンブラではサポートされていません。
関連する概念
7.20 C および C++ コードのインラインアセンブラの式オペランド
7.22 C および C++ コードのインラインアセンブラのイミディエートオペランド
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.