c语言中mul的用法,MUL指令(无符号数的乘法指令)
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指令(无符号数的乘法指令)相关推荐
- (转载)C语言中strlen()返回值类型为无符号数
(转载)http://blog.csdn.net/jubincn/article/details/7335726 参考:<C和指针> strlen()的方法签名中的返回值类型为size_t ...
- c语言中getche的用法,c语言中getch的用法
[www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...
- php indexof的用法,c语言中indexof的用法有哪些
c语言中indexof的用法有哪些 index在互联网上表示网站的默认主页.一般为 index.html index.htmindex.aspindex.php:另外的默认主页也多用default.h ...
- c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?
一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...
- c语言中size of 用法,C语言中sizeof()的用法
要参加软件研发的笔试(C/C++)几乎都会涉及到sizeof()的用法,我昨天也遇到了,有的也会,但是真正sizeof()的核心还是没有领会,今天上网,无聊中就看到了详细的sizeof()的阐述,现在 ...
- C语言中const的用法
C语言中const的用法 基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解co ...
- sql 语言中 when case 用法
sql语言中有没有相似C语言中的switch case的语句?? 没有,用case when 来取代就行了. 比如,以下的语句显示中文年月 select getdate() as 日期,case mo ...
- c语言中switch的用法是什么?
c语言中switch的用法是: 功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为" ...
- #define c# 报错_c语言中#define的用法
c语言中#define的用法 C语言中,可以用 #define 定义一个标识符来表示一个常量.其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了. 预编译又叫预处理.预编译 ...
最新文章
- 怎么样做一个合格而又可爱的面试官
- 工欲善其事,必先利其器 -- 这烙铁,升温有点狠
- android mapbox 添加多个点,使用Android Mapbox SDK显示多个标记的自定义infoWindow
- JZOJ 5395. 【NOIP2017提高A组模拟10.6】Count
- 【线上分享】RTC业务中的视频编解码引擎构建
- twitter.common.concurrent deadline and defer
- java web空指针,java - Web服务中的Java空指针异常@autowired [重复] - 堆栈内存溢出
- CentOS7安装GNOME可视化界面 和 远程访问
- cocosBuilder使用总结
- 【尚硅谷_数据结构与算法】十二、算法
- Navicat for MySQL 安装教程
- 前端实现文件在线预览功能
- day24.open 打开文件操作
- css3中的动画特效--跳动的篮球
- GCC NOT FOUNT
- KITTI车辆检测数据集转VOC格式(亲测成功,附KITTI云盘连接以及完整格式转换代码)- KITTI车辆检测数据集看着一篇就够了!
- 【数据结构和算法】图论—克鲁斯卡尔(Kruskal)算法详解
- 信息化和软件服务业司参加工业互联网平台与软件化发展高峰论坛
- 《机器学习基石》课程笔记(1)
- 计算机、程序和 Java 概述 学习笔记