【汇编语言】除法指令div和乘法指令mul

除法指令div

除数:

    分8位和16位,存放在reg(寄存器)或内存单元

被除数:

    分16位和32位

    被除数为16位,则除数为8位,被除数默认存放在AX中;

    被除数为32位,则除数为16位,被除数存放在AX和DX中,AX低8位,DX高8位

          

   
被除数32位16位
除数16位8位
被除数存放位置AX

AX(低8位)

DX(高8位)

结果:

    除数为8位,AL存放商,AH存放余数

    除数为16位,AX存放商,DX存放余数


计算100001 / 100

    被除数:16位最大表示65535,所以被除数100001只能用两个16位寄存器ax和dx存放

    除数:100小于255,可以用8位表示,但被除数为32位,所以除数必须用16位寄存器存放

    Debug数据默认16位,所以要先把被除数和除数转换成16进制

    100001 = 186a1H

    100 = 64H

    程序如下:

    mov dx,1

    mov ax,86a1

    mov bx,100

    dix bx

计算1001 / 100

    被除数:1001  < 65535,用16位寄存器AX存放

    除数:被除数用16位,除数用8位

    转换16进制

    1001 = 03e9H

    100 = 64H

程序如下:

mov ax,03e9
mov bl,64
div bl

乘法指令mul

两个相乘的数都是8位或都是16位

8位的话,一个默认存放在AL中,另一个存放在8位寄存器或内存字节单元中

若是16位,一个默认存放在AX中,另一个存放在16位寄存器或内存字单元中

相乘的积:8位乘法默认存放在AX中

                若是16位,高8位默认放在DX,低位放在AX

示例程序:

8位乘法,100 * 2

mov al,100
mov bl,2
mul bl


16位乘法,100 * 10000

mov ax,100
mov bx,10000
mul bx





  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cimoon_

一分也是爱,用钱砸我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值