本科-汇编实验教案(8学时)

上传人:xian****hua 文档编号:158422242 上传时间:2022-10-04 格式:DOC 页数:22 大小:404.51KB
收藏 版权申诉 举报 下载
本科-汇编实验教案(8学时)_第1页
第1页 / 共22页
本科-汇编实验教案(8学时)_第2页
第2页 / 共22页
本科-汇编实验教案(8学时)_第3页
第3页 / 共22页
资源描述:

《本科-汇编实验教案(8学时)》由会员分享,可在线阅读,更多相关《本科-汇编实验教案(8学时)(22页珍藏版)》请在装配图网上搜索。

1、 攀枝花学院 Panzhihua University教 案2011 2012学年度第 一 学期课 程 名 称 汇编语言课程实验 学 时(学 分) 8学时(0.5学分) 适 用 班 级 授 课 教 师 教 师 职 务 教 学 单 位 计算机学院 教 务 处 制实验教案(首页)实验课程名称汇编语言课程实验实验学时8独立设课 非独立设课实验课类别1.基础 2.专业基础 3.专业 4.其它任课教师职称授课对象年级: 专业: 班级:本科专科教材和主要参考资料1汇编语言程序设计.张志明.重庆大学出版社.19972IBM-PC汇编语言及程序设计实验教程.沈美明.清华大学出版社.20013汇编语言程序设计.

2、吴向军.高等教育出版社. 20024IBM-PC汇编语言及程序设计.沈美明.清华大学出版社.20015汇编语言程序设计. 钱晓捷.电子工业出版社. 2000教学目的和教学要求本课程是计算机科学与技术专业的专业基础课程汇编语言的实验课,是汇编语言课程的重要组成部分。学生通过编写源程序、汇编、连接、运行程序以及跟踪、调试程序的上机实验在能深入理解微型计算机的运行控制机制和存储器分配等基本原理,真正掌握汇编语言程序设计的基本技能,为后继课程的学习和实际应用能力的提高打下坚实的基础。教学重点和教学难点教学重点:实验的原理、方法及masm、debug等软件工具的使用。教学难点:具体实验步骤(算法设计与实

3、现)和结果分析、处理(程序调试)。教学进程安排课次实验项目(实验内容)学时备 注1DEBUG编程与调试22分支程序设计实验23循环程序设计实验24用汇编语言实现学生成绩统计分析2实 验 教 案课题(项目)名称: DEBUG编程与调试计划学时: 2学时 实验类型: 1.演示性 2.验证性 3.综合性 4.设计性 5.其它授课日期: 年 月 日 第 周 星期 第 节实验目的:1、掌握DEBUG常用命令。2、掌握汇编语言程序的一般格式3、掌握使用masm编译和连接汇编语言程序。4、学习如何用debug进行程序调试实验设备:1、硬件环境微型计算机(Intel x86系列CPU)一台2、软件环境Wind

4、ows98/2000/XP操作系统、调试程序DEBUG.EXE。实验内容:一、DEBUG程序的调用 1、打开windows命令窗口打开windows命令窗口的步骤:选择“开始”运行”(1) 在windows98/xp环境中,输入“command”命令;(2) 在windows2000环境中,输入“cmd”命令;2、启动debug在命令窗口中启动DEBUG,可键入命令:DEBUG 文件名 参数在DEBUG启动成功后,将出现提示符“-”,此时就可用DEBUG命令来调试程序。 关于使用命令的几点说明:l 命令是单个字母l 出现提示符“-”后才能输入命令,在按“回车”键后,该命令才开始执行。l DEB

