深入理解 div 指令(用双字来存储被除数)


简介 :

深入理解 div 指令(用双字来存储被除数)

代码 :

assume cs:code,ds:data,ss:stack

data segment
    dd 100001 ; 作为被除数 , 注意十进制的 100001 在 16 进制中为 : 000186A1
    ; 这个数据在内存中的存放方式为 : A1 86 01 00 (小端字节序列 , 注意是字节)
    ; 超过了 16 位 , 因此需要分开将其读取到 ax 和 dx 中才可以进行除法运算
    dw 100 ; 作为除数
    dw 0 ; 保存商
data ends

stack segment

stack ends

code segment

    start:
        ; 设置数据段寄存器
        mov ax, data
        mov ds, ax
        ; 将被除数读取到寄存器 ax dx 中
        mov bx,0
        mov ax, word ptr [bx]
        add bx, 2
        mov dx, word ptr [bx]
        add bx, 2
        ; 开始除法运算
        div word ptr [bx]
        add bx, 2
        ; 将结果(商)保存在第二个 dw 中
        mov [bx], ax
        ; 这里余数被保存在了 dx 中 , 也可以定义一个 dw 数据来保存商

    finish:
        mov ax,4cH
        int 21H

code ends

end start
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容