1.MUL指令(无符号数的乘法指令)

指令格式:

MUL OPS

;OPS可以是reg和mem操作数。

被乘数先放在AX或AL、EAX中,再将乘数给OPS。

字节乘法:

(AL)*(OPS8)→AX

字乘法:

(AX)*(OPS16)→DX:AX

双字乘法:

(EAX)*(OPS32)→EDX:EAX

影响的标志位是:

CF、OF,不影响AF、PF、SF、ZF。

8086乘法运算指令分为无符号数乘MUL和有符号数乘IMUL。

乘法在实现字节相乘时乘积放在AX寄存器中,字相乘时乘积放在DX:AX寄存器中,因此乘法指令不会产生溢出和进位,这时用OF和CF位来表示乘积有效数字的长度。

若乘积的高半部分(字节乘法为AH,字乘法为DX)有效(MUL指令是指AH或DX中的内容不为0,IMUL指令指的则是AH或DX中的内容是否为符号位的扩展),则CF与OF都为1,表示DX或AH中含有乘积的有效数字,否则CF和OF为0。 给你举个例子吧。 无符号数0B4H与11H相乘 mov al,0b4h ;al=b4h=180d(被乘数放在al中) mov bl,11h ;bl=11h=17d(乘数放在bl中) mul bl ;ax=Obf4h=3060d,OF=CF=1(乘积放在ax中。AX高8位不为0) 再来一个有符号数乘法的例子。 有符号数0B4H与11H相乘 mov al,0b4h ;al=b4h=-76d(b4h为-76的补码) mov bl,11h ;bl=11h=17d imul bl ;ax=faf4h=-1292d,OF=CF=1 ;AX高8位不是低8位的符号扩展,表示含有有效数字,计算二进制数乘法:b4h×11h。如果把它当作无符号数,用MUL指令结果为0bf4h;如果看作是有符号数,用IMUL指令则结果为faf4h。

由此可见,同样的二进制数看作无符号数与有符号数相乘,即采用MUL与IMUL指令,它们的结果是不相同的。

例:

设(AL)=02H(2),

(BH)=81H(129),

(AL)*(BH)→AX,

执行MUL BH指令后,(AX)=02H*81H=0102H。

(258)十进制

c语言中mul的用法,MUL指令(无符号数的乘法指令)相关推荐

  1. (转载)C语言中strlen()返回值类型为无符号数

    (转载)http://blog.csdn.net/jubincn/article/details/7335726 参考:<C和指针> strlen()的方法签名中的返回值类型为size_t ...

  2. c语言中getche的用法,c语言中getch的用法

    [www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...

  3. php indexof的用法,c语言中indexof的用法有哪些

    c语言中indexof的用法有哪些 index在互联网上表示网站的默认主页.一般为 index.html index.htmindex.aspindex.php:另外的默认主页也多用default.h ...

  4. c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?

    一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...

  5. c语言中size of 用法,C语言中sizeof()的用法

    要参加软件研发的笔试(C/C++)几乎都会涉及到sizeof()的用法,我昨天也遇到了,有的也会,但是真正sizeof()的核心还是没有领会,今天上网,无聊中就看到了详细的sizeof()的阐述,现在 ...

  6. C语言中const的用法

    C语言中const的用法 基本解释         const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解co ...

  7. sql 语言中 when case 用法

    sql语言中有没有相似C语言中的switch case的语句?? 没有,用case when 来取代就行了. 比如,以下的语句显示中文年月 select getdate() as 日期,case mo ...

  8. c语言中switch的用法是什么?

    c语言中switch的用法是: 功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为" ...

  9. #define c# 报错_c语言中#define的用法

    c语言中#define的用法 C语言中,可以用 #define 定义一个标识符来表示一个常量.其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了. 预编译又叫预处理.预编译 ...

最新文章

  1. 怎么样做一个合格而又可爱的面试官
  2. 工欲善其事,必先利其器 -- 这烙铁,升温有点狠
  3. android mapbox 添加多个点,使用Android Mapbox SDK显示多个标记的自定义infoWindow
  4. JZOJ 5395. 【NOIP2017提高A组模拟10.6】Count
  5. 【线上分享】RTC业务中的视频编解码引擎构建
  6. twitter.common.concurrent deadline and defer
  7. java web空指针,java - Web服务中的Java空指针异常@autowired [重复] - 堆栈内存溢出
  8. CentOS7安装GNOME可视化界面 和 远程访问
  9. cocosBuilder使用总结
  10. 【尚硅谷_数据结构与算法】十二、算法
  11. Navicat for MySQL 安装教程
  12. 前端实现文件在线预览功能
  13. day24.open 打开文件操作
  14. css3中的动画特效--跳动的篮球
  15. GCC NOT FOUNT
  16. KITTI车辆检测数据集转VOC格式(亲测成功,附KITTI云盘连接以及完整格式转换代码)- KITTI车辆检测数据集看着一篇就够了!
  17. 【数据结构和算法】图论—克鲁斯卡尔(Kruskal)算法详解
  18. 信息化和软件服务业司参加工业互联网平台与软件化发展高峰论坛
  19. 《机器学习基石》课程笔记(1)
  20. 计算机、程序和 Java 概述 学习笔记

热门文章

  1. 笔试记录 58同城 算法 20200921
  2. MySQL自增列之起始与步长
  3. sip协议之网络传输方式
  4. 行为设计模式:中介者模式
  5. 代码生成器-设计心得
  6. Long与Integer之间的转换产生的问题
  7. 二维码解码程序的两大难点问题
  8. 【PANDA教程】PANDA详细教程笔记
  9. 使用python计算水仙花数
  10. Kubernetes Pod Evicted