MUL的疑问,请高手解答。

antss 2008-06-29 02:03:44
无符号乘法指令MUL

格式:MUL SRC ;B/W

执行的操作:是字节的操作数时AX <-AL*SRC
是字操作数时 AX <-AX*SRC

在这里有一个疑问,这里的AX寄存器是来指上一条指令的AX吗?

比如有下面这样的一段小程序:
MOV BL,1
XOR AX,AX
AGAIN:MOV AL,BL
INC BL
MUL BL ;在这里MUL指令里还是 AX <-AL*SRC 吗?或者是 它的上一条指令BL <-BL*BL,又或者是BL给了AL后加1,再将加1后的BL*BL,还是加1后的BL乘以INC之前的那条指令的AL,像这样表示 AL <-AL*BL,请高手提供思路。
ADD CX,AX
CMP AX,14
JB AGAIN
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BAYNPU 2008-06-29
  • 打赏
  • 举报
回复

1、乘法指令隐含使用一个操作数AX和DX,源操作数则是显式给出,可以是寄存器或存储单元。
2、若是字节量相乘,AL与R8/M8相乘得到16位的字,存入AX中。
3、若是16位数据相乘,则AX与R16/M16,得到32位的结果,其高字存入DX,低字存入AX中。
antss 2008-06-29
  • 打赏
  • 举报
回复
你的意思是MUL执行过程中,是不会改变的对吗?一直是AX,还是可以改变的,但改变的情况需要特殊说明是吗?
ahalf 2008-06-29
  • 打赏
  • 举报
回复
ax 是默认寄存器

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