【ハードウェア】オペランド部の値をそのままアドレスとして参照!「直接アドレス方式」|情報処理問題1000本ノック
CPUがプログラムを実行する際、命令のオペランド部から「目的のデータの存在するメモリ場所(有効アドレス)」を算出するアドレス指定(修飾)方式。最もシンプルで基本的な「直接アドレス方式」を攻略しましょう。
1. 【 問題 】:ハードウェア(CPUの構造・アドレス指定方式)
【 問題 】 機械語命令のアドレス指定(修飾)方式に関する記述です。命令のオペランド(アドレス)部に設定されている値が、そのまま対象データが格納されている主記憶のアドレス(有効アドレス)となっている方式は、次のうちどれか。
(ア)直接アドレス方式(Direct Addressing Mode)
(イ)間接アドレス方式(Indirect Addressing Mode)
(ウ)自己相対アドレス方式(Relative Addressing Mode)
(エ)インデックス(指標)アドレス方式(Indexed Addressing Mode)
2. 正解:
正解:(ア)直接アドレス方式(Direct Addressing Mode)
3. 解説:「指定された数字の部屋へ行けば、そのままデータが入っている!」
直接アドレス方式(絶対アドレス方式)は、オペランド部に書かれた値をそのまま「対象データが置かれているメモリアドレス(有効アドレス)」として読み取る方式です。
余計な計算(レジスタ値の足し算など)や再度のメモリ読み出しを必要としないため、最も単純な構造をしています。
| 方式名 | 有効アドレスの決定方法 | 特徴・仕組み |
|---|---|---|
| (ア)直接アドレス方式 | 「オペランド部の値」そのもの | オペランドの値が指す番地に、目的のデータが存在する。 |
| (イ)間接アドレス方式 | 「オペランド部が指す番地」に書かれている値 | オペランドの番地を見に行くと「真のアドレス」が書いてある(2段階アクセス)。 |
| (ウ)自己相対アドレス方式 | オペランド部の値 + プログラムカウンタ(PC)の値 | プログラムの配置場所を選ばない「再配置可能(リロケータブル)」を実現。 |
| (エ)インデックス指定方式 | オペランド部の値 + インデックス(指標)レジスタの値 | 配列データなどの連続したメモリを順番に処理するのに適している。 |
1. 理解のコツ: 「ロッカーのキー番号」で例えてみましょう。
・直接アドレス方式:命令に「ロッカー番地:100」と書いてあり、100番のロッカーを開けると「目的の荷物(データ)」が入っている状態。
・間接アドレス方式:100番のロッカーを開けると「実は200番のロッカーに入れ直しましたというメモ(別のアドレス)」が入っている状態。
2. 試験対策の視点: 基本情報技術者や応用情報技術者試験の計算・概念問題で頻出テーマです。
問題文に「オペランド部の値をそのまま有効アドレスとする」「追加の計算やメモリ参照を行わない」といった文言があれば、迷わず直接アドレス方式を選択しましょう!
4. まとめ
「オペランド部の値をそのまま対象データの入ったメモリアドレスとして使用する方式」。これが直接アドレス方式です。間接アドレス方式や各種レジスタを使った相関指定との違いとあわせて確実にマスターしておきましょう!