实验三 传送指令编程调试
一.实验目的
掌握MCS-51指令系统传送指令的汇编语言程序设计和调试方法;
熟悉用IBM-PC交叉汇编调试软件MBUG机器汇编及ME-5103在线仿真器调试。
二.实验设备
ME-5103在线仿真器1台;
IBM-PC微机1台;
直流稳压电源1台。
三.实验内容
1.编写多字节数据的传送程序, 把内部RAM的30H--37H单元置为10H-17H,然后传送到外部的RAM的0100H--0107H单元;再将0100H--0107H单元逐一求反后送到内部RAM的30H--37H单元。
2.程序结构采用循环结构
程序用R0作内部RAM指针,用DPTR作外部RAM指针,R7作为计数初值N,本实验N=8。
3.用文本编辑软件如EDIT编写源程序,用IBM-PC交叉汇编和调试软件MBUG对程序进行汇编,产生目标代码文件,文件的类别为HEX及调试。
4.参考程序
地址 机器码 源程序 注释
ORG 0000H
0000H 0130 START: AJMP MAIN ;转入程序
ORG 0030H
;内部RAM传送到外部RAM
0030H 7830 MAIN: MOV R0,#30H ;指向低字节
MOV DPTR,#0100H
MOV R7,#08H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOOP
;外部RAM逐一求反传送到内部RAM
MOV R0,#38H
MOV DPTR,#0100H
MOV R7,#08H
LOOP1: MOVX A,@DPTR
CPL A ;求反
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,LOOP1
HERE: AJMP HERE ;程序结束
4.用ME-5103仿真机或和IBM-PC联机软件MBUG调试
编辑好源程序,通过汇编后,将目标程序装入ME-5103仿真机,分别用ME-5103仿真机和IBM-PC查看已装好的程序。
用单步执行或断点连续执行,记下执行指令后表格中相应寄存器的数值:
执行指令
A
R0
DPTR
R7
MOV R7,#08H
第一次循环
MOV A,@R0
第二次循环
MOV A,@R0
第三次循环
MOV A,@R0
第四次循环
MOV A,@R0
第五次循环
MOV A,@R0
第六次循环
MOV A,@R0
第七次循环
MOV A,@R0
第八次循环
MOV A,@R0
第一次循环
MOVX @DPTR,A
第二次循环
MOVX @DPTR,A
第三次循环
MOVX @DPTR,A
第四次循环
MOVX @DPTR,A
第五次循环
MOVX @DPTR,A
第六次循环
MOVX @DPTR,A
第七次循环
MOVX @DPTR,A
第八次循环
MOVX @DPTR,A
(3) 同时观察相关存储器的变化情况,记录结果。
四.实验报告
1.写出本程序调试过程和运行结果.
2.本程序如何修改为内部RAM的30H--37H单元传送到内部RAM的38H—3FH单元并调试,写出过程和运行结果.
3.如何修改程序,可把外部RAM的0100H—010FH单元传送到外部RAM的0110-011FH单元并调试,写出过程和运行结果.
4.如把外部ROM的0100H—010FH单元传送到内部RAM的30H-3FH单元,写出过程和运行结果.