アドレス境界調整

ARMv5 以前または ARMv6-M に基づくプロセッサでは、4 バイト転送のアドレスは 4 バイト境界で、2 バイト転送のアドレスは 2 バイト境界で整列されている必要があります。ARMv6-M を除く ARMv6 以降では、アーキテクチャで LDRLDRHSTRSTRHLDRSHLDRTSTRTLDRSHTLDRHTSTRHT、および TBH の各命令がサポートされている場合、それらの命令で非境界整列アクセスを行うことができます。

一部の ARM プロセッサでは、境界調整チェックをイネーブルにできます。境界調整チェックがイネーブルされている場合、ワード境界で整列されいない 32 ビット転送が行われると、境界調整例外が発生します。

すべてのアクセスが境界調整されている場合、コマンドラインオプション --no_unaligned_access を使って境界調整されていないライブラリ関数へのリンクを避けることができます。

境界調整チェックが使用できないプロセッサ、またはディセーブルされているプロセッサの場合、以下のようになります。

ARMv7 では、一部の命令は、境界調整チェックに関係なくエラーになります。

Show/hide関連項目

参照

『アセンブラリファレンス』

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473FJ
Non-ConfidentialID111311