初学MUL乘法指令,写法求解释下解决方案
发布时间:2010-06-14 15:51:57 文章来源:www.iduyao.cn 采编人员:星星草
初学MUL乘法指令,写法求解释下
MUL r8/m8 ;无符号字节乘:AX←AL×r8/m8
MUL r16/m16 ;无符号字乘:DX.AX←AX×r16/m16
MUL指令影响标志OF和CF。如果乘积的高一半(AH或DX)为0,则OF=CF=0;否则OF=CF=1。利用乘法指令对OF和CF的影响,可以判断相乘的结果中高一半是否含有有效数值。但是,MUL指令对其他状态标志的影响没有定义,也就是成为任意,不可预测。
例2.21a:无符号数0B4H与11H相乘
mov al,0b4h ;al=b4h=180d
mov bl,11h ;bl=11h=17d
mul bl ;ax=Obf4h=3060d,OF=CF=1(AX高8位不为0)
====================================================================
请问,
1、AX←AL×r8/m8 的符号←是什么意思,他的计算顺序是怎样的
2、r8/m8是r8或m8还是r8除以m8 ?
3、 mul bl ;ax=Obf4h=3060d,OF=CF=1(AX高8位不为0) mul bl 看ax的结果应该是al乘以bl,mul bl我知道隐藏了一个数,他的显示公式是什么
------解决方案--------------------
1. 那个意思是一个乘数存放在AL中,另一个乘数存放在一个8位的寄存器或内存中。而结果(积)存放在AX中
2.r8,r是寄存器(Register)单词的简写,m8,m是内存(Memory)单词的简写。
3.mul bl 公式就是:al × bl = ax(存放在AX寄存器中)
------解决方案--------------------
随便再补充下,第二问的r8/m8不是除法,刚刚已经解释了他们的单词简写,这个其实就表示:他们可以是一个8位寄存器,也可以是一个8位内存单元
.
------解决方案--------------------
1.不是,一个乘数已经放到AL寄存器里的,MUL r8/m8 指的是另一个乘数,比如:MUL BL,BL就是一个8位的寄存器也就是r8的例子,再来个m8的例子:MUL Byte Ptr ds:[ 0 ]
2.那个是乘数为16位的一种情况,在乘数为16位时,得出的积就是32位的,这是积的高位放在DX寄存器中,积的低位放在AX寄存器中,也就是说,这个得出的积是由2个寄存器来进行存放的
------解决方案--------------------
“这是积的高位放在DX寄存器中”
“这是”打错了,是“这时”
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
MSN通讯协议逆向
MSN 进行数据通讯中,据说用了TWN认证,通过SSL/TLS连接到login.passport.com和 loginnet.passportr.com 等服务器。
...
-
win7+64位cpu的exe反汇编问题,多次问人,无果
vs20008写的一个很简单的c++控制台程序
平台是:win7 64位操作系统
用od进行反汇编,...
-
可能很白痴的问题:想给ax赋一个负数怎么做?
比如想要赋一个-5给ax,是不是只有求出这个-5的补码,然后mov进这个补码这一种方法?
------...
-
居然显示不出负数来,悲剧
Assembly code
.386
.model flat,stdcall
include kernel32.inc
includelib kernel32.lib
include ms...
-
call far ptr '标号'的问题[在线等答案]
为什么ax会是1010?不是1006??求详细解答
难道call far ptr不是执行了push cs,push ip,jm...
-
CPU的程序计数器PC和指令指针寄存器IP是一个东西吗?
看上去好像功能完全一样,又觉得不应该是一回事,求教
------解决方案----------...
-
菜鸟问题,高人来帮忙
编程,统计data段中数值为8的字节的个数,用ax保存结果
我的代码
Assembly code
assume cs:code,ds:data
data se...
-
一个死循环问题
什么原因造成内循环才刚循环一次还没完,到了loop s1的时候cx突然变成F?
Assembly code
assume cs:codesg,ds:datas...
-
初学MUL乘法指令,写法求解释下
MUL r8/m8 ;无符号字节乘:AX←AL×r8/m8
MUL r16/m16 ;无符号字乘:DX.AX←AX×r16/...
-
汇编如何 取到8051的P0口的内容呢?
Assembly code
ORG 0000H
AJMP START
ORG 0030H
START: MOV P0,#00H
LOOP: ...