2050101汇编语言实验指导书(学生用).doc_第1页
2050101汇编语言实验指导书(学生用).doc_第2页
2050101汇编语言实验指导书(学生用).doc_第3页
2050101汇编语言实验指导书(学生用).doc_第4页
2050101汇编语言实验指导书(学生用).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与工程学院 实 验 指 导 书汇 编 语 言汇编语言实验指导书目 录一、说明1(一)实验教学目的1(二)实验类型、基本要求1(三)实验课时安排1二、 实验环境2(一)硬件环境2(二)软件环境2三、上机实验步骤3(一)确定源程序的存放目录3(二)建立.ASM源程序3(三)用MASM.EXE汇编源程序产生.OBJ目标文件3(四)用LINK.EXE产生EXE可执行文件5(五)执行程序5(六)DEBUG的启动及其基本命令的使用6四、实验项目8(一)实验目的及要求8(二)实验内容8(三)实验准备8(一)实验目的及要求9(二)实验内容9(三)实验准备9(一)实验目的及要求9(二)实验内容9(三)实验准备10(一)实验目的及要求10(二)实验内容10(三)实验准备10(一)实验目的及要求10(二)实验内容11(三)实验准备11I一、说明(一)实验教学目的 汇编语言课程为计算机科学与技术、软件工程、网络工程专业的必修课程,主要讲述80x86微机的体系结构和汇编语言程序设计方法。为配合这门课程的 正常教学,取得良好的教学效果,培养学生实际的动手能力,特设置相应实验。汇编语言实验主要使学生掌握DEBUG调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计,掌握DOS、BIOS功能调用方法等。(二)实验类型、基本要求本实验为程序设计类,要求学生了解计算机的基本系统结构,了解、掌握汇编语言程序的基本设计方法。每人一台微机,独立编程、录入、调试、运行。 (三)实验课时安排 序号实验名称课时实验一软件工具的使用2实验二顺序结构程序设计2实验三分支结构程序设计4实验四循环结构程序设计4实验五子程序结构程序设计2实验六综合练习2注:根据课程安排,可选做相应数量的实验二、 实验环境汇编语言程序设计的实验环境如下:(一)硬件环境微型计算机(Intel x86系列CPU)一台(二)软件环境Windows98/2000/XP操作系统;任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);汇编程序(MASM.EXE或TASM.EXE);连接程序(LINK.EXE或TLINK.EXE);调试程序(DEBUG.EXE或TD.EXE);文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用DEBUG.EXE。三、上机实验步骤(一)确定源程序的存放目录建议源程序存放的目录名为MASM,并放在D: MASM或E: MASM的目录下。当然也可以放在根目录下。(二)建立.ASM源程序建立.ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。例如:源程序SAMPLE.ASM如下:STACKSSEGMENTSTACKDW 128 DUP(?)STACKSENDSDATASSEGMENTSTRINGDBWELCOME!,13,10,$DATASENDSCODESSEGMENTASSUME CS:CODES,DS:DATASSTART: MOVAX,DATAS MOVDS,AX LEA DX,STRING MOVAH,9 INT 21HMOVAH,4CHINT21HCODESENDSENDSTART注意,汇编语言源程序文件的扩展名最好起名为.ASM,这样能给后面的汇编和连接操作带来很大的方便。(三)用MASM.EXE汇编源程序产生.OBJ目标文件源文件SAMPLE.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录D:MASM,把SAMPLE.ASM拖到MASM.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”“程序”“附件”“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:D: D:CD MASMD:MASMMASM SAMPLE.ASM操作时的屏幕显示如图1所示。图1 在DOS命令提示符窗口中进行汇编不管用以上二个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,可以输入目标文件的完整路径名,如:D:MASMSAMPLE.OBJ回车,也可以直接按回车,后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名SAMPLE.ASM并回车,然后进行的操作与上面完全相同。图2 有错误的汇编过程例子如果没有错误,MASM就会在当前目录下建立一个SAMPLE.OBJ文件(名字与源文件名相同,只是扩展名不同)。如果源文件有错误,MASM会指出错误的行号和错误的原因。图2是在汇编过程中检查出两个错误的例子。在这个例子中,可以看到源程序的错误类型有两类:警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得出错误的结果。此例中无警告错误。严重错误(Severe Errors)。对于严重错误,MASM将无法生成.OBJ文件。此例中有两个严重错误。在错误信息中,园括号里的数字为有错误的行号(在此例中,两个错误分别出现在第6行和第14行),后面给出了错误类型及具体错误原因。如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。(四)用LINK.EXE产生EXE可执行文件在上一步骤中,汇编程序产生的是二进制目标文件(.OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把.OBJ文件转换为可执行的.EXE文件。具体操作如下: 方法一:在Windows中操作用资源管理器打开源程序目录D:MASM,把SAMPLE.OBJ拖到LINK.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”“程序”“附件”“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:C:D: D:CD MASMD:MASMLINK SAMPLE.OBJ操作时的屏幕显示如图3所示。图3 把OBJ文件连接成可执行文件不管用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,可以输入可执行文件的完整路径名,如:D:MASMSAMPLE.EXE回车,也可以采用默认的文件名,后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出.OBJ文件名,则LINK程序会首先提示让你输入.OBJ文件名(Object Modules),此时输入.OBJ文件名SAMPLE.OBJ并回车,然后进行的操作与上面完全相同。如果没有错误,LINK就会建立一个SAMPLE.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。对于无堆栈警告(Warning:NO STACK segment)信息,可以不予理睬,它不影响程序的执行。如链接时有其它错误。须检查修改源程序,重新汇编、连接,直到正确。(五)执行程序建立了SAMPLE.EXE文件后,就可以直接在DOS下运行此程序,如图4所示:图4 执行文件SAMPLE.EXE的情况程序运行结束后,返回DOS。如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。如果程序不显示结果,我们如何知道程序是否正确呢?这时,我们就要使用TD.EXE或DEBUG调试工具来查看运行结果。此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE或DEBUG。(六)DEBUG的启动及其基本命令的使用DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。1、DEBUG程序的启动在DOS提示符下,可键入命令:D:MASMDEBUGd:path文件名 参数1参数2其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。2、DEBUG的主要命令(1)汇编命令A,格式为:-A地址该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。(2)反汇编命令U,有两种格式:1)-U地址该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA:0100 0108或 U 04BA:0100 L9,此二命令是等效的。(3)运行命令G,格式为:-G =地址1地址2地址3。其中地址1规定了运行起始地址,后面的若干地址均为断点地址。(4)追踪命令T,有两种格式:1)逐条指令追踪:-T=地址该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。2)多条指令追踪:-T=地址值该命令从指定地址起执行n条命令后停下来,n由值确定。(5)显示内存单元内容的命令D,格式为:-D地址或-D范围(6)修改内存单元内容的命令E,它有两种格式:1)用给定的内容代替指定范围的单元内容:-E地址 内容表例如:-E 2000:0100 F3 “XYZ” 8D其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。2)逐个单元相继地修改:-E地址例如:-E 100: 18E4:0100 89.78此命令是将原100号单元的内容89改为78。78是程序员键入的。(7)检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-RR命令显示中标志位状态的含义如下表所示:标 志 名置 位复 位溢出Overflow(是/否)OVNV方向Direction(减量/增量)DNUP中断Interrupt(允许/屏蔽)EIDI符号Sign(负/正)NGPL零Zero(是/否)ZRNZ辅助进位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO进位Carry(是/否)CYNC2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX系统将响应如下:AX F1F4: 表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0369 :059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如OV DN EI NG ZR AC PE CY-PONZDINV(8)命名命令N,格式为:-N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。(9)装入命令L,它有两种功能:1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:-L 地址 驱动器 扇区号 扇区数2)装入指定文件,格式为:-L 地址此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。在用L命令前,BX和CX中应包含所读文件的字节数。(10)写命令W,有两种格式:1)把数据写入磁盘的指定扇区:-W 地址 驱动器 扇区号 扇区数2)把数据写入指定文件中:-W 地址此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。(11)退出DEBUG命令Q,该命令格式为Q它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。四、实验项目实验一 软件工具的使用(一) 实验目的及要求1 熟悉汇编语言的工作环境。2 通过一个简单的程序,了解如何汇编、连接和运行一个汇编语言程序。3 了解DEBUG调试程序中常用命令的使用方法。4 通过运行简单的汇编语言程序 ,初步了解汇编语言源程序的特点。5 按照要求书写实验报告。 (二)实验内容使用编辑程序,输入教材P38页例程PENTIUM.ASM程序后进行汇编、连接和运行,并使用DEBUG中的各种命令进行调试。(2学时)(三)实验准备1 认真阅读本实验指导。2 预习教材P34页第二章第四小节的内容。3 预习新一代汇编语言程序设计中附录四、附录五的内容。实验二 顺序结构程序设计(一)实验目的及要求1掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图,说明流程图中各功能的含义和表示法。分配工作单元和存储空间。根据程序算法流程选择合适的指令编制汇编语言源程序。本实验着重掌握顺序结构程序的编写及系统功能调用的使用方法。2程序要尽可能简明、易读和易调试;执行速度较快;占用存储空间较少。3要求实验前编好程序。使用相关命令调试程序及查看结果。4按照要求书写实验报告。(二)实验内容基本题:(2学时)1、题目:编制程序利用功能调用键入及显示字符和字符串,将BUF中两个压缩BCD码数值相加并显示结果(十进制形式)。2、程序编制思路:1)先用1号功能调用输入两个一位数到BUF 和BUF+1单元。 2)做加法运算后用DAA指令进行压缩BCD码调整,结果存入BUF+2单元。3)将运算结果进行高低四位分离后分别加上30H变成相应数字的ASCII码再通过2号功能调用显示输出。参考程序:(略)选做题:(2学时)编一段程序,在内存中自SQTAB地址开始的连续10个单元中存放0-9的平方值。要求利用简单的查表法NUM单元中指定数(0-9)的平方值,并将所求平方值存入RESULT单元。(三)实验准备1认真阅读本实验指导。2按实验内容要求,确定算法,画流程图,编写程序。实验三 分支结构程序设计(一)实验目的及要求1掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图,说明流程图中各功能的含义和表示法。分配工作单元和存储空间。根据程序算法流程选择合适的指令编制汇编语言源程序。本实验着重掌握分支结构程序的基本设计方法和技巧。掌握条件转移指令与标志位的关系。学会条件的设置及判断使用的方法。2程序要尽可能简明、易读和易调试;执行速度较快;占用存储空间较少。3要求实验前编好程序。使用相关命令调试程序及查看结果。4按照要求书写实验报告。(二)实验内容 基本题:(单分支程序 2学时)1、题目:已知在数据区中DATA开始存放3个字符,编制分支程序完成:1)输出其中最大的字符2)按从小到大排列并输出。2、程序编制思路:1)取出三个数据分别放入AL、BL、CL2)比较AL和BL 的大小,将较大的数放进AL中;再将AL和CL 比较,AL中放入大者;最后比较BL和CL,大者放入BL中,小数放入CL中。这样AL、BL、CL中就是排好顺序的值。3)最后通过2号功能调用分别显示输出AL(最大值)和排好顺序的三个值。 参考程序:(略)选做题:(2学时)(多分支程序 2学时)从键盘输入变量X(X=09),编制程序完成对于不同的X值转向相应的程序段去显示”INPUT X”。(三)实验准备1认真阅读本实验指导。2按实验内容要求,确定算法,画流程图,编写程序。实验四 循环结构程序设计(一)实验目的及要求1掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图,说明流程图中各功能的含义和表示法。分配工作单元和存储空间。根据程序算法流程选择合适的指令编制汇编语言源程序。本实验着重掌握单重循环结构程序的基本设计方法和技巧。深入理解循环结构的四个组成部分。掌握计数循环与条件循环的设计方法。2程序要尽可能简明、易读和易调试;执行速度较快;占用存储空间较少。3要求实验前编好程序。使用相关命令调试程序及查看结果。4按照要求书写实验报告。(二)实验内容 基本题:(单重循环 2学时)1、题目:输入一字符串(16个字符)以回车结束输入。编制循环程序完成下列功能:1)统计其中的a字符的个数,用十六进制输出。2)统计其中的非数字个数。用十六进制输出。3)输出其中ASCII码最小的字符。2、程序编制思路:1)输入字符串到BUF缓存区2)按顺序取一个字符与a比较,相等则将A变量(A为小写a的个数)加一;再将该字符与数字比较,若不是数字,则将B变量(B为非数字字符的个数)加一;最后将该字符与MIN(MIN为最小字符)比较,若小于MIN,则将该字符送入MIN3)最后通过9号功能调用分别显示输出A 、B、MIN等值。参考程序:(略)选做题:(多重循环 2学时)编制循环程序完成下列功能:从键盘任意输入N个字符(N10个字符),存入BUF为首地址的缓冲区,以$结束输入。编程统计其中所有二进制位中1的个数及0的个数,并以十六进制形式显示输出统计结果。(三)实验准备1认真阅读本实验指导。2按实验内容要求,确定算法,画流程图,编写程序。实验五 子程序结构程序设计(一)实验目的及要求1掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图,说明流程图中各功能的含义和表示法。分配工作单元和存储空间。根据程序算法流程选择合适的指令编制汇编语言源程序。本实验着重掌握子程序结构程序的基本设计方法和技巧。学会将大任务分解为几个简单子任务并采用子程序的方法编程。掌握主程序和子程序间的参数传递方法。2程序要尽可能简明、易读和易调试;执行速度较快;占用存储空间较少。3要求实验前编好程序。使用相关命令调试程序及查看结果。4按照要求书写实验报告。(二)实验内容 基本题:(2学时)1、目:用子程序实现从键盘输入一个十进制数n(0n32)。采用子程序结构编程,完成下列功能。要求:1)有输入输出的提示。 2)顺次输出小于n的所有偶数。3)若n为偶数,则输出“even”,为奇数,则输出“odd”。2、程序编制思路:1)输入一个二进制数存入NN1(n32)2)按顺序从0开始递增取偶数(小于NN1)将其变换为两位十进制数然后存入输出缓冲区BUF,(格式为“十位值、个位值、空格、空格”),然后通过9号功能调用分别显示输出,直到显示出小于NN1的最大偶数为止。3)取出NN1 判断其是偶数或奇数,根据判断结果通过9号功能调用分别显示输出even 或odd 参考程序:(略) 选做题:(2学时)编写一程序,要求

温馨提示

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

评论

0/150

提交评论