div 指令的实现


简介 :

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

你可能感兴趣的:(div 指令的实现)