资源描述:
《汇编语言实验讲义》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《汇编语言》实验讲义《汇编语言》实验学时分配表序号实验项目名称实验学时实验报告或作业课内课外1汇编语言程序上机过程以及调试2212顺序程序设计2213循环程序设计2214分支程序设计2215子程序设计2216I/O程序设计2217实验七综合程序设计221合计14147实验一汇编语言程序上机过程以及调试一、预习内容1. 工具软件MASM、LINK的使用2. 常用DEBUG命令的使用:G,D,R,T,U,Q3. 完整程序设计方法的格式。二、目的要求1. 掌握常用工具软件MASM、LINK的使用2. 掌握常用DEBUG命令:G,
2、D,R,T,U,Q能灵活使用这些命令调试程序3. 掌握完整程序设计方法的格式,能正确书写数据段,代码段等。三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’Nomatch’.请读程序,并将程序补充完整。DSEGSEGMENTstring1db'Movethecursorbackward.'string2db'Movethecursorbackward.'mess1db'Match.',13,10,'$'mess2db'Nomatch.',13,10,'$'DS
3、EGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEG,es:DSEG,MAINPROCFARstart:movax,dsegmovds,axmoves,axleasi,string1①cld②repzcmpsbjzmatchleadx,mess2jmpshortdispmatch:leadx,mess1disp:movah,09hint21hmovax,4c00hint21hMAINENDPCSEGENDSendstart实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在c:
4、masm50下,注意保存时将文件扩展名改为.asm(如lab1.asm)。2)打开桌面的“命令提示符”程序进入dos命令操作,先用cdmasm50命令改变路经,接着用”masm+文件名”(如masmlab1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用”link+文件名”(如linklab1)将.obj文件连接成可执行的.exe文件(lab1.exe)。4)在DOS状态下直接运行link产生的.exe文件(如lab1),即
5、在屏幕上显示Match.5)用debug调试程序,熟悉debug命令的使用:(1)打debuglab1.exe进入debug控制,显示提示符'_'。(2)用命令g执行程序,可得与步骤4相同的结果,也可用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况,并注意标志位有无变化。(3)用命令u检查键入的程序并记录,特别注意左边的机器码和指令地址。如果一条u命令没有显示完全,可以再次输入u命令,该命令会紧接着上一个命令的输出继续显示。(4)用命令’g+地址’设置断点,如g06,表示将断点设置在代码段的偏移地址
6、为06h的指令前,并执行到该断点前。其中,命令中的地址项可以从上条命令u的运行结果获得。(5)用命令r查看各寄存器的情况。(6)用命令d0查看数据段的情况,0表示从偏移地址0开始,也可以指定其他偏移地址值。(7)用命令‘e+地址’的方式修改数据区的字符串,其中’地址’指需要修改的数据段内存单元偏移地址,可根据上条d0命令获得。如e29表示从偏移地址29h开始修改数据。试用此命令将数据段变量string1的内容修改为’Movethecursorforward.’(8)再次用命令g执行程序,查看执行结果。(9)用命令q退出de
7、bug,如果在上述步骤中碰到异常,可以先用q命令退出后再进入调试。四、实验报告或作业1.分析程序,画出程序流程图2.汇编,连接及调试时产生的错误,其原因及解决办法。3.思考:1)上述实验中用e修改数据段的内容,是否改变原文件lab1.asm的内容?2)用单步执行命令t运行程序,运行到movax,4c00h,int21h指令后,cs和ip寄存器内容前后有何变化,产生变化的原因是什么?附:DEBUG使用:1.打DEBUG进入DEBUG,显示提示符'_'。2.退出DEBUG命令:Q3.显示内存命令:D起始地址结束地址4.修改内存
8、命令:E起始地址,连续修改打空格键。打回车键退出E命令。5.检查寄存器命令:R标志位显示10CFCYNCZFZRNZSFNGPLAFACNAOFOVNVPFPEPODFDNUPIFEIDI6.修改寄存器命令:R寄存器名7.小汇编命令:A起始地址,不输入指令打回车键退出A命令。8.反汇编命令:U起始地址结