Q21.
微電腦系統被設計成中斷式I/O,其中斷服務程式之最後一行需使用下列哪一個指令,使中斷服務結束後能返回主程式中?
電腦硬體裝修 · 乙級 · 裝修及控制應用 · Q21
難易度分析
2 / 5
此題要求考生區分組合語言中的「偽指令」與「可執行指令」,並精確掌握中斷處理機制中,回傳流程對於旗標暫存器與程序狀態恢復的特殊要求。若僅理解一般的程式跳轉,而未掌握中斷返回指令在堆疊操作上的完整性,容易在選項中產生混淆。
正確答案:②IRET
② IRET:IRET(Interrupt Return)是專用於中斷服務程式結尾的返回指令,執行時會自動從堆疊中依序彈出旗標暫存器、CS 及 IP,完整恢復被中斷前的執行狀態,確保主程式能正確繼續執行。
錯誤選項解析
- ① EQU:EQU 是組合語言中的等值定義偽指令,用於為常數或位址賦予有意義的名稱,並非可執行指令,無法用於程式流程控制或返回操作。
- ③ ORG:ORG 是起始位址設定偽指令,用於告知組合器程式碼或資料應放置的記憶體起始位置,屬於編譯階段的指示,與執行階段的流程返回無關。
- ④ JUMP:JUMP 是無條件跳轉指令,僅能改變程式計數器的指向,但不會自動恢復旗標暫存器與返回位址等中斷現場資訊,因此無法正確完成中斷返回的完整程序。
Learning Tip
"本題核心考點為中斷返回指令 IRET 與一般返回指令 RET 的差異。IRET 會額外恢復旗標暫存器狀態,而 RET 僅返回子程式。常見陷阱是將 EQU、ORG 等偽指令與可執行指令混淆,偽指令僅在組合編譯階段作用,不會產生機器碼。實務上若中斷返回使用錯誤指令,將導致堆疊失衡或系統當機。"
學員答題分佈
①EQU0%
②IRET0%
③ORG0%
④JUMP0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!