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

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

💡 「データどこにある?」の伝え方カタログ
📌 このページのポイント
主なアドレッシングモードの比較 方式 命令の形 データの取得 即値 Immediate MOV R1 42 値 = 42 命令に値が直接 直接 Direct LOAD R1 0x100 メモリ[0x100] = 99 アドレスで指定 間接 Indirect LOAD R1 [0x100] 0x200 = 77 二段階で参照 レジスタ Register ADD R1 R2 R2の中身 = 55 最速アクセス
アドレッシングモードのイメージ
ひよこ ひよこ

アドレッシングモードって何なの?

ペンギン先生 ペンギン先生

CPUが命令を実行するとき「データはどこにあるの?」を伝える方法のバリエーションだよ。宅配便でいうと「この住所に届けて」「この人に直接渡して」「この棚の中にある箱に入れて」みたいに、届け先の指定方法がいろいろあるイメージだね。

ひよこ ひよこ

どんな種類があるの?

ペンギン先生 ペンギン先生

代表的なものだと、即値アドレッシングは命令の中に値そのものが入っているパターン。直接アドレッシングはメモリのアドレスを直接指定する方法。レジスタアドレッシングはレジスタを指定する方法だよ。

ひよこ ひよこ

間接アドレッシングっていうのも聞いたことがあるけど、どういうもの?

ペンギン先生 ペンギン先生

間接アドレッシングは「このアドレスに入っている値を、さらにアドレスとして使う」という二段階の方式だよ。手紙に「本当の届け先はこの住所に書いてあります」と転送先が書いてあるようなイメージだね。ポインタの仕組みそのものだよ。

ひよこ ひよこ

たくさんあると混乱しそうだけど、なんでこんなに種類があるの?

ペンギン先生 ペンギン先生

場面によって最適な指定方法が違うからだよ。定数を使うなら即値が速いし、配列のアクセスにはインデックスアドレッシングが便利。目的に合ったモードを使うことでプログラムが効率よく動くんだ。

ひよこ ひよこ

RISCとCISCで違いがあるって聞いたけど本当?

ペンギン先生 ペンギン先生

そうだよ。RISC(ARMなど)はアドレッシングモードを少数に絞ってハードウェアをシンプルにしている。一方でCISC(x86など)は多彩なモードを持っていて、1命令で複雑なアクセスができるんだ。x86のMOV命令なんかはベースレジスタ+インデックスレジスタ×スケール+ディスプレースメントっていう複合的なモードまでサポートしているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アドレッシングモード」って出てきたら「CPUがデータの場所を指定するやり方のバリエーション」と思えればだいたいOK!
📖 おまけ:英語の意味
「Addressing Mode」 = アドレス指定方式
💬 address(住所)をどうやって指定するかの「mode(方式)」という意味だよ
← 用語集にもどる