简介 :
div 指令的实现
代码 :
assume cs:code,ds:data,ss:stack
; div 指令的使用
; 计算 10001 / 100
; div [寄存器]
; div 内存地址 (注意需要用 byte ptr / word ptr 来说明数据长度)
; 被除数保存在 (ax) 或者 (ax 和 dx) 中
; 这两者的区别主要是位数不同
; 当除数为 8 位时 , 被除数为 ax
; 当除数为 16 位时 , 被除数为 ax 和 dx , 其中 ax 为低 16 位 , dx 为高 16 位
; 当除数为 8 位时 , 商保存在 al 中 , 余数保存在 ah 中
; 当除数为 16 位时 , 商保存在 ax 中 , 余数保存在 dx 中
data segment
data ends
stack segment
stack ends
code segment
start:
; 计算 10001 / 100
; 被除数 10001 是一个 16 位的数据 , 因此只需要保存在 ax 寄存器中就好
; 这里保存在 bx 中
mov ax, 10001
; 将除数保存在 cx 中
; mov bx, 100 ; 这里除数是 bx , 16 位 , 因此商会保存在 ax 中 , 余数会保存在 dx 中
; div bx
mov bl, 100 ; 也可以使用 bl 来保存除数
div bl ; 这样的话 , al 中保存商 , ah 中保存余数
finish:
mov ax,4cH
int 21H
code ends
end start