C51 汇编语言计算1到100的和并保存至高128字节(keil5仿真)

     这学期刚好在学习单片机微机原理这门课程,本身也是从小白的状态出发,通过完成规定的实验来锻炼一下实操水平,在这里也记录一下自己练习的过程。

     首先是,从1加到100,求和值为5050,肯定不能一个字节(8位二进制)来表示,那么也就是需要两个字节来记录,一个记录高位,一个保留低位,(R4代表加数,R6代表低位,R7代表高位)也就是需要编写一个子程序来实现:

     那么当最关键的一步完成之后,后续就是编辑循环程序来不断的调用子程序来达到累加的目的,可以利用CJNE 条件转移指令来实现循环调用:

        构建好上述循环和加法子程序后,其实程序就可以运行了(默认不赋值的话那寄存器上数字就为零),但也可以通过构建一个主程序来给HB,LB,LP来赋值:

完成上述之后就可以在30H和31H得到答案,但是实验任务还额外要求了需要将数据保存到高128字节上,利用直接寻址的方式只能在低128字节操作,所以可以利用寄存器间接寻址来访问高128字节:​​​​​​​

至此即完成了(上述指令放置loop循环判定CJNE下面即可将最终数据保存好),此文参考了【C51 汇编和C语言编写从1加到100 - CSDN App】http://t.csdnimg.cn/TX0yE内容,感谢

ps:使用keil5进行仿真时,需要首先进行编译,其次点击debug进行查看,run结束后可以在memory中查看自己目标地址是否保存好数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值