5、UG把键入的数字均看成十六进制数 二、DEBUG的主要命令 1显示与修改寄存器1)r寄存器名 功能:显示和修改寄存器内容例:-r ;显示 所有寄存器的内容-r ax;显示和修改某个寄存器内容 2)rf 功能:显示和修改标志位2、 显示与修改寄存器存储单元1)d范围功能:显示指定范围内的内存单元内容。其中范围的格式:d 起始位置从开始位置显示128个字节的内容例:d 1381:100说明:l xxxx:yyyy前面4位十六进制数是内存单元的段地址,后面4位十六进制数是内存单元的偏移量;l 中间显示区域是内存单元 (十六进制的形式),每行显示16个字节的内容;l 右边以“字符”显示内存单元值。d

6、起始位置结束位置从开始位置显示到结束位置例:d ds:0 fd 起始位置L长度从从开始位置显示指定长度的内容例:d ds:0 L 102) e地址 字节值表功能:用值表中的值替换从“地址”开始的内存单元内容例:d 1af5:0e 1af5:012 34 56 d 1af5:0 f范围 字节值表功能:用值表中的值填充指定范围的内存单元内容,其中范围通常是1)中的后两种格式。例:d 1af5:0100f 1af5:0100 l 20 1 2 3 4 5d 1af5:0100d 1af5:0f 1af5:0 f abcdefd 1af5:03编程与调试命令1) a地址功能:输入汇编指令例:e ds

7、:200 abcd$;从地址ds:200输入字符串abcd,以$为结束字符.d ds:200 a 100输入以下命令mov dx,200mov ah,9int 21 ;调用9号功能显示“字符串”。“字符串”的起始地址为ds:200int 20 ;结束程序2)u范围 功能:反汇编,显示机器码所对应的汇编指令例:u 1003)g=起始地址 断点地址功能:从当前地点开始执行,到终点结束l 如未指定起始地址则从当前的cs:ip指示的地址开始执行。l 如未指定断点地址,到终点结束。例:g = 100 ;显示字符“abcd”4)t=地址 正整数 功能:跟踪执行。从指定地址开始执行正整数条指令,若缺省正整数

8、,表示执行一条指令,若两项都缺省,表示从当前CS:IP指示地址开始执行一条指令。5)P命令p=地址 正整数 功能:其使用方式与t命令相同,但不进入子程序调用或软中断例:p=100pp三、汇编语言程序上机过程。1、 建立汇编语言程序源文件。可使用任何一个文本编辑器(如EDIT.com,写字板,word软件)编辑源文件,源文件的扩展名通常取为.asm。例:在屏幕上显示字符串hello, world.参考实例:stack1 segment stack;dw 256 dup(?)stack1 ends data1 segment msg db hello,word$data1 ends code1 s

9、egment assume cs:code1,ds:data1,ss:stack1start:mov ax,data1mov ds,ax mov dx,offset msgmov ah,9int 21hmov ah,4ch int 21h;终止程序的执行,返回doscode1 ends end start2 、汇编源文件,形成目标文件。1) 打开windows命令窗口(参见实验一)2) 进入masm程序的安装目录。(通常为 c:masm)例:cd c:masm ;cd命令为dos操作系统的命令3) 汇编文件在dos命令窗口中可键入命令:masm 若无错,则形成.OBJ目标文件和.LST列表文件

10、。可用Dir命令(dos操作系统的命令)查看。4) 列表文件的使用列表文件可以用文本编辑器打开。若源文件有语法错误,据错误提示(可以在列表文件中查找),返回步骤1,修改源文件。下面给出列表文件实例:0000stack1 segment stack 0000 0100dw 256 dup(?) ? 0200stack1 ends 0000data1 segment 0000 68 65 6C 6C 6F 2C 77msg db hello,world.$ 数据段段名不一致 6F 72 6C 64 2E 24datt1 ends t2.ASM(7): error A2000: Block nest

11、ing error 0000code1 segment code assume cs:code1,ds:data1,ss:stack1 0000start: 0000 B8 - Rmov ax,data1 0003 8E D8mov ds,ax 0005 BA 0000 Rmov dx,offset msg 0008 B4 09mov ah,9 操作数类型不一致 000A CD 21int 21h 000C B4 00mov ah,4c00h t2.ASM(16): error A2050: Value out of range 000E CD 21int 21h 0010code1 ends

