- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--
-
第 二 章 指令系统和汇编语言程序设计实验
本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的
方法 , 目的在于通过这些实验可以使学生巩固所学知识 , 加深对 MCS-51 单片机内部结构、 指令系 统的理解 ,更进一步掌握汇编语言程序设计的方法和技巧。
第一节 指令系统实验
实 验 一 熟 悉 键 盘 操 作 及 数 传 指 令 编 程 设 计
一、实验目的
1.熟悉软件模拟调试的环境及键盘操作。
2.掌握汇编语言程序设计的方法 ,加深对指令的理解。
3.学会软件模拟调试和察看修改观察项的方法。
二、 实 验内容
印证数据传送指令的功能、寻址方式以及 PC 指针、 SP 指针、 DPTR 指针、
Ri 指针分别 对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
三、 实验步骤
1.进入调试软件环境 ,输入源程序 ;
2.汇编源程序 ;
3.用单步方式运行程序 ;
4.检查并记录各寄存器和存储单元内容的变化。
四、程序清单
内部 RAM 数据传送
需要查看的数据有 30H,31H,A,R0 等。
ORG 0000H
MOV R0,#30H
MOV 30H,#45H
MOV 31H,#46H
MOV R2,30H
MOV 02H,31H
MOV A,#87H
MOV 0E0H,30H
MOV 30H,A
MOV 31H,@R0
SJMP $
END
外部数据传送
需要查看的数据有外部数据存储器单元 2000H ,外部程序存储器单元 2001H 。
ORG 0000H
MOV A,#89H
MOV DPTR,#2000H
MOVX @DPTR,A
INC DPTR
CLR A
MOVC A,@A+DPTR
SJMP $
ORG 2000H
DB 44H
DB 78H
DB 67H
END
堆栈操作
需要查看的数据有 50H 、 51H 、 A 及 SP 指针和堆栈区中数据随 PUSH 和
POP 指令执行后 的变化情况和数据的存放次序等。
可用于保护现场和恢复现场的程序
ORG 0000H
MOV SP,#5FH
MOV 50H,#3BH
MOV 51H,#2FH
MOV A,#12H
PUSH 50H
PUSH 51H
PUSH ACC
POP 0E0H
POP 51H
POP 50H
SJMP $
END
可用于数据交换的程序
ORG 0100H
MOV SP,#6FH
MOV 50H,#3BH
MOV 51H,#2FH
PUSH 50H
PUSH 51H
POP 50H
POP 51H
SJMP $
END
数据交换
记录每条指令运行后的结果 ,从而加深对各种不同的交换指令的理解。 ORG
0000H
MOV A,#58H
SWAP A
MOV 40H,A
MOV A,#30H
MOV R0,#30H
MOV @R0,#09H
XCHD A,@R0
MOV 50H,#1
MOV A,#89H
XCH A,50H
MOV R7,#3
XCH A,R7
XCH A,@R0
SJMP $
END
五、思考题
1.寄存器寻址与寄存器间接寻址有什么区别 ?
PC 指针与 SP 指针有什么区别 ?
DPTR 指针与 Ri (R0, R1 指针有什么区别 ? 4.立即寻址与直接寻址有什么区别 ?
同一个特殊功能寄存器不同表达形式。
实 验 二 数 传 指 令 和 算 数 运 算 指 令 编 程 设 计
一、实验目的
1.掌握数据块的传送操作和算术运算指令的应用。
2.进一步掌握汇编语言设计和调试方法。
3.掌握观察窗口的使用方法。
4.学会给存储单元赋初值的方法。
二、 实 验内容
数据区传送
(1 把内部 RAM 40H~4FH 置初值 0A0H ~0AFH ;
(2 而后把 40H ~4FH 内容传送到外部 RAM 9800H~980FH 中;
(3 再把 9800~980FH 内容传送到 50H~5FH 中。
2.多字节十进制加法
加数放在 30H 开始的单元中 (最低位放在 30H ,按从小到大的顺序存放 ,被加数和结 果存放在 20H 开始的单元 (最低位在 20H 中 ,字节数放在 2FH 中,最高进位位放在 7FH 中的最低位。
三、实验步骤
1.分别用单步和连续运行方式 ,调试上述两个程序 ;
2.在执行第二个程序之前 ,给被加数和加数单元赋初值 ;
3.在观察窗口中观察结果。
四、实验程序清单
数据块传送程序 : ORG 0000H
MAIN: MOV R0, #40H MOV R2, #10H MOV A, #0A0H
A1: MOV @R0, A INC R0
INC A
DJNZ R2, A1 MOV R0, #40H MOV DPTR, #9800H
MOV
文档评论(0)