民國96年 第3梯次 數位電子乙級 學科

第7題

有一80 × 86 組合語言程式,其中一行為A D C b x , c x ,請問此行的執行結果為下列何者?

題目

有一80 × 86 組合語言程式,其中一行為A D C b x , c x ,請問此行的執行結果為下列何者?

  1. (1) b x = b x + c x + c a r r y f l a g
  2. (2) b x = b x + c x + z e r o f l a g
  3. (3) c x = b x + c x + c a r r y f l a g
  4. (4) c x = b x + c x + z e r o f l a g

官方答案

(1) b x = b x + c x + c a r r y f l a g

解析

ADC 為 x86 組合語言的「帶進位加法」指令(Add with Carry)。其運算邏輯為:目的運算元 = 目的運算元 + 來源運算元 + 進位旗標(Carry Flag, CF)的值。題目指令「ADC bx, cx」中,目的運算元為暫存器 bx,來源運算元為暫存器 cx,故執行後結果為 bx = bx + cx + carry flag。要注意的是,結果寫回目的運算元 bx,而非 cx,因此選項 3、4 將目的錯置為 cx 而錯誤;選項 2 誤用 zero flag(零旗標)也是錯的,帶進位加法使用的是 carry flag。故正確答案為 1。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料