12、 end start Segments and Groups: N a m e Length AlignCombine ClassCODE1 . . . . . . . . . . . . . 0010PARANONECODEDATA1 . . . . . . . . . . . . . 000DPARANONESTACK1 . . . . . . . . . . . . . 0200PARASTACKSymbols: N a m e Type Value AttrMSG . . . . . . . . . . . . . . L BYTE0000DATA1START . . . . . .

13、. . . . . . . L NEAR0000CODE1FILENAME . . . . . . . . . . . TEXT t2 19 Source Lines 19 Total Lines 8 Symbols 50254 + 416098 Bytes symbol space free 0 Warning Errors 3 Severe Errors三、形成可执行文件。在dos命令窗口中可键入命令:LINK 若有错,据错误提示,返回步骤1,修改错误。若无错,则形成.EXE可执行文件。可用Dir命令(dos操作系统的命令)查看。四、运行程序在命令窗口中键入可执行文件名,即可执行该程序。五

14、、调试程序运行结果不对,需调试程序,查找原因。1) 返回步骤1查看源文件,查找错误,修改源文件。2) 若无法通过查看源文件找出错误,可在DEBUG下调试.EXE文件,找出错误之处,再返回步骤1。用debug调试可执行程序如下: 启动debug, 同时装入可执行文件。Debug 可执行文件名 查看程序。U cs:0 ;代码段由系统自动初始化,段地址在cs,起始偏移量在ip与源程序对照可知,程序 装入后,数据段data1的段地址为13fd。先用D命令查看偏移量为0开始的13个单元,即字符串msg的内容。 运行程序。可用G、P、T命令。实验报告要求:1、实验目的和实验内容。2、简述debug的常用命

15、令R、D、E、A、U、T、P、G的功能。(举例说明)3、汇编、连接、调试时产生的错误,其原因及解决办法。实 验 教 案课题(项目)名称: 分支程序设计实验计划学时: 2学时 实验类型: 1.演示性 2.验证性 3.综合性 4.设计性 5.其它授课日期: 年 月 日 第 周 星期 第 节实验目的:1、掌握分支程序的一般结构和设计方法。2、掌握地址表法多分支程序设计的方法。实验设备:1、硬件环境微型计算机(Intel x86系列CPU)一台2、软件环境Windows98/2000/XP操作系统。文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.

16、EXE,调试程序建议使用DEBUG.EXE。实验步骤:1、建立汇编语言程序源文件。可使用任何一个文本编辑器(如EDIT.com,写字板,word软件)编辑源文件,源文件的扩展名通常取为.asm。2、汇编源文件,形成目标文件。若有错,据错误提示,返回步骤(1)修改错误;若无错,则形成.OBJ目标文件和.LST列表文件。可用Dir命令(dos操作系统的命令)查看。3、形成可执行文件。若有错,据错误提示,返回步骤(1)修改错误。若无错,则形成.EXE可执行文件。可用Dir命令(dos操作系统的命令)查看。4、运行程序在命令窗口中键入可执行文件名,即可执行该程序。5、调试程序运行结果不对,需调试程序,

17、查找原因。l 返回步骤(1)查看源文件,查找错误,修改源文件。l 若无法通过查看源文件找出错误,可在DEBUG下调试.EXE文件,找出错误之处,再返回步骤(1)。实验内容:1、 编写一程序段,完成下面计算公式,其中变量x、y是字类型。Y=X+10 x0要求:l 输入源程序,汇编、连接直到没有错误。l 进入debug,运行程序,查看运行后y的值是否正确。l 改变x的值(要求测试每一个分支),再运行程序,查看y运行结果是否正确。2、假设内存单元有三个字a、b、c,编写一个程序可判断它们是否能构成一个三角形,若能,输出“yes”,否则,输出 “no”。要求:l 输入源程序,汇编、连接直到没有错误。l

