汇编_除法(被除数单倍或两倍字长)

以16位字长的Dos系统为例
除数: 有8位和16位两种, 在一个寄存器或者内存单元中
被除数: 如果除数是8位则被除数为16位, 默认放在AX中, 如果除数是16位, 则被除数为32位, 默认高位放在DX, 低位放在AX
结果: 如果除数是8位, 那么执行div后, 余数存放在AH, 商存放在AL中; 如果除数是16位, 那么AX保存商, DX保存余数
注意: 被除数的位数一定是除数的两倍

被除数为32位(两倍字长):

assume cs:codesg,ds:data

data segment
    dw 1H,8704H;十进制为100100D
    db 64H;十进制为100D
data ends

codesg segment
start: mov ax, data
    mov ds, ax

    mov dx, ds:[0]
    mov ax, ds:[2]

    div word ptr ds:[4];word ptr表示取一个字

    mov ax, 4c00h
    int 21h;
codesg ends
end start

试验结果:
在这里插入图片描述
被除数为16位(单倍字长):

assume cs:codesg,ds:data

data segment
    dw 2711H;十进制为10001D
    db 64H;十进制为100D
data ends

codesg segment
start: mov ax, data
    mov ds, ax

    mov ax, ds:[0];设置被除数

    div byte ptr ds:[2];byte ptr表示取一个字节

    mov ax, 4c00h
    int 21h;
codesg ends
end start

试验结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值