LONGEPASS
Q2.

在80×86CPU 的程式執行過程中,已知堆疊指標SP=2000H,且往較低位址存入(PUSH)資料,當執行三個PUSH AX 與一個POP BX 時,SP 指在

電腦硬體裝修 · 乙級 · 裝修及控制應用 · Q2

難易度分析

3 / 5

此題要求計算特定堆疊操作後的指標數值,涉及對暫存器位元組長度以及堆疊操作(PUSH/POP)與指標增減方向之間邏輯關係的精確掌握。考生需進行多步驟的累計計算,並需區分 16 位元操作對位址變化的影響,屬於標準的邏輯運算與概念應用題型。

正確答案:③1FFCH

③ 1FFCH:AX 為 16 位元暫存器佔 2 位元組,每次 PUSH 使 SP 減 2,三次 PUSH 共減 6(2000H → 1FFAH);每次 POP 使 SP 加 2,一次 POP 加 2,最終 SP = 1FFAH + 2 = 1FFCH。

錯誤選項解析

  • ① 2001H:堆疊指標 SP 的變化是以 2 位元組(16 位元暫存器大小) 為單位進行增減,而非以 1 位元組遞增,因此 2001H 不符合堆疊運算規則。
  • ② 2002H:此數值僅計算了 一次 PUSH AX 後的 SP 變化(2000H - 2 = 1FFEH)或僅考慮 一次 POP 的結果,未完整計算三次 PUSH 與一次 POP 的累計效果。
  • ④ 1FFDH:此數值誤算了堆疊操作的累計變化量,可能是將 PUSH 次數或位元組數計算錯誤,正確的 SP 應為 1FFCH 而非 1FFDH。
Learning Tip

"在 80x86 架構 中,堆疊成長方向為往低位址,PUSH 使 SP 遞減、POP 使 SP 遞增。常考陷阱在於混淆 8 位元與 16 位元暫存器 所佔的位元組數(AL/AH 為 1 位元組,AX/BX/CX/DX 為 2 位元組)。解題關鍵:先確認暫存器位元數,再依 PUSH/POP 次數累計 SP 變化量。"

學員答題分佈

①2001H0%
②2002H0%
③1FFCH0%
④1FFDH0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目