【あどれっしんぐもーど】

アドレッシングモード とは?

最終更新:
💡 「データどこにある?」の伝え方カタログ

CPU命令で使う値(オペランド)を、命令内の定数、レジスタ、メモリアドレスなどで指定する方式。利用できる方式や表記は命令セットによって異なる。

📌 このページのポイント
オペランドの指定方法を比較 左で指定し、右の値を使う(概念例) 即値 命令内の定数 42 値 42 直接 指定したアドレス 100 メモリ[100] = 99 レジスタ間接 R1の中身は住所 R1 = 200 メモリ[200] = 77 レジスタ R2の中身は値 R2 R2 = 55
数値とR1・R2は考え方を示す例で、特定CPUの命令表記ではありません。方式ごとに必ず速度が決まるわけではありません。
ひよこ ひよこ
アドレッシングモードって何なの?
ペンギン先生 ペンギン先生
CPUの命令が使う値を指定する方法だよ。「値そのものを書く」「レジスタの中身を使う」「メモリのここを読む」といった違いがある。オペランドは住所という意味ではなく、命令が処理する値などを指すよ。
ひよこ ひよこ
どんな種類があるの?
ペンギン先生 ペンギン先生
即値は命令の中に定数を含める方式。直接方式はメモリのアドレスを指定する方式。レジスタ方式は指定したレジスタの中身を使う方式だよ。
ひよこ ひよこ
間接アドレッシングっていうのも聞いたことがあるけど?
ペンギン先生 ペンギン先生
別の場所に保持したアドレスを使ってメモリへアクセスする方式だよ。たとえばレジスタ間接なら、レジスタに入っている値をアドレスとして使う。必ずメモリを二回読むという意味ではないんだ。
ひよこ ひよこ
どうして複数の方式があるの?
ペンギン先生 ペンギン先生
定数を使うか、計算結果を使うか、メモリ上のデータを順に読むかで便利な指定方法が違うからだよ。たとえばMicrochipの16ビットMCUでは、間接アクセスの前後にアドレス用レジスタを増減する方式もあるよ。
ひよこ ひよこ
方式の名前を覚えればどのCPUでも使えるの?
ペンギン先生 ペンギン先生
利用できる方式や値の大きさ、アクセスできる範囲は命令セットや命令ごとに違うよ。図は考え方の比較で、実際の命令を書くときは対象CPUのマニュアルで確認する。速さも方式の名前だけでは決められないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アドレッシングモード」って出てきたら「CPU命令で使う値の指定方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Addressing Mode」 = アドレス指定方式
💬 address(住所)をどうやって指定するかの「mode(方式)」という意味だよ

参考資料

← 用語集にもどる