- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一
【实验目的】
熟悉仿真软件的使用,掌握调试程序的几种方法;
理解常用指令的作用;
熟悉几种典型的子程序编程
【实验内容】数据块传送程序的调试延时子程序的调试
二进制数转换十进制数子程序的调试
双字节无符号数加法程序调试(选作)【实验】
数据块传送程序的调试
实验程序
one:将十六进制数0-F存到RAM的30H-3FH地址单元中;
two:将RAM的30H-3FH地址单元中的数据传送到40H-4FH地址单元中。
源程序如下:
Addr1 equ 30h ;定义源数据起始地址
Addr2 equ 40h ;定义目的起始地址
Len equ 10h ;定义数据块长度
ORG 0000h ;指明程序的起始地址
one: ; 将十六进制数0-F存到RAM的30H-3FH地址单元中;
CLR A ;要传送的数据放A里,初始值为0
MOV R0, #addr1 ;R0为地址指针,初始指向30H
MOV R2, #Len ;R2是数据块的长度
Loop1: MOV @R0, A ;把A里的数据送R0指向的地址(调试时观察数据存储区30H-3FH里数
;据在执行指令前后的变化)
INC R0 ;修改地址指针
INC A ;修改A中的数据
DJNZ R, Loop1 ;控制循环次数(调试时观察R1里数据的变化,体会DJNZ指令的作用)
two: ; 将RAM的30H-3FH地址单元中的数据传送到40H-4FH地址单元中。
MOV R0, #addr1 ;R0 作为源数据地址指针,起始地址是30H
MOV R1, #addr2 ;R1作为目地地址指针,起始地址是40H
MOV R2, #len ;R2是数据块的长度
Loop2: MOV A , @R0 ;取源数据(调试时观察R0的间接寻址的作用)
MOV @R1, A ;源数据送目的地址单元(调试时观察R1的间接寻址的作用)
INC R0 ;修改源数据地址指针
INC R1 ;修改目的地址指针
DJNZ R2, Loop2 ;控制循环次数,调试时观察R2里数据的变化,体会DJNZ指令的作用
SJMP $ ;程序原地踏步
END ;程序结束
实验操作:
新建工程
单击桌面图标,打开uVision3程序,单击工程菜单下新建uVision3工程新建工程,弹出产生新工程对话框,如图1-所示。
图1- 新建工程
输入文件名,单击图1-2中保存按钮,选择单片机型号,Atmel/AT89S52。3所示
图1-3 选择单片机型号新建源文件
单击文件菜单下新建,新建源程序文件,在空白区输入源程序,单击工具栏中保存文件,保存文件时要手动添加文件扩展名为asm,如图1-4所示。
图1-4 文件
鼠标右键单击中源代码组1,在弹出的下拉菜单中选择添加文件到组源代码组1中,把刚保存的asm源程序文件添加到工程组中,如图1-5所示。注意路径及文件类型的修改。
图1-5 添加源代码程序
编译、连接调试
单击工程菜单下编译源程序文件(或单击工具栏中快捷按钮,其位置在第二行工具栏第一个),在输出窗口(Output Window)显示编译结果,如图1-6所示。
图1-6 输出窗口
单击进行连接,为单个源程序文件连接,为工程内所有源程序文件连接。连接的结果显示在输出窗口中。单击调试菜单下选择启动/停止调试开始程序调试(或单击工具栏中快捷按钮,其位置在第一行工具栏倒数第七个),
图1-7 调试界面
调试工具栏如图1-所示。
图1- 调试工具栏
打开各窗口查看机器码、各种存储器地址及内容
单击视图菜单打开反汇编窗口 ,如图1-所示,查看各条指令对应的机器码和存储地址。
图1- 反汇编窗口
单击视图菜单打开存储器窗口 ,如图1-所示,查看各存储器内的数值。
图1- 存储器窗口
程序主界面左边特殊寄存器数值,如图1-所示。
图1- 特殊寄存器窗口
根据反窗口记录从标号two到end之间的指令对应的机器码和存储地址于表1-1中。
表1-1
指令 机器代码 存储器地址 MOV
文档评论(0)