- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《汇编语言程序设计》创新实验指导书_1646_1637_20090413093141
《汇编语言程序设计》实验指导书
Project Guidebook for Assembly Programming
计算机与信息技术学院
5
实验二 汇编语言分支、循环程序实验 12
实验三 汇编语言子程序实验 16
实验四 汇编语言中断程序实验 27
实验五 汇编语言输入输出程序实验 34
《汇编语言程序设计》实验指导书
Project Guidebook for Assembly Programming
总实验时数:16实验简介:《汇编语言程序设计》是大学本科计算机专业学生的一门核心课程,学习汇编语言的意义在于对计算机基本原理的理解和掌握,为今后学习和实践活动奠定坚实的理论基础
该课程具有很强的实践性课程实验尤为重要,所以开汇编语言实验课程。
汇编语言实验课程注重以下特点:强调学生对计算机基本原理的理解与运用,体现计算机软硬件间的互动关系,在实验中学习掌握新知识,熟练掌握程序调试的方法和技巧。汇编语言实验课程在学习《汇编语言程序设计》课程基础之上开设,以学生上机实践为主,辅助少量教师讲授。
在实验课上,任课教师要加强对学生的管理,使学生自行、独立地进行编程实践。
汇编语言实验课程学生成绩考评,以编程实验能力、实验结果的正确性和对程序理解能力为主,鼓励学生自编程序、改进程序设计的思路、方法等,鼓励学生使用多种程序调试工具。
实验一 基本指令实验程序
实验时数:2时 实验类型:验证型
实验对象:计算机专业本科生
应具备的基础:已学习过汇编语言程序设计实验组数以及每组人数:实验以学生班(30人左右)为单位划分成组,每个学生独立完成实验,学生可相互研讨实验中所遇到的问题。
实验平台:IBM-PC兼容计算机,安装Windows操作系统。
实验目的
(1)进一步学习汇编语言基本指令使用方法;
(2)学习DEBUG调试工具的基本使用方法;
(3)逐条观察程序指令的执行过程,理解指令的功能(重点)。实验步骤
(1)启动计算机的WINDOWS操作系统,运行DEBUG程序。
方法1:在开始菜单中找到“运行”,输入“cmd”后确定,启动ms-dos程序,再在该程序内输入“DEBUG”并按回车,即启动DEBUG调试程序。
方法2:在开始菜单中找到“运行”,输入“DEBUG”后确定,即启动DEBUG调试程序。
(2)使用DEBUG命令
命令说明 命令名 举例 汇编命令,用于输入汇编指令 A [address] A 读出从某地址起的一段内存中的数据 D [range] D DS:0 向某地址起的内存中写入数据 E address [list] E DS:0 执行指定地址范围内的一段程序 G [=address] [addresses] G=0 5 显示寄存器中的数据 R [register] R 执行一条指令 T [=address] [value] T 将指定地址范围内的一段程序反汇编 U [range] U 推出DEBUG程序 Q Q DEBUG程序DEBUG程序(3) 开始编程
方法1:在debug中输入a命令,并回车。显示出的地址是当前指令代码所存放的地址。接着,逐条有序地输入汇编指令,直接回车即可结束程序指令的输入过程。
如修改程序,则先确定错误指令的地址,再使用“a 地址号”命令修改。注意,修改前后指令长度如发生改变,会对该指令以后的指令码的存储造成影响,使程序不能正确执行。方法2:将事先已经准备好的可执行程序(.exe文件)装入存储器,使用如下命令:debug 文件名.exe。.exe必须写全,否则找不到程序文件,为什么?)
(4)程序调试过程
使用u命令将程序反汇编,观察其汇编指令的与源程序的对应关系,观察每一条指令的代码、存放地址、指令代码长度等;(重)
使用r命令读出各寄存器中的数值,从CS:IP寄存器中的数值确定程序当前应执行的指令;()
察看当前指令的长度、指令代码、指令功能、操作数的寻址方式、所涉及的寄存器和存储器中的数值;
使用d命令读出所关注的存储器中的数值,并计算其地址顺序;
使用t命令执行该指令,察看指令执行后相关存储器和存储器中的数值,察看标志位寄存器的变化情况,判断指令执行后的计算结果是否正确?如遇到条件转移指令时要判断是否转移,转移或不转移时下一条指令的地址是什么?(重)
使用e命令读出、修改存储器中的相关数据,可重新执行相关计算指令,再观察结果。
使用g命令可以执行一段程序,相当于设置“断点”执行。()
实验要求
逐条执行实验所用汇编语言小程序中的指令,每执行一条指令都要观察:
(1)CS:IP寄存器中的数值,看其指向哪条指令,该指令的长度如何?指令代码如何?
(2)观察其它各寄存器的数值变化,获悉指令的执行结果。
(3)观察每条指令执行后,标志位寄存器的数值变化
文档评论(0)