Q16.
下列8088 指令執行後,何者的結果與其它三個指令不同?
儀表電子 · 甲級 · 嵌入式系統概論與應用及程式設計 · Q16
難易度分析
2 / 5
此題只要求記憶各指令對AX寄存器及旗標的直接影響,無需多重邏輯推演,屬基礎層面,難度評為2。
正確答案:④OR AX,0
④ OR AX,0:OR AX, 0 將 AX 與 0 進行邏輯或運算,執行後 AX 的值保持原值不變,而非歸零。此結果與前三者將 AX 設為 0 的效果不同,故為本題正確答案。
錯誤選項解析
- ① MOV AX,0:MOV AX, 0 會將立即數 0 直接載入 AX 暫存器,執行後 AX 的值為 0。此為最直觀的清零方式,但不影響旗標暫存器。
- ② XOR AX,AX:XOR AX, AX 利用互斥或運算的特性(相同值 XOR 結果為 0),執行後 AX 的值為 0。此為組合語言中常見的高效清零慣用法,且會清除進位旗標 (CF)。
- ③ SUB AX,AX:SUB AX, AX 將 AX 減去自身,執行後 AX 的值為 0。此指令同樣會將結果歸零,並會更新零旗標 (ZF) 與清除進位旗標。
Learning Tip
"本題核心考點為 8088 暫存器操作指令的執行結果差異。選項 1、2、3 均會使 AX 歸零,但底層機制不同:MOV 為資料搬移不影響旗標,XOR 與 SUB 會更新狀態旗標。選項 4 的 OR AX, 0 因 0 不具遮罩效果,AX 維持原值。實務上 XOR reg, reg 是最常用的清零方式,因其機器碼較 MOV 更短且執行效率更高。"
學員答題分佈
①MOV AX,00%
②XOR AX,AX0%
③SUB AX,AX0%
④OR AX,00%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!