.专业整理.
MOV R0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
CLR C
ADDC A,R0
MOV 30H,A ;将运算结果的低位存入片地址为 30H 的单元
MOV DPTR,#2000H
MOVX A,@DPTR
MOV R0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
ADDC A,R0
MOV 31H,A ;将运算结果的高位存入片地址为 31H 的单元
END
程序运行结果:
0506H 和 CDEFH 已存入片外单元,运算结果 D2F5 已存入 30H 和 31H 中。
四、思考题
1. 如何将存储块的容置成某固定值(例全填充为 0FFH)?请用户修改程序,完成此操作。
答:将源程序中的 MOV A, #01H 改为 MOV A,#0FFH 即可。
2. 若源块地址和目标地址有重叠,该如何避免?
答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址
均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。
五、心得体会
本次实验我学会了数据块的移动和赋值。片数据的移动和计算比较简便,涉及到片外数
据的计算时要增加移动到片的步骤。当数据需要进行保护时可以设定数据暂存区。
本实验微机原理的第一个实验,刚开始编程时有一点困难。我体会到了汇编语言的特点。与
其他语言相比,它不仅要求良好的逻辑能力,而且要求编程者有较好的硬件知识。比如本次
实验中,一开始我的编译一直报错,原来是将 MOVX A,@DPTR 指令错写成了 MOV A,@DPTR。
MOV 指令用于部 RAM 数据传送,而 MOV 用于外部数据传送。我体会到只有充分了解单片机的
硬件结构,才能使用正确的指令,让编程正确无误的进行。这也是我今后要加强学习的重点。
实验二 数值转换实验
一、实验目的
1、 熟悉 Keil 集成调试环境和汇编程序的调试方法。
.学习帮手.
评论0
最新资源