2.2 mul、div、and、or乘除指令及所有寄存器英文名

汇编语言

在这里插入图片描述

1. mul乘指令

  • 两个相乘的数,要么都是8位,要么都是16位

两个8位数相乘

  • 一个默认放在al中,另一个放在8位reg或内存字节单元中
  • 8位乘法,结果默认放在ax中
  • 例如:计算100*10
    100和10小于255,可以做8位乘法
    mov al,64
    mov bl,a
    mul bl
    结果:ax = 1000(03e8h)

在这里插入图片描述

两个16位数相乘

  • 一个默认在ax中,另一个放在16位reg或内存字节单元中
  • 16位乘法,结果高位默认放在dx中,低位在放在ax中
  • 例如:计算100*10000
    100小于255,可10000大于255,所以必须做16位乘法
    mov ax,64
    mov bx,2710
    mul bx
    结果:ax = 4240h, dx = 000fh (f4240h = 1000000)

在这里插入图片描述

2.div除指令

  • 除数:有8位和16位两种,在一个reg或内存单元中

16位除以8位

  • 被除数:如果除数为8位,被除数则为16位,默认在ax中存放;
  • 除数为8位,则al存储除法操作的商,ah存储除法操作的余数
  • 计算10000 / 100
    mov ax,2710
    mov bx,64
    div bx
    结果 ax = 64h
    在这里插入图片描述
  • 计算10001 / 100
    mov ax,2711
    mov bl,64
    div bl
    结果 ax = 0164h ,ah = 01 , al = 64
    在这里插入图片描述

32位除以16位

  • 如果除数为16位,被除数则为32位,在dx和ax中存放,dx存放高16位,ax存放低16位

  • 除数为16位,则ax存储除法操作的商,dx存储除法操作的余数

  • 例如:1000000 / 10000
    mov dx,f
    mov ax,4240
    mov bx,2710
    div bx
    结果 ax = 64h
    在这里插入图片描述

  • 例如:1000001 / 10000
    mov dx,f
    mov ax,4241
    mov bx,2710
    div bx
    结果 ax = 64h
    在这里插入图片描述

3.and逻辑与指令

  • 逻辑与指令,按位进行与运算
  • 二进制里,同1则1,其余为0;在用debug时要把b转换为h
  • 例如指令:
    mov al , 01100011b
    and al , 00111011b
    执行后:al = 00100011b

在这里插入图片描述

mount c d:masm
c:
debug
a 073f:0100
mov al,63
and al,3b

t

t

4.or逻辑或指令

  • 逻辑或指令,按位进行或运算
  • 二进制里,有1则1,其余为0;在用debug时要把b转换为h
  • 例如:
    mov al , 01100011b
    or al , 00111011b
    执行后:al = 01111011b

在这里插入图片描述

a 073f:0104
mov al,63
or al,3b

t

t

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值