51单片机实验逆序存储汇编代码

实验目的:
(1) 熟练掌握循环程序设计的基本方法
(2) 熟练掌握单片机外部存储空间的访问方法

实验内容:

  1. 向起始地址为SRC的片内存储中,顺序写入NUM个单字节数(数值不限),并以$字符(ASCII码)结尾。
  2. 从SRC中,向起始地址为DEST的片外存储中,逆序拷贝之前存储的NUM个单字节数,并以$字符结尾。
  3. 将上述两个操作写成两个子程序。

运行结果截图:
打开memory窗口,输入D:0xXX即可查看内部数据RAM内容,输入X:0xXXXX即可查看外部数据RAM内容,输入C:0xXXXX即可查看程序存储器内容。在这里插入图片描述
片内RAM在这里插入图片描述
片外RAM

代码:
ORG 0000H
LJMP MAIN
ORG 2000H

MAIN:
SRC DATA 30H
DEST XDATA 2000H
NUM DATA 20H
MOV A,#01H
MOV R0,#SRC //保存SRC起始地址
MOV DPTR,#DEST //保存DEST起始地址
MOV R2,#NUM //保存字节数量
MOV R3,#NUM //存入片内或者片外RAM都要用,所以保存两次
ACALL SAVE
DEC R0 //SAVE子程序中R0最后多加了一次,要减一
ACALL RESAVE
SJMP $

SAVE: //向片内RAM存储
MOV @R0,A
INC R0
ADD A,#01H
DJNZ R2,SAVE
ret

RESAVE: //逆序向片外RAM存储
MOV A,@R0
DEC R0
MOVX @DPTR,A
INC DPTR
DJNZ R3,RESAVE
ret

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值