18、 进入debug,改变a、b、c的值,再运行程序,查看运行结果是否正确。3、编写一个有8个选项的菜单程序,当选中17项中的任意一项时,在屏幕上显示出相应的星期一到星期日的英文单词,选中0项时退出程序。实验报告要求:实验报告要求书写整齐,步骤完整,实验报告格式如下:1、实验目的2、实验设备3、实验步骤(方法)4、实验内容1) 说明程序的功能、结构,画出程序框图。2) 写出源程序清单(加适当的注释)。3) 调试说明。包括上机调试的情况、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。5、实验结果(结论)参考实例1、data1 segment x dw 9 y dw

19、?data1 endscode1 segmentassume cs:code1,ds:data1start: mov ax,data1 mov ds,ax mov ax,x cmp ax,0 jge case23 add ax,10 jmp resultcase23: cmp ax,10 jg case3 mov bx,30 imul bx jmp resultcase3: sub ax,9result: mov y,ax mov ah,4ch int 21hcode1 ends end startl 输入源程序,汇编、连接直到没有错误参见(实验二)。l 进入debug,运行程序,查看运行后y

20、的值是否正确。(1).打开windows命令窗口(参见实验一)(2)启动debug, 同时装入可执行文件。例:debug t31.exe;t31.exe为例6.6汇编、连接后得到的可执行文件(3)查看数据段的内容。 a.通过u 命令查看程序,获知数据段的段地址。U cs:0 ;查看代码段与源程序对照可知,程序装入后,数据段data1的段地址为13DD。b用D命令查看数据段。D 13DD:0与源程序对照可知,x的偏移量为0,类型为字,因此,从逻辑地址13DD:0000开始的两个字节“09 00”,按照高高低低的原则组合为字“0009”,即为x的值。Y的偏移量为2,类型为字,从逻辑地址13DD:0

21、000开始的两个字节“00 00”,即为y的值。C运行程序,查看结果。 由于x为9,y=30x,。用G命令运行程序:g=cs:0。查看结果:d 13DD:0结果在y中,值 010E(十六进制数),即270。l 改变x的值,再运行程序,查看y运行结果是否正确。a.将x改为 -1,y=x+10,结果为9。例:E 13DD:0 FF FF ;X类型为字,-1的十六位补码ffffh。用G命令运行程序:g=cs:0。 查看结果:d 13DD:0结果在y中,值0009(十六进制数),即9。b.将x的值改为15,y=x-9,结果为6。实 验 教 案课题(项目)名称: 循环程序设计实验计划学时: 2学时 实验

22、类型: 1.演示性 2.验证性 3.综合性 4.设计性 5.其它授课日期: 年 月 日 第 周 星期 第 节实验目的:1、掌握循环程序的一般结构和设计方法。2、掌握单重循环和多重循环程序设计的方法。实验设备:1、硬件环境微型计算机(Intel x86系列CPU)一台2、软件环境Windows98/2000/XP操作系统。文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用DEBUG.EXE。实验步骤:1、建立汇编语言程序源文件。可使用任何一个文本编辑器(如EDIT.com,写字板,word软件)编辑源文件,源文件的扩展

23、名通常取为.asm。2、汇编源文件,形成目标文件。若有错,据错误提示,返回步骤(1)修改错误;若无错,则形成.OBJ目标文件和.LST列表文件。可用Dir命令(dos操作系统的命令)查看。3、形成可执行文件。若有错,据错误提示,返回步骤(1)修改错误。若无错,则形成.EXE可执行文件。可用Dir命令(dos操作系统的命令)查看。4、运行程序在命令窗口中键入可执行文件名,即可执行该程序。5、调试程序运行结果不对,需调试程序,查找原因。l 返回步骤(1)查看源文件,查找错误,修改源文件。l 若无法通过查看源文件找出错误,可在DEBUG下调试.EXE文件,找出错误之处,再返回步骤(1)。实验内容:1

