两个相乘数,要么都是8位,要么都是16位。   8位乘法,16位乘法。

如果是8位,一个数字默认存放在al中,另外一个数字存放在其他8位寄存器中或者字节型内存单元中。

mul 8位寄存器               ;结果存放在ax中

mul byte ptr ds:[0]         ;结果存放在ax中

如果是16位,一个数字默认存放在ax中,另外一个数字存放在其他16位寄存器中或者字型内存单元中。

mul 16位寄存器             ;结果存放在dx, ax中

mul word ptr ds:[0]        ;结果存放在dx, ax中

结果:  8位乘法,得到一个16位数,  结果存放在ax中

16位乘法,得到一个32位数,  低16位存放在ax中,高16位存放在dx中

assume cs:code, ds:data, ss:stackdata segmentdd 0
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart:    mov ax, stackmov ss, axmov sp, 128mov di, 0call init_regmov bx, 5         ; 参数call get_cube     ; 对参数进行处理mov es:[di+0], ax ;call程序的返回值mov es:[di+2], dx       mov ax, 4C00Hint 21H
;================================ 切割逻辑
get_cube:   push bxmov ax, bxmul bxmul bxpop bxret;=================================
init_reg:   mov ax, datamov ds, axmov es, axretcode endsend start
assume cs:code, ds:data, ss:stackdata segmentdw 11,22,33,44,55,66,77,88dd 0,0,0,0,0,0,0,0
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart:    mov ax, stackmov ss, axmov sp, 128call init_regcall number_cube     mov ax, 4C00Hint 21H;================================
number_cube:mov cx, 8mov si, 0mov di, 16cube:   mov bx, ds:[si]call get_cubemov es:[di], axmov es:[di+2], dxadd si, 2add di, 4loop cuberet
;================================ 切割逻辑
get_cube:   push bxmov ax, bxmul bxmul bxpop bxret;=================================
init_reg:   mov ax, datamov ds, axmov es, axretcode endsend start

汇编: mul乘法指令相关推荐

  1. 汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37564426/article/ ...

  2. 8086汇编之乘法指令MUL

    2023年4月22日,周六晚上. 今天写汇编作业的时候,碰到了MUL指令,于是把学习到的MUL指令知识记录下来,也可以通过写这篇博客彻底理清MUL指令. 当被乘数和乘数都是8位时: 怎么判断被乘数和乘 ...

  3. 贺利坚老师汇编课程51笔记:MUL乘法指令

    指路老师的博客 MUL 寄存器 MUL 内存单元 8位乘法 16位乘法 被乘数(默认) AL AX 乘数 8位寄存器或内存字节单元 16位寄存器或内存字节单元 结果 AX DX(高位)AX(低位) M ...

  4. ARM学习笔记7——乘法指令

    ARM乘法指令完成两个数据的乘法,两个32位二进制数相乘的结果是64位的4积. 其中: 1."RadHi:RdLo"是由RdHi(最高有效32位)和RdLo(最低有效32位)链接形 ...

  5. 汇编总结:无符号除法,有符号除法,取余,无符号乘法,有符号乘法指令

    2019独角兽企业重金招聘Python工程师标准>>> 本文分为3个模块. 示例---该指令的示例 解释---为指令不好理解的地方 练习---为了更熟悉该指令 1.1 有符号除法指令 ...

  6. c语言中mul的用法,MUL指令(无符号数的乘法指令)

    1.MUL指令(无符号数的乘法指令) 指令格式: MUL OPS :OPS可以是reg和mem操作数. 被乘数先放在AX或AL.EAX中,再将乘数给OPS. 字节乘法: (AL)*(OPS8)→AX ...

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

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

  8. 汇编语言---乘法指令及符号扩展

    汇编语言---有符号数乘法指令 介绍 格式及功能介绍 无符号数乘法指令 有符号数乘法指令 符号扩展及符号扩展语句 符号扩展 符号扩展语句 例子 无符号相乘 有符号数相乘 这是本文的重点: 有符号数相乘 ...

  9. 汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等

    转自:http://www.cnblogs.com/del/archive/2010/04/16/1713886.html http://pan.baidu.com/s/1gVTSi 跳转指令分三类: ...

最新文章

  1. 妹子调车为哪般?室外赛道来闯关。
  2. 【行业报告】信贷场景下全流程数据风控体系——宜信
  3. rockemq 发送延迟消息_RocketMQ系列(五)广播与延迟消息
  4. 关于SQL Tuning的知识体系
  5. Java读取HttpServletRequest的post数据流
  6. c语言连续非递减子序列,最长非递减子序列的应用
  7. Unix编程之size_t、ssize_t
  8. 20190902每日一句
  9. C# WinForm程序中使用Unity3D控件
  10. python计算标准差为什么分母要-1_为什么样本方差(sample variance)的分母是 n-1?...
  11. 信息流广告 html5,做信息流广告怎么找关键词?
  12. cad剖切线的快捷键_CAD有哪些常用的快捷键?
  13. MaterialDrawer库的Gradle配置
  14. java Base64编解码
  15. 云模型的MATLAB实现
  16. CCF TALKs 报名 | 今天,技术如何推动社会进步
  17. 音乐播放器(vip在线听下载等等)~~正常运行
  18. 今天第一次电面,国信证券金融工程
  19. 【win10安装Kafka发消息及消费】
  20. SPSS李克特量表的变量属于顺序变量,为什么可以当作连续变量使用?【SPSS 060期】

热门文章

  1. 洛谷P3391文艺平衡树(Splay)
  2. Item 14: 如果函数不会抛出异常就把它们声明为noexcept
  3. IOS第三天(@property与@synthesize的用法)
  4. 给GridView删除列添加删除提示
  5. DedeCms如何调用Discuz论坛主题等数据方法总结
  6. Javascript综合应用小案例(续)
  7. Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题
  8. [转] 全面了解Windows任务管理器
  9. erlang节点互相ping,一个能ping通,另外一个不行。
  10. 响应式网站——第二话(技术实现)