搜索
bottom↓
回复: 7

汇编写程序要使用两个字节怎么办

[复制链接]

出0入0汤圆

发表于 2013-10-11 12:17:20 | 显示全部楼层 |阅读模式
本帖最后由 一匹狼 于 2013-10-11 12:23 编辑

我写了个程序,大致意思是——求解10的阶乘,即1*2*3*...*10,我把结果的高四位放在40H,低四位存放在41H
  1. ORG 0000H
  2. SJMP MAIN
  3. ORG 0030H

  4. MAIN:
  5. MOV R0,#31H       
  6. MOV A,#01H
  7. MOV R1,#0AH

  8. LOOP1:
  9. MOV @R0,A
  10. INC R0
  11. INC A
  12. DJNZ R1,LOOP1

  13. MOV A,31H
  14. MOV R0,32H
  15. MOV R1,#09H

  16. LOOP2:
  17. MOV B,R0       
  18. MUL AB
  19. INC R0
  20. MOV 40H,B
  21. MOV 41H,A
  22. DJNZ R1,LOOP2                                                                                                                                                                                                                                                                               
  23. SJMP $
  24. END
复制代码
这个程序智能做到6的阶乘,  7以后就溢出了。
我想请教下各位大牛,如何修改

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-10-11 12:36:02 | 显示全部楼层
hameyou 发表于 2013-10-11 12:26
先用汇编写一个2字节乘法的子程序,然后直接调用

初学汇编,请问两字节乘法程序怎么实现?
非常感谢

出0入0汤圆

发表于 2013-10-11 12:58:19 | 显示全部楼层
悄悄告诉你乘法 可以理解成加法。
5*5
5+5+5+5+5+5,汇编加法应该很简单吧。

出0入0汤圆

发表于 2013-10-11 15:54:46 | 显示全部楼层
楼主啊,小学生怎么算2位数的乘法的呢?

出0入0汤圆

发表于 2013-10-11 16:13:36 | 显示全部楼层
AB×CD=B×D+A×D×256+B×C×256+A×C×256×256

出10入23汤圆

发表于 2013-10-11 16:59:15 | 显示全部楼层
建议先用C写,翻译成汇编,仔细看汇编代码怎么做的

出0入0汤圆

 楼主| 发表于 2013-12-28 23:42:32 | 显示全部楼层
之前写好,一直忘了更新,谢谢5楼
  1. ORG 0000H
  2. SJMP MAIN
  3. ORG 0030H
  4. ;存储10!运算结果占用三字节
  5. ;31H 32H 33H
  6. MAIN:
  7.         MOV 33H ,#10
  8.         MOV R0 ,#9
  9. LOOP:
  10.         MOV A ,33H
  11.         MOV B ,R0
  12.         MUL AB
  13.         MOV R2 ,B;寄存进位数
  14.         MOV 33H ,A

  15.         MOV A ,32H       
  16.         MOV B ,R0
  17.         MUL AB
  18.         MOV R3 ,B;寄存进位数
  19.         ADD A ,R2;进位
  20.         MOV 32H ,A

  21.         MOV A ,31H       
  22.         MOV B ,R0
  23.         MUL AB
  24.         ADD A ,R3;进位
  25.         MOV 31H ,A
  26. ;存储第三字节的进位
  27. ;此处三字节足够,犯不着判断来自
  28. ;第三字节是否进位
  29.         DJNZ R0 ,LOOP
  30. SJMP $       
  31. END
复制代码
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 05:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表