公務人員特種考試計算機大意110 年第 7 題單選題
計算機 CPU 中的程式計數器(program counter),主要任務為何?
A將指令的數據運算元,從記憶體中被擷取,並置入 CPU 的暫存器中
B控制單元透過它來判斷指令位置,從記憶體中擷取程式中下一道指令正確答案
C解碼指令成 ALU 單元能夠了解的語言形式
D在程式指令中,進行已經執行的指令計數工作
B正確答案
程式計數器 (PC) 存放下一道指令的記憶體位址,控制單元據此擷取指令。
為什麼答案是 B
PC 儲存下一道要執行指令的記憶體位址,控制單元依此位址到記憶體擷取指令 (Fetch),擷取後 PC 自動加 1 指向再下一道指令。
載入中…
完整詳解
Pro · 無限重點 程式計數器 (PC) 存放下一道指令的記憶體位址,控制單元據此擷取指令。
PC = Program Counter,不是『計算程式數量』,是『指向下一道指令位址』。
逐選項分析
A✕
這是 MDR (Memory Data Register) 或一般暫存器的功能,負責存放從記憶體擷取的資料運算元,與 PC 無關。
B✓ 正確
PC 儲存下一道要執行指令的記憶體位址,控制單元依此位址到記憶體擷取指令 (Fetch),擷取後 PC 自動加 1 指向再下一道指令。
C✕
這是指令解碼器 (Instruction Decoder) 的工作,將 IR 中的指令翻譯成 ALU 可執行的控制訊號。
D✕ 陷阱
陷阱!被『計數器』三字誤導。PC 不是計算『已執行幾道指令』,而是指向『下一道指令的位址』,名稱雖有 counter 但功能是指標。
CPU 核心暫存器功能對照
| 暫存器 | 全名 | 主要功能 | 本題對應 |
|---|
| PC | Program Counter | 存放下一道指令位址 | ✅ B |
| IR | Instruction Register | 存放當前執行的指令 | — |
| MAR | Memory Address Register | 存放欲存取的記憶體位址 | — |
| MDR | Memory Data Register | 存放與記憶體交換的資料 | A 混淆對象 |
| Decoder | 指令解碼器 | 將指令翻譯為控制訊號 | C 混淆對象 |
D 選項利用『計數器 counter』字面誤導,讓考生以為 PC 是統計已執行指令數量。實際上 PC 是『位址指標』,雖每次 +1 但目的是指向下一道指令位址,而非累計執行次數。