---
title: "アドレス指定方式とは？即値・直接・間接・指標付き・相対を整理【FE試験】"
description: "基本情報技術者試験で問われやすいアドレス指定方式について、命令のアドレス部から有効アドレスを求める考え方を整理します。即値、直接、間接、指標付き、相対、レジスタ間接の違いと、選択肢を切る判断軸を確認します。"
last_modified_at: "2026-07-13"
canonical_url: "https://stemtazoo.github.io/fe/addressing-modes/"
section: "fe"
---

## まず結論

アドレス指定方式とは、命令に書かれた情報から、**実際に使う値や主記憶上の番地をどう求めるか**を決める方式です。

FE試験では、まず「その値をそのまま使うのか」「足すのか」「一度たどるのか」を確認します。

```text
値そのものを使う → 即値
アドレス部をそのまま使う → 直接
アドレス部が示す場所を一度たどる → 間接
アドレス部 + 指標レジスタ → 指標付き
アドレス部 + プログラムカウンタ → 相対
レジスタの値を番地として使う → レジスタ間接
```

## 直感的な説明

資料を棚から取り出す場面で考えると分かりやすいです。

- 「この数字をそのまま使う」
- 「100番の棚を見る」
- 「100番の棚に書かれた番号の棚を見る」
- 「100番の棚から、レジスタの値だけずらして見る」

この違いが、アドレス指定方式の違いです。

## 定義・仕組み

### 即値アドレス指定

命令の中に書かれた値そのものを使います。

```text
使うデータ = 命令中の値
```

### 直接アドレス指定

命令のアドレス部を、そのまま主記憶番地として使います。

```text
有効アドレス = アドレス部
```

### 間接アドレス指定

アドレス部が示す主記憶を一度見て、そこに格納された値を有効アドレスとして使います。

```text
有効アドレス = 主記憶[アドレス部]
```

### 指標付きアドレス指定

アドレス部に指標レジスタの値を足します。

```text
有効アドレス = アドレス部 + 指標レジスタ
```

例えば、アドレス部が100、指標レジスタが50なら、有効アドレスは150です。

### 相対アドレス指定

アドレス部にプログラムカウンタの値を足します。

```text
有効アドレス = アドレス部 + プログラムカウンタ
```

### レジスタ間接アドレス指定

レジスタに入っている値を、そのまま主記憶番地として使います。

```text
有効アドレス = レジスタの値
```

## どんな場面で使う？

指標付きアドレス指定は、配列や表のような連続データへのアクセスに向いています。

相対アドレス指定は、現在位置からの距離で命令やデータを指定するときに使われます。

間接指定は、ポインタのように「データの場所を示す情報」をたどる場面で使われます。

## よくある誤解・混同

### 直接と間接

```text
直接：その番地を見る
間接：その番地に書かれた番地を見る
```

### 指標付きとレジスタ間接

```text
指標付き：アドレス部 + レジスタの値
レジスタ間接：レジスタの値そのもの
```

### 指標付きと相対

どちらも足し算ですが、足すレジスタが違います。

```text
指標付き：指標レジスタ
相対：プログラムカウンタ
```

## まとめ（試験直前用）

- 即値は値そのもの
- 直接はアドレス部をそのまま使う
- 間接は一度主記憶をたどる
- 指標付きはアドレス部に指標レジスタを足す
- 相対はアドレス部にプログラムカウンタを足す
- レジスタ間接はレジスタの値を番地として使う
