複選題
5.
下列何者為記憶體定址的模式?
(A)隨機定址
(B)暫存器定址
(C)相對定址
(D)直接定址
(E)間接定址
統計: A(54), B(160), C(165), D(166), E(153) #3145745
詳解 (共 2 筆)
【解題思路】
這題在考 指令的「定址模式(addressing mode)」,是 CPU 怎麼找到資料的方式。
定址模式的種類很多,但常見必背的是:
-
暫存器定址(Register addressing)
-
直接定址(Direct addressing)
-
間接定址(Indirect addressing)
-
相對定址(Relative addressing)
-
立即定址(Immediate addressing)
-
基址/變址定址(Base/Indexed)
因此選項中:
(B)、(C)、(D)、(E) 都是正統的定址方式。
只有 (A) 隨機定址 是錯的,它不是指令定址模式,是「RAM 隨機存取」的概念,不能選。
【為什麼其他選項不正確/正確(逐一破題)】
(A) 隨機定址
→ 錯!
「隨機存取」是 RAM(Random Access Memory)的特性,不是 CPU 定址模式。
(B) 暫存器定址(Register addressing)
→ 正確!
資料存在 CPU 暫存器內,最快的定址方式。
(C) 相對定址(Relative addressing)
→ 正確!
位址 = 程式計數器 PC + 位移量,用在跳躍指令(branch)。
(D) 直接定址(Direct addressing)
→ 正確!
指令內直接給出記憶體位址,CPU 照著取資料。
(E) 間接定址(Indirect addressing)
→ 正確!
指令給的不是資料位址,而是「指向資料位址的位址」(像指標)。
【延伸知識】
常見指令定址模式總整理:
-
立即定址 Immediate:資料直接寫在指令裡
-
暫存器定址 Register:資料在暫存器
-
直接定址 Direct:指令內 directly 給記憶體位址
-
間接定址 Indirect:指令給的位址裡存著真正的資料位址
-
相對定址 Relative:PC + offset
-
基址/變址定址 Base / Indexed:用 base register + index register
這些都是 CPU 執行指令時常用的技術。
【記憶技巧】
一句口訣:
暫、直、間、相 → 四大基本定址模式。
隨機不是定址,它是 RAM 的特性。
或更短:
選 B C D E,不選隨機。
【常見錯誤】
-
看到「隨機」以為是 RAM → 誤選
-
以為相對定址不常用 → 其實 branch 全靠它
-
把間接定址(pointer)與直接定址混淆