2023年4月22日,周六晚上。

今天写汇编作业的时候,碰到了MUL指令,于是把学习到的MUL指令知识记录下来,也可以通过写这篇博客彻底理清MUL指令。


当被乘数和乘数都是8位时:

怎么判断被乘数和乘数是不是8位的?

8位二进制能表示的无符号10进制数的范围:0到255

8位二进制能表示的有符号10进制数的范围:-128到127

8位二进制能表示的无符号16进制数的范围:0x00到0xFF

8位二进制能表示的有符号16进制数的范围:-0x80到0x7F

只要不超过这个范围,那就是8位的。

怎么用MUL指令来完成8位的乘法?

被乘数要放在寄存器AL中,

MOV AL,66 ;AL存放被乘数,66是16进制数

乘数要保存在8位寄存器或者内存中,

MOV BL,9 ;BL存放乘数,9是16进制数

然后,通过MUL指令,让乘数和被乘数相乘

MUL BL ;因为被乘数默认放在AL,所以只需要一个操作数来告诉CPU乘数是多少

最后,结果存放在AX中

注:下图中所有的数都是16进制的!

当被乘数和乘数都是16位时:

怎么判断被乘数和乘数是不是16位的?

16位二进制能表示的有符号16进制数的范围:0x8000到0x7FFF

16位二进制能表示的无符号16进制数的范围:0x0000到0xFFFF

16位二进制能表示的有符号10进制数的范围:-32768到32767

16位二进制能表示的无符号10进制数的范围:0到65535

怎么用MUL指令来完成16位的乘法?

被乘数要放在寄存器AX中,

MOV AX,120 ;AX存放被乘数,120是16进制数,超过了8位的范围

乘数要保存在16位寄存器或者内存中,

MOV BX,120 ;BX存放乘数,120是十六进制数,超过了8位的范围

然后,通过MUL指令,让乘数和被乘数相乘

MUL BX ;因为被乘数默认放在AX,所以只需要一个操作数来告诉CPU乘数是多少

最后,结果保存在AX和DX中,DX保存结果的高16位,AX保存结果的低16位

注:下图中所有的数都是16进制的!

8086汇编之乘法指令MUL相关推荐

  1. 8086汇编寄存器及指令汇总

    1   寄存器的分类 通用寄存器: ax,bx,cx,dx,(ah,al,bh,bl,ch,cl,dh,dl): sp,bp,si,di 指令寄存器: ip 标志寄存器: FR 段寄存器: cs,ds ...

  2. 8086汇编-实验8-jmp指令的理解

    offset 标号:取标号处的地址 mov 16位 offset 标号:取标号偏移地址 mov 32位 offset 标号:取标号段地址:偏移地址 assume cs:code code segmen ...

  3. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV

    MUL: 无符号乘 ;影响 OF.CF 标志位 ;指令格式: ;MUL r/m ;参数是乘数;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX ;如果参数是 r16/m16, 将把 AX ...

  4. 8086汇编_除法指令

    文章目录 语法 规则 16位除法 32位除法 语法 div m 规则 16位除法 除数m为8位时 默认ax存储被除数 商保存在al中 余保存在ah中 32位除法 除数m为16位时 默认ax存储被除数低 ...

  5. 【8086汇编】cmp指令和条件转移指令jxxx

    1.定义 2.无符号比较影响标志位 3.有符号比较影响标志位 4.各种条件转移指令 5.cmp配合条件转移的使用

  6. Win32ASM学习[16] :乘除指令: MUL、IMUL、DIV、IDIV

    ---------------------------------------------------------------------------------------------------- ...

  7. 无符号有符号乘法_刘帅嵌入式系统-乘法指令

    ARM有两类乘法指令:一类为32位的乘法指令,即乘法操作的结果为32位:另一类为64位的乘法指令,即乘法操作的结果为64位.两类指令共有以下6条. MUL:32位乘法指令 MLA:32位带加数的乘法指 ...

  8. 汇编8086CPU常用指令——详解

    数据传送类指令 数据传送是计算机中最基本.最重要的一种操作,数据传送指令的功能是把数据从一个位置传送到另一个位置. 1. 通用数据传送指令 (1) MOV指令 指令格式:MOV dest , src ...

  9. 十进制转二进制和十六进制 条件码标志和乘法指令

     十进制数转16进制数 先以二进制数转十进制数为例: 80 = 2^6 + 2^4    则D6 = 1, D4 = 1, 其余位为0 ,80的二进制代码为 0101 0000 则,10进制转16进制 ...

最新文章

  1. RDKit | 基于RDKit和化学信息学探索化学空间
  2. SAP HUM对嵌套HU做WM货物移动时TO单上只显示外层HU
  3. 四条使用Spring BeanUtils的总结
  4. navicat导数据速度_华为廊坊云数据中心二期1~3期主楼聚氨脂、聚脲防水隔热总承包工程...
  5. python深拷贝,浅拷贝,赋值引用
  6. 强化学习《基于策略 - Policy Grident》
  7. FILESTREAM data cannot be placed on an empty filegroup 解决办法
  8. ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
  9. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝
  10. delphi7的加密算法与 delphi XE+加解密算法
  11. VBScript: 正则表达式(RegExp对象)
  12. 机器翻译的概述(冰山一角)
  13. SQL 筛选某一时间大于某一个值的数据及数量
  14. pre-trained模型的使用
  15. OpenCV 常见问题解决方案
  16. 初涉莫比乌斯反演(附带例题)
  17. git extensions 设置成中文
  18. [导入]网页制作万花筒
  19. 计算机学stata,Stata教程(免费)
  20. 【Python】turtle小海龟画兔子

热门文章

  1. 基于JAVA学生健康管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  2. cmake编译参数重写(正在重写‘/MTd‘用‘/MDd‘)问题
  3. 软件工程学习笔记(三)软件需求工程
  4. 【面经】长鑫存储-产品可靠性-合肥-提前批校招面经-已gg
  5. win10 屏幕文字显示不清楚 解决方案
  6. 解决git clone速度太慢的问题(SS socks5代理)
  7. Java集合体系总结
  8. 电视上设置禁止安装不是从Android,海信电视禁止安装第三方软件怎么办?当贝市场教你解决方法!...
  9. 魅族再次助推陌陌商业化,不遗余力为其洗白
  10. Mac OS 下的解压缩软件——The Unarchiver