搜索
bottom↓
回复: 5

无符号二进制数转换为BCD,为什么在CUNFANG函数里要INC R1 3次?

[复制链接]

出0入0汤圆

发表于 2015-1-16 21:39:28 | 显示全部楼层 |阅读模式
  1. ;=================================
  2. ;双字节无符号二进制数转换成BCD形式
  3. ;入口参数:双字节无符号二进制数地址放在R0中
  4. ;                        存放转结果的地址放在R1中
  5. ;===================================

  6.                 ORG                0000H
  7.                 AJMP        START
  8.                 ORG                0100H

  9. START:        MOV                SP,                #60H
  10.                 MOV                R1,                #25H
  11.                 MOV                R0,                #20H
  12.                 MOV                @R0,        #0FFH                   ;赋初值(低8位)
  13.                 INC                R0
  14.                 MOV                @R0,        #0FFH
  15.                 ACALL        DW_BCD
  16.                 AJMP        $

  17. DW_BCD:        DEC                R0       
  18.                 MOV                A,                R0                        ;保护地址20H,和25H
  19.                 MOV                R6,                A
  20.                 MOV                A,                R1
  21.                 MOV                R7,                A

  22.                 MOV                R2,                #3
  23. CLEAR:        CLR                A
  24.                 MOV                @R1,        A
  25.                 INC                R1
  26.                 DJNZ        R2,                CLEAR

  27.                 MOV                R3,                #16
  28.                 CLR                C
  29. YIWEI:        MOV                A,                R6
  30.                 MOV                R0,                A
  31.                 MOV                A,                @R0
  32.                 RLC                A
  33.                 MOV                @R0,        A
  34.                 INC                R0                                                ;(R0)=21H
  35.                 MOV                A,                @R0                                ;高8位开始左移一位
  36.                 RLC                A                                                ;高8位的移动带上了低8位左移时的CY位。
  37.                 MOV                @R0,        A                               

  38.                 MOV                R2,                #3
  39.                 MOV                A,                R7
  40.                 MOV                R1,                A
  41. CUNFANG:MOV                A,                @R1                                ;不解就在这里???????????????
  42.                 ADDC        A,                @R1
  43.                 DA                A
  44.                 MOV                @R1,        A
  45.                 INC                R1
  46.                 DJNZ        R2,                CUNFANG
  47.                 DJNZ        R3,                YIWEI
  48.                 RET

  49.                 END
复制代码


代码来源:百度文库

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2015-1-16 21:51:26 | 显示全部楼层
还是C比较吃香,ASM无人问津喽。

出0入0汤圆

 楼主| 发表于 2015-1-16 21:52:41 | 显示全部楼层
sidu320 发表于 2015-1-16 21:51
还是C比较吃香,ASM无人问津喽。

若是这汇编代码短一些或许会用人帮忙解决问题了。
嗯,应该是这样的!

出0入0汤圆

 楼主| 发表于 2015-1-16 22:01:03 | 显示全部楼层
我就是个逗比,不INC R13次,16位的二进制数(0~65535),怎么放的下最大的那个数!
也会因为弄懂一丢点问题而沾沾自喜!DA
嗯,我看出来了你的沾沾自喜,逗比。

出0入0汤圆

发表于 2015-1-16 22:15:42 | 显示全部楼层
本帖最后由 liufabing 于 2015-1-16 22:21 编辑

IN:     0xff ff (2 byte)
OUT: 0x06 55 35 (3 byte)
你计算的时候用R1做指针,需要对输出的高中低3个字节计算.

这程序不是你写的?

---------------------------------------------编辑分割线------------------------------------------------------
DJNZ        R2,                CUNFANG
太久没用,不清楚DJNZ是否会影响C标志位.

出0入0汤圆

 楼主| 发表于 2015-1-16 23:13:20 | 显示全部楼层
liufabing 发表于 2015-1-16 22:15
IN:     0xff ff (2 byte)
OUT: 0x06 55 35 (3 byte)
你计算的时候用R1做指针,需要对输出的高中低3个字节计 ...

很明显不是我写的,谢谢你的解释。DJNZ不影响标志位的。CJNE才会影响。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-23 10:39

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

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