Q16.
微電腦系統中,當呼叫副程式時,程式計數器之內容是存於何處?
電力電子 · 甲級 · 程式設計與微電腦應用 · Q16
難易度分析
2 / 5
此題考查微處理器基本工作流程,檢驗對程式計數器在子程序調用時的暫存方式的理解。題目提供四個選項,需判斷哪一區域適合暫存返回位址。因概念已在基礎課程中說明,且不涉及進一步推理或計算,屬於較易的題型。
正確答案:③堆疊(Stack)記憶體
③ 堆疊(Stack)記憶體:堆疊(Stack)記憶體遵循 LIFO(後進先出) 原則,呼叫副程式時會自動將程式計數器(PC)的當前值(即返回位址)壓入堆疊,執行完畢後再透過 POP 指令取回,確保程式能正確返回原執行位置。
錯誤選項解析
- ① 程式記憶體:程式記憶體用於存放執行指令碼,而非暫存返回位址;呼叫副程式時需將返回位址動態保存,程式記憶體為唯讀或固定寫入區域,不適合用於暫存返回位址。
- ② 狀態暫存器:狀態暫存器(如 Flags Register)用於記錄運算結果的狀態旗標(如進位、零旗標、溢位等),與程式計數器的返回位址保存無關。
- ④ 控制單元:控制單元負責指令的解碼與執行流程控制,屬於 CPU 的功能區塊,本身不具備儲存程式計數器內容的記憶體空間。
Learning Tip
"本題核心考點為副程式呼叫機制與堆疊的應用。在微電腦架構中,CALL 指令會自動完成「PC 值壓入堆疊→跳至副程式位址」的動作,而 RET 指令則從堆疊彈出返回位址。常考陷阱包括將堆疊與程式記憶體混淆,或誤認中斷服務常式(ISR)的返回位址保存方式與副程式不同(實際上中斷也使用堆疊,但會額外保存狀態暫存器)。實務上需注意堆疊溢位(Stack Overflow)問題,尤其在巢狀副程式呼叫或遞迴應用時。"
學員答題分佈
①程式記憶體0%
②狀態暫存器0%
③堆疊(Stack)記憶體0%
④控制單元0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!