找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3027|回复: 4
打印 上一主题 下一主题
收起左侧

单片机汇编编程时累加超过255怎么办?

[复制链接]
跳转到指定楼层
楼主
ID:621965 发表于 2020-3-27 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,初学单片机,现在这个时间因为xx网上教学,云学习真的是一头雾水。
一道汇编编程题,求1+2+3+……+100的十进制和,存入RAM的高128位区。
我之前求和使用的累加器A和ADD指令,然后DA A修正得到BCD码,但是这道题发现A只能存储8位数据,这个累加已经超过了255(8位),需要16位的来存储,这个时候不能用累加器A,ADD指令也用不了,该怎样累加呢?DPTR可以吗?应该怎样使用呢?累加时还是否再需要修正?
希望有大佬能尽快给单片机萌新提供一下思路,【膜拜大佬】.JPG


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:282850 发表于 2020-3-27 15:26 | 只看该作者
汇编不懂,但用非汇编写过“n!”,累乘到"5000!"
原理是拆分数据,你可以8位一个数,整个数由多个8位组成。
回复

使用道具 举报

板凳
ID:401564 发表于 2020-3-27 15:49 | 只看该作者
从1+到100,结果是要用两个地址来存放在,一个用来存放低位,一个用来存放高位数据
请参考:
                                CLR                C                                ;
                                MOV                A,DATA_L                ;
                                ADD                A,#001H                        ;低位加1
                                MOV                DATA_L,A                ;
                                MOV                A,DATA_H                ;
                                ADDC        A,#000H                        ;高位带进位加0
                                MOV                DATA_H,A                ;

上面就是加1的运算

评分

参与人数 1黑币 +5 收起 理由
cjh1939767444 + 5

查看全部评分

回复

使用道具 举报

地板
ID:323774 发表于 2020-3-27 16:13 | 只看该作者
利用溢出跳转跳转指令,加入循环即可实现
回复

使用道具 举报

5#
ID:697917 发表于 2020-3-27 16:43 | 只看该作者
ADDC啊   带进位标志位的累加。。。你需要再复习一下汇编了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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