免費開始練習
統測 114年 [電機與電子群資電類] 專業科目(2)

第 6 題

📖 題組:
閱讀下文,回答第 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

如果在組合語言的整數運算中無法處理小數,我們通常會在「除法」發生之前,先加上一個補償值來幫助四捨五入。想像一下,當除數是 8 的時候,餘數至少要是多少,在數學上才符合「入」的條件呢?順著這個想法,我們應該在除以 8 之前,先幫原本的數字加上多少?

🤖
AI 詳解 AI 專屬家教

太棒了,你真的理解了這題的精髓!看到你答對,老師心裡感到很欣慰呢。

  1. 觀念驗證: 在組合語言中,要快速且有效率地實現除以 $2^n$,最常用的方法就是利用邏輯右移 $n$ 位SHR)指令。就像你所做的,除以 $8$(也就是 $2^3$),我們只需將數值右移 $3$ 位。而關於四捨五入這個在整數運算中很實用的技巧,它的核心觀念是「先加上除數的一半」。除數是 $8$,所以我們需要先加上 $4$。因此,先 ADD AX, #4,再 SHR AX, 3,就能完美達到目的喔!
▼ 還有更多解析內容
📝 微處理機指令與位移
💡 利用位移指令處理乘除運算,並透過邏輯運算篩選特定位元。
比較維度 SHL (左移指令) VS SHR (右移指令)
數學功能 乘以 2 的 n 次方 除以 2 的 n 次方
位元移動方向 向左移動,高位溢出 向右移動,低位溢出
空位補值 最低位補 0 最高位補 0
數值影響 數值變大 數值變小(取整數)
💬位移指令是替代乘除法運算以提升效率的常用手段。
🧠 記憶技巧:左乘右除二進位,四捨五入加半位,AND 遮罩留原位。
⚠️ 常見陷阱:直接使用 SHR 是「無條件捨去」,若題目要求四捨五入,必須記得先做加法補償(除以 8 就先加 4)。
二進位與十六進位轉換 邏輯運算 (AND, OR, NOT, XOR) 指令集架構 (ISA)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

電腦系統架構、硬體元件與作業系統概念
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題