24、、假设有一个以 data为首地址的字缓冲区,其缓冲区的大小在第一个字中,编写一个程序,求出该缓冲区数值的最大值和最小值,并分别存入di和si中。要求:l 输入源程序,汇编、连接直到没有错误。l 进入debug,运行程序,查看运行后si、di是否正确。2、从键盘上输入任意字符串(以回车作为结束标志),按其中字符在ASCII表中的顺序排序。要求:l 输入源程序,汇编、连接直到没有错误。l 运行程序,输入字符,查看字符串显示后的排序是否正确。实验报告要求:实验报告要求书写整齐,步骤完整,实验报告格式如下:1、实验目的2、实验设备3、实验步骤(方法)4、实验内容4) 说明程序的功能、结构,画出程序框图

25、。5) 写出源程序清单(加适当的注释)。6) 调试说明。包括上机调试的情况、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。5、实验结果(结论)参考实例1、data1 segment data dw 6, -1,2,9,-2,5,8data1 endscode1 segmentassume cs:code1,ds:data1start: mov ax,data1 mov ds,ax mov cx,data jcxz exit lea bx,data+2 mov di,bx mov si,bx; 初始化di,si的值again:mov ax,bx cmp di,a

26、x jge next1 mov di,axnext1:cmp si,ax jle next2 mov si,axnext2:add bx,2 loop againexit: mov ah,4ch int 21hcode1 ends end start提示:执行结束指令后会恢复si、di原来的值,应使用g命令设置断点,避免执行结束指令。G=cs:0 0026 ;0026是结束指令的偏移量,设置为断点。si=fffe ,即-2di=0009 ,即9。实 验 教 案课题(项目)名称: 用汇编语言实现学生成绩统计分析计划学时:4学时 实验类型: 1.演示性 2.验证性 3.综合性 4.设计性 5.其它

27、授课日期: 年 月 日 第 周 星期 第 节实验目的:培养学生综合应用所学知识对典型问题的设计解决能力。通过实验,培养学生利用汇编语言解决实际问题的能力。通过实验,掌握以下知识点:1、掌握程序的基本结构:顺序、分支、循环。2、掌握子程序设计3、掌握DOS功能调用4、掌握综合程序的编制及调试方法。实验设备:1、硬件环境微型计算机(Intel x86系列CPU)一台2、软件环境Windows98/2000/XP操作系统。文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用DEBUG.EXE。实验步骤:1、建立汇编语言程序源

28、文件。可使用任何一个文本编辑器(如EDIT.com,写字板,word软件)编辑源文件,源文件的扩展名通常取为.asm。2、汇编源文件,形成目标文件。若有错,据错误提示,返回步骤(1)修改错误;若无错,则形成.OBJ目标文件和.LST列表文件。可用Dir命令(dos操作系统的命令)查看。3、形成可执行文件。若有错,据错误提示,返回步骤(1)修改错误。若无错,则形成.EXE可执行文件。可用Dir命令(dos操作系统的命令)查看。4、运行程序在命令窗口中键入可执行文件名,即可执行该程序。5、调试程序运行结果不对,需调试程序,查找原因。l 返回步骤(1)查看源文件,查找错误,修改源文件。l 若无法通过

29、查看源文件找出错误,可在DEBUG下调试.EXE文件,找出错误之处,再返回步骤(1)。实验内容:编制一个程序,统计低于60分,6069分,7079分,8089分,9099分和100分的人数,并输出显示统计结果。1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。实验报告要求:实验报告要求书写整齐,步骤完整,实验报告格式如下:1、实验目的2、实验设备3、实验步骤(方法)4、实验内容7) 说明程序的功能、结构,画出程序框图。8) 写出源程序清单(加适当的注释)。9) 调试说明。包括上机调试的情况、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。5、实验结果(结论)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!