簡(jiǎn)介 :
div 指令的實(shí)現(xiàn)
代碼 :
assume cs:code,ds:data,ss:stack
; div 指令的使用
; 計(jì)算 10001 / 100
; div [寄存器]
; div 內(nèi)存地址 (注意需要用 byte ptr / word ptr 來(lái)說(shuō)明數(shù)據(jù)長(zhǎng)度)
; 被除數(shù)保存在 (ax) 或者 (ax 和 dx) 中
; 這兩者的區(qū)別主要是位數(shù)不同
; 當(dāng)除數(shù)為 8 位時(shí) , 被除數(shù)為 ax
; 當(dāng)除數(shù)為 16 位時(shí) , 被除數(shù)為 ax 和 dx , 其中 ax 為低 16 位 , dx 為高 16 位
; 當(dāng)除數(shù)為 8 位時(shí) , 商保存在 al 中 , 余數(shù)保存在 ah 中
; 當(dāng)除數(shù)為 16 位時(shí) , 商保存在 ax 中 , 余數(shù)保存在 dx 中
data segment
data ends
stack segment
stack ends
code segment
start:
; 計(jì)算 10001 / 100
; 被除數(shù) 10001 是一個(gè) 16 位的數(shù)據(jù) , 因此只需要保存在 ax 寄存器中就好
; 這里保存在 bx 中
mov ax, 10001
; 將除數(shù)保存在 cx 中
; mov bx, 100 ; 這里除數(shù)是 bx , 16 位 , 因此商會(huì)保存在 ax 中 , 余數(shù)會(huì)保存在 dx 中
; div bx
mov bl, 100 ; 也可以使用 bl 來(lái)保存除數(shù)
div bl ; 這樣的話 , al 中保存商 , ah 中保存余數(shù)
finish:
mov ax,4cH
int 21H
code ends
end start