カテゴリ: 基本情報技術者試験 更新日: 2025/12/31

相対アドレス指定方式をわかりやすく解説!CPUの動きを初心者向けに丁寧に理解しよう

相対アドレス指定方式
相対アドレス指定方式

先生と生徒の会話形式で理解しよう

生徒

「CPU(シーピーユー)のアドレス指定方式を調べていたら、相対アドレス指定方式という言葉が出てきたんですが、どういう方式なんでしょうか?」

先生

「相対アドレス指定方式は、今CPUが実行しようとしている命令の番地に、命令の中に書かれた変位(へんい)を加えて、データや次に実行する場所を決める方式なんですよ。」

生徒

「今いる場所を基準にするってことなんですね!どういう場面で使われるんでしょうか?」

先生

「プログラムの分岐やジャンプと相性がよくて、移動できるプログラムを作るときに多く使われるんですよ。仕組みを順番に見ていきましょう。」

1. 相対アドレス指定方式とは?

1. 相対アドレス指定方式とは?
1. 相対アドレス指定方式とは?

相対アドレス指定方式(そうたいアドレスしていほうしき)は、CPU(シーピーユー)がアクセスすべき場所を決める際に、「現在の命令が置かれている番地」を基準として、その番地に命令の中の変位(へんい)を加えることで目的の番地を求める方式です。

この方式では、絶対的な番地ではなく「現在地からどれだけ移動するか」を基準に位置を決めるため、プログラムを主記憶装置(シュキオクソウチ)のどこに置いても正しく動くという柔軟性があります。

2. 相対アドレス指定方式の動作をイメージしてみよう

2. 相対アドレス指定方式の動作をイメージしてみよう
2. 相対アドレス指定方式の動作をイメージしてみよう

日常生活に例えると理解しやすいです。たとえば「今いる場所から五歩前へ進む」という指示があったとします。この指示は場所の名前や地図の座標を使わず、現在地を基準にしています。

相対アドレス指定方式も同じで、CPUは「いま読んでいる命令の番地」に変位を足すことで次にアクセスする場所を決めます。これは固定された番地に依存しないため、柔軟な構造のプログラムを作るときにとても重要な仕組みになります。

3. 相対アドレス指定方式が使われる理由

3. 相対アドレス指定方式が使われる理由
3. 相対アドレス指定方式が使われる理由

相対アドレス指定方式は、プログラムの移動に強いという利点があります。たとえば、同じプログラムを主記憶装置の別の位置に読み込む場合、絶対番地を使っていると誤作動してしまうことがあります。

しかし、相対アドレス指定方式なら「現在地からどれだけ移動すればよいか」という情報だけを使うため、プログラムの配置場所が変わっても正しく動作します。これは特に分岐処理や繰り返し処理でよく使われる重要な特性です。

4. 他のアドレス指定方式との違いを知ろう

4. 他のアドレス指定方式との違いを知ろう
4. 他のアドレス指定方式との違いを知ろう

即値アドレス指定方式(そくちアドレスしていほうしき)は値そのものを、直接アドレス指定方式(ちょくせつアドレスしていほうしき)は番地そのものを命令に書きます。 また、間接アドレス指定方式(かんせつアドレスしていほうしき)やインデックス方式(インデックスアドレスしていほうしき)では別の番地やレジスタを使います。

これに対して相対アドレス指定方式は、命令の位置そのものを基準として番地計算を行うのが特徴です。他の方式とは考え方が違い、「プログラムの動きに合わせて位置が変わる」という点で非常に柔軟です。

5. 相対アドレス指定方式のメリットと注意点

5. 相対アドレス指定方式のメリットと注意点
5. 相対アドレス指定方式のメリットと注意点

相対アドレス指定方式のメリットは、プログラムをどの位置に読み込んでも同じように動作する点です。これは「位置に依存しないプログラム」を実現するうえで欠かせない特徴です。

ただし注意点もあります。変位の範囲が狭い場合、遠い番地へジャンプできないことがあります。そのため、大きなプログラムでは他のアドレス指定方式と組み合わせて使われることが多いです。

6. 相対アドレス指定方式の具体的な利用例

6. 相対アドレス指定方式の具体的な利用例
6. 相対アドレス指定方式の具体的な利用例

実際の利用例として、分岐命令やジャンプ命令が挙げられます。たとえば「条件を満たしたら三つ先の命令へ移動する」といった動作は相対アドレス指定方式の典型です。

プログラムの位置が変わっても、現在地から三つ先という関係は変わらないため、どの位置に読み込まれても正しく処理が行われます。 このように、相対アドレス指定方式は柔軟なプログラム制御を実現するための重要な技術として幅広く使われています。

カテゴリの一覧へ
新着記事
New1
基本情報技術者試験
クライアントサーバシステムとは?初心者でもわかるネットワークの基本構成をやさしく解説
New2
基本情報技術者試験
分散処理とは?初心者でもわかるコンピュータの処理方式をやさしく解説
New3
情報セキュリティマネジメント試験
ブラックリストとは何かをやさしく解説!初心者でもわかる仕組みと活用例
New4
基本情報技術者試験
集中処理とは?初心者でもわかるコンピュータ処理方式の基本用語をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
FTP
220
FTPとは?初心者でもわかるファイル転送プロトコルの基本と仕組みを徹底解説!
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
212
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.4
Java&Spring記事人気No4
基本情報技術者試験
URL
187
URLとは?初心者でもわかるWebリンクの仕組みと役割をやさしく解説!
No.5
Java&Spring記事人気No5
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.6
Java&Spring記事人気No6
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
基本情報技術者試験
スキーマ(Schema)とは?データベースの基本構造を初心者向けに解説
No.8
Java&Spring記事人気No8
基本情報技術者試験
ハブとは?初心者でもわかるネットワーク接続装置の基本と仕組み