---
# System prepended metadata

title: 輕鬆理解各種定址法

---

想像你在學校的點心間拿零食，每種「定址法」就像是你拿零食的不同方式：

---

## 故事背景  
小明放學後肚子餓，跑到學校的點心間（就像電腦的記憶體）去拿餅乾和牛奶。點心間裡有很多格子（記憶體位址），每格放一樣東西。

---

### 1. 立即定址（Immediate Addressing）  
**比喻**：老師直接把一包餅乾遞給你。  
- **故事**：小明跟老師說：「我要一包餅乾！」老師打開抽屜，直接給你一包餅乾。  
- **特點**：餅乾已經在老師手上，不用去點心間找。  
- **對應**：指令裡就寫著要的數字或資料，CPU 直接用就好。

---

### 2. 直接定址（Direct Addressing）  
**比喻**：你知道餅乾放在格子 10，你直接打開格子拿。  
- **故事**：小明看指示牌：「餅乾在第 10 格」，於是走到第 10 格，一把抓起裡面的餅乾。  
- **特點**：位置固定、簡單明瞭，但格子空間要留給點心。  
- **對應**：指令裡有 memory[10]，CPU 直接去那個位址讀或寫。

---

### 3. 間接定址（Indirect Addressing）  
**比喻**：老師給你一張紙條，上面寫著「格子裡有零食的位置」，你再去那格拿。  
- **故事**：老師：「去看看這張紙條。」紙條上寫「去第 5 格拿東西」，你先讀紙條，才知道要到第 5 格。  
- **特點**：第一步先找紙條（指標），第二步才去拿真正的點心。  
- **對應**：指令裡有一個指標位址，CPU 先去指標那格讀出「真正的位址」，再去讀寫。

---

### 4. 索引定址（Indexed Addressing）  
**比喻**：你有一本「口袋書」，上面寫著「格子基準是 20」，而你要去「基準＋偏移量」的格子拿。  
- **故事**：小明：「餅乾都在第 20 格起，隔 3 格就有一包巧克力！」於是他把 20（基準）＋3（偏移）＝第 23 格，拿到巧克力。  
- **特點**：可以輕鬆連續拿多個相似東西（像陣列）。  
- **對應**：address = base + offset，常用於陣列、清單。

---

### 5. 相對定址（Relative Addressing）  
**比喻**：你在走廊上，老師說「向前走 5 步，有飲料」。  
- **故事**：小明站在教室門口，老師喊：「從這裡往前 4 格，有蘋果汁！」他就從門口算起，走到第 4 格拿。  
- **特點**：不管你現在在哪裡，都能「往前/往後」移動固定步數。  
- **對應**：跳轉指令常用，像是「如果零食吃完了，就往後跳 10 步」。

---

## 小結  
- **立即定址**：老師直接給你（資料就在指令裡）。  
- **直接定址**：你去固定格子拿（指令帶地址）。  
- **間接定址**：先拿紙條，再去紙條指示的格子（雙重讀取）。  
- **索引定址**：基準＋偏移，適合連續取物（陣列）。  
- **相對定址**：從當前位置加減，常用於跳轉（控制流程）。

透過這些「拿零食」的小故事，就能理解電腦如何用不同方法從記憶體裡取資料囉～

下面再用三個生活化情境，來對比說明這五種定址法：  

---

## 1. 超商買飲料（便利商店）  
- **立即定址**：店員直接遞給你「一瓶可樂」，你不用走到架上去拿。  
- **直接定址**：你看標籤寫「可樂放在架子第 3 排、第 2 列」，走到那格拿就對了。  
- **間接定址**：櫃台上的螢幕先顯示「請到第 5 架第 1 列拿」，你先看螢幕（指標），再去拿真正的飲料。  
- **索引定址**：你知道「汽水類都從第 10 架開始」，而可樂在第 10 架後第 4 位，就到「基準 10 + 偏移 4」的位置拿。  
- **相對定址**：店員指著你面前那瓶綠茶說：「再往右走兩格就是可樂」，直接從「當前位置」移動。

---

## 2. 圖書館借書  
- **立即定址**：圖書管理員直接拿給你書本，不用你自己去找。  
- **直接定址**：館藏目錄上寫「《哈利波特》在書架 A 區第 12 格」，你拿起第 12 格的那本。  
- **間接定址**：你先查索書卡（指標），索書卡上又寫了書架位置，然後再去那裡取書。  
- **索引定址**：你想看歷史類小說，書架標示從第 100 本開始，想要第 5 本，就到「第 100 + 4」的那格。  
- **相對定址**：圖書館在一排排書架走廊，告訴你「從你站的位置往前走三排再往左二格就是」，只要數格走就到。

---

## 3. 公司檔案櫃取資料  
- **立即定址**：秘書直接把你要的那份報表遞給你。  
- **直接定址**：檔案櫃貼標籤「年度報表─第三抽屜」，你拉開第三抽屜拿裡面的報表。  
- **間接定址**：你先看「工作清單」（存在綁在檔案櫃上的紙條），清單上寫「去第 2 抽屜第 4 格取」，再去那裡抽取。  
- **索引定址**：每個抽屜內文件夾從 1 號開始編號，要第 7 份，就到「抽屜基準 + 6 號」的文件夾裡取。  
- **相對定址**：你站在櫃子最左邊，主管說「向右數三個抽屜就是合同」，直接依相對位置去拉。

---

透過這些不同場景，你可以更靈活地把「定址」想像成：  
- 老師／店員／秘書第一時間給你（**立即定址**）  
- 告訴你確切格子／抽屜號（**直接定址**）  
- 先看指示卡片再去正確位置（**間接定址**）  
- 用起點＋偏移算位置（**索引定址**）  
- 從你所在位置往前或往後數（**相對定址**）  

希望這些例子能幫助你輕鬆理解各種定址法！