指令系统和汇编语言程序设计实验..docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

bcll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档