C51单片机的压缩BCD码相加程序
2016-01-25 11:45
253 查看
设被加数 NA 及加数 NB 均为三字节压缩BCD码,分别存放于内部 RAM 的 20H~22H 及 30H~32H 单元中,低位在前,高位在后。
要求计算两数之和,并将和存放到内部 RAM 中 3FH~42H 单元,仍然是低位在前,高位在后。
编写完整的汇编语言源程序。
悬赏分:80 - 解决时间:2010-5-7 00:26
;----------------------------------------------------------------------
最佳答案:
;这个程序当然是楼主要求的C51单片机程序。
;下面增加一些调试时使用的数据。
ORG 0000H
MOV 20H, #12H ;假设被加数NA是563412
MOV 21H, #34H
MOV 22H, #56H
MOV 30H, #77H ;假设加数NB是998877
MOV 31H, #88H
MOV 32H, #99H
LCALL ADD3B ;调用3字节加法子程序
SJMP $ ;相加结束,暂停,此时可以观察到和的数值:1562289
;-----------------------------------------------
; 3字节加法子程序如下:
;相加数字的字节数不多,地址且有三个,故不用循环结构
ADD3B:
MOV A, 20H
ADD A, 30H
DA A
MOV 3FH, A
MOV A, 21H
ADDC A, 31H
DA A
MOV 40H, A
MOV A, 22H
ADDC A, 32H
DA A
MOV 41H, A
MOV A, #0
ADDC A, #0
MOV 42H, A
RET
回答者: 做而论道 - 十三级 2010-5-6 17:52
提问者对于答案的评价:thanks
原题网址:http://zhidao.baidu.com/question/151360024.html
================================================
其他回答共 3 条
------------------------------------------------
楼上厉害,完全bingo 。
------------------------------------------------
一楼写的是51的程序吗?怎 么看起来像8086的程序?
回答者: jingmingxie - 六级 2010-5-6 14:08
------------------------------------------------
汇编我也是刚学一楼写的感觉是对的。
回答者: ----------- - 四级 2010-5-6 15:46
================================================
呵呵,有人好像懂的很多,但是却弄混了。
要求计算两数之和,并将和存放到内部 RAM 中 3FH~42H 单元,仍然是低位在前,高位在后。
编写完整的汇编语言源程序。
悬赏分:80 - 解决时间:2010-5-7 00:26
;----------------------------------------------------------------------
最佳答案:
;这个程序当然是楼主要求的C51单片机程序。
;下面增加一些调试时使用的数据。
ORG 0000H
MOV 20H, #12H ;假设被加数NA是563412
MOV 21H, #34H
MOV 22H, #56H
MOV 30H, #77H ;假设加数NB是998877
MOV 31H, #88H
MOV 32H, #99H
LCALL ADD3B ;调用3字节加法子程序
SJMP $ ;相加结束,暂停,此时可以观察到和的数值:1562289
;-----------------------------------------------
; 3字节加法子程序如下:
;相加数字的字节数不多,地址且有三个,故不用循环结构
ADD3B:
MOV A, 20H
ADD A, 30H
DA A
MOV 3FH, A
MOV A, 21H
ADDC A, 31H
DA A
MOV 40H, A
MOV A, 22H
ADDC A, 32H
DA A
MOV 41H, A
MOV A, #0
ADDC A, #0
MOV 42H, A
RET
回答者: 做而论道 - 十三级 2010-5-6 17:52
提问者对于答案的评价:thanks
原题网址:http://zhidao.baidu.com/question/151360024.html
================================================
其他回答共 3 条
------------------------------------------------
楼上厉害,完全bingo 。
------------------------------------------------
一楼写的是51的程序吗?怎 么看起来像8086的程序?
回答者: jingmingxie - 六级 2010-5-6 14:08
------------------------------------------------
汇编我也是刚学一楼写的感觉是对的。
回答者: ----------- - 四级 2010-5-6 15:46
================================================
呵呵,有人好像懂的很多,但是却弄混了。
相关文章推荐
- C语言编程:密码解密
- C语言编程:大小写互换
- c语言编程:字符串反序并输出
- 想跟着 Google 首席科学家免费进阶机器学习吗
- 51单片机查表指令的用法
- Android学习 之 ColorStateList按钮文字变色
- C++中的单例模式
- 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc
- MySQL实现统计数据并插入数据的存储过程
- zookeeper如何永久监听
- sublime 搭建 C++ 开发环境
- 串行通信控制
- 按键控制显示
- 九度OJ 题目1043:Day of Week
- 春天里
- 基于51单片机的脉搏测量仪
- 复合键在4×4 矩阵式键盘中的应用方法
- MyEclipse开发REST Web Service
- 单片机C语言编程:按键、计数及显示
- Java关键字transient和volatile小结