| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 943 人关注过本帖
标题:【请教】51汇编子程序的问题
只看楼主 加入收藏
小硕点
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-4
收藏
 问题点数:0 回复次数:1 
【请教】51汇编子程序的问题

我需要把四字节的BCD码转换为四字节的十六进制数。可是没有思路。下面是双字节的BCD码转换为双字节的十六进制数:
;标号: BH2 功能:双字节BCD码整数转换成双字节十六进制整数
; 入口条件:待转换的双字节BCD码整数在R2、R3中。
; 出口信息:转换后的双字节十六进制整数仍在R2、R3中。
; 影响资源:PSW、A、B、R2、R3、R4 堆栈需求: 4字节
BH2: MOV A,R3 ;;将低字节转换成十六进制
LCALL BCDH
MOV R3,A
MOV A,R2 ;;将高字节转换成十六进制
LCALL BCDH
MOV B,#100 ;;扩大一百倍
MUL AB
ADD A,R3 ;;和低字节按十六进制相加
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
RET
标号:BCDH 功能:单字节BCD码整数转换成单字节十六进制整数
; 入口条件:待转换的单字节BCD码整数在累加器A中。
; 出口信息:转换后的单字节十六进制整数仍在累加器A中。
; 影响资源:PSW、A、B、R4 堆栈需求: 2字节
BCDH: MOV B,#10H ;;分离十位和个位
DIV AB
MOV R4,B ;;暂存个位
MOV B,#10 ;;将十位转换成十六进制
MUL AB
ADD A,R4 ;;按十六进制加上个位
RET
我按照BH2的方法先将四个字节分别转换,再把第二字节×100+第三字节×128+第四字节×192 是错误的。请大家给个正确思路。

搜索更多相关主题的帖子: 子程序 字节 汇编 堆栈 十六进制 
2007-06-04 13:40
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
BCD码就是16进制数啊

2007-06-06 16:29
快速回复:【请教】51汇编子程序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013848 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved