CPU 執行除法指令時,是有可能溢出的。
特別是除數為零時,必然會出現:Divide? overflow。
此外,當被除數的高位,大於等於除數時,也會發生“溢出”。
執行 DIV? BH 指令後,商是存放在 AL 中,不能超出 8 位數。
但是,妳的商是 1000H,超出了 8 位,這就壹定會溢出。
所以,執行 DIV 指令之前,應該加以判斷。
較好的方法是:編寫壹個“不會溢出”的除法程序。
方法思路如下:
在右圖中,
被除數是:1A2B3C4DH,有 32 位數。
除數是:BL,僅有 8 位數。
商,是:32 位數。
按照圖中的步驟,只要 BL 不為零,就絕對不會發生溢出。