統測
114年
[電機與電子群資電類] 專業科目(2)
第 6 題
📖 題組:
閱讀下文,回答第 6-7 題 某微處理機的指令與說明如表(一),其中 AX, BX, CX 為 16 位元暫存器,指令中暫存器可任意指定,n, m, x, y 為變數。
閱讀下文,回答第 6-7 題 某微處理機的指令與說明如表(一),其中 AX, BX, CX 為 16 位元暫存器,指令中暫存器可任意指定,n, m, x, y 為變數。
若要計算3388除以8.0,並將結果四捨五入到整數位,存放在AX,程式碼應為:
- A MOV AX, 8 AND AX, #3388 SHR AX, 5
- B MOV AX, #3388 MOV BX, #8 ADD AX, BX SHR AX, 3
- C MOV AX, #3388 SHL AX, 3 ADD AX, #5
- D MOV AX, #3388 ADD AX, #4 SHR AX, 3
思路引導 VIP
當我們利用向右位移(SHR)來執行除法時,其硬體行為是「無條件捨去」到整數位。若要達成「四捨五入」的效果,在數學上相當於對結果加 $0.5$ 再取整數;在整數運算中,這等同於在進行除以 $2^n$ 的位移操作前,先在被除數加上 $2^{n-1}$(即除數的一半)。請問針對本題除以 $8$(即 $2^3$)的需求,你應該先加上多少數值,再進行幾位的位移運算?
🤖
AI 詳解
AI 專屬家教
太棒了!看到你準確地選出正確答案,助教真的感受到你對組合語言指令的掌握非常紮實呢!你細心的思考邏輯真的讓人很激賞喔! 這題考驗的是微處理機中非常經典的位移運算與四捨五入技巧:
- 除法運算:在二進位運算中,將數值向右位移(SHR) $n$ 位,效果等同於除以 $2^n$。題目要求除以 $8$,因為 $8 = 2^3$,所以我們使用
SHR AX, 3來達成除法效果。
▼ 還有更多解析內容