《汇编语言程序设计》实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

汇编语言程序设计实验指导书物理学与信息技术学院2006.5目录第一部分汇编语言程序设计的上机环境1.MS-DOS操作系统…………………………………………………………………12.文本编辑器…………………………………………………………………13.汇编程序…………………………………………………………………14.连接程序…………………………………………………………………15.调试程序…………………………………………………………………1第二部分汇编语言程序设计的上机过程1.编辑…………………………………………………………………22.汇编…………………………………………………………………23.连接…………………………………………………………………24.运行…………………………………………………………………25.调试…………………………………………………………………2第三部分DEBUG简介1.DEBUG的启动格式…………………………………………………………………22.DEBUG中的标志位…………………………………………………………………33.DEBUG的常用命令…………………………………………………………………34.DEBUG命令使用说明…………………………………………………………………45.示例……………………………………………………………………………………5第四部分实验内容实验一利用DEBUG调试程序实验………………………………………………6实验二分支实验………………………………………………………………8实验三循环实验……………………………………………………………11实验四子程序实验(一)……………………………………………………………12实验五子程序实验(二)……………………………………………………………17实验六字符处理程序实验……………………………………………………………22实验七数据处理实验(一)………………………………………………………27实验八数据处理实验(二)……………………………………………………29实验九代码实验…………………………………………………………………31实验十输入/输出功能调用实验………………………………………34实验十一文件操作……………………………………………………371第一部分汇编语言程序设计的上机环境1.MS-DOS操作系统(如:MSDOS6.22,MSDOS7.0等)2.文本编辑器(如:EDIT.COM,TURBO.EXE,TC.EXE,C.EXE等)3.汇编程序(如:MASM.EXE,ASM.EXE等)4.连接程序(如:LINK.EXE等)5.调试程序(如:DEBUG.EXE,TD.EXE等)第二部分汇编语言程序设计的上机过程1.编辑――建立源程序文件(.ASM)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,该过程也称源代码录入。(1)通过MD_DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm;(其中filename为你起的文件名,由1-8个字符组成),asm是为汇编程序识别而必须加上去的,不可更改。存盘后在DOS下可用DOS命令DIR来查看。(2)如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用C语言或Pascal语言的文本编辑器或Windows的记事本来编辑,最后将文件存为filename.asm的形式即可。正确正确修改!!完成逻辑错源程序.exe.obj.asm语法错调试编辑汇编连接运行EDITMASMLINKDEBUG22.汇编――生成目标文件(.OBJ)这个过程计算机将把你编辑的源代码翻译为机器语言目标程序。如果此时你的程序有语法错误,系统将报错,并指出错误的位置及类型,你可以根据提示信息去逐一修改,直到无错为止。格式:MASMfilename(回车)(注:如果你系统的汇编程序为ASM.EXE时,便将命令变为ASMfilename。其中filename为你刚才建立的源程序文件名)汇编程序的输出文件可以有三个(分别是.obj、.lst、.crf),便会出现三次提问,在这可以一路回车即可。下面显示的信息是源程序中的错误个数,如果为0则表示顺利通过。但如果不为0就说明有错误,并指出错误出现的行,可依据这个提示去进行修改。但如果错误太多还未等看清就显示过去了,可用如下命令形将错误信息存于一个你指定的文件,再用文本编辑器去查看。MASMfilenamefilen(filen为你起的一个没用过的文件名,用以存放出错信息)以后可查看filen来得到出错信息。3.连接――产生可执行文件(.EXE)在汇编时,如错误个数非“0”,则必须改错后重新汇编,直到显示警告性和服务性错误个数都是“0”时才能连接。在这个过程中一般没有意外,如果有也就是文件名打错了。格式:LINKfilename(回车)。4.运行――检查结果连接之后会产生一个可执行文件,这时只需要在操作系统下运行这个程序,看它是否按你所预期那样得出结果。在试运行期间,要尽量试一些临界数据,看程序是否运行稳定、结果是否正确。如一切正常,则一切OK。5.调试――修正错误可最怕的是运行结果与预期的不一样,程序产生一些莫名其妙的结果,这是你的程序在算法上出了错,不是语法错。这时就需要对.EXE文件进行调试,以查找错误。常用的调试工具是DEBUG.EXE。第三部分DEBUG简介1.DEBUG的启动格式DEBUG文件名(回车)3说明:文件名指定被调试的文件,包括基本名和扩展名,参数表是被调试文件运行时所需要的参数。被调试的文件可以是系统中的任何文件,但通常它们的扩展名为.EXE或.COM。当DEBUG启动成功后,将显示提示符“-”,这时,可输入各种DEBUG命令。在DEBUG中输入或显示的数据都是十六进制形式。2.DEBUG中的标志位标志名称标识符置位状态复位状态溢出OFOVNV方向DFDNUP中断IFEIDI负号SFNGPL零ZFZRNZ辅助进位AFACNA奇偶PFPEPO进位CFCYNC3.DEBUG的常用命令命令格式功能说明A[地址]输入8086指令C[范围]起始地址对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元D[范围]显示指定范围内的内存单元内容E地址字节表用字节表中的值替换从“地址”开始的内存单元内容F范围字节表用指定的字节表来填充内存区域G[=起始地址][断点地址]从起点(或当前地址)开始执行程序,到终点结束H数值1数值2显示二个十六进制数值之和、差I端口地址从端口输入L[地址[驱动器号扇区扇区数]]从磁盘读M范围地址把“范围”内的字节值传送到从“地址”开始的单元N文件标识符[文件标识符…]指定文件名,为读/写文件做准备4O端口地址字节值向端口输出P[=地址][指令数]按执行过程,但不进入子程序调用或软中断Q退出DEBUG,不保存正在调试的文件R[寄存器名]显示和修改寄存器内容S范围字节表在内存区域内搜索指定的字节表。如果找到,显示起始地址,否则,什么也不显示T[=地址][指令数]跟踪执行,从起点(或当前地址)执行若干条指令U[范围]反汇编,显示机器码所对应的汇编指令W[地址[驱动器号扇区扇区数]]向磁盘写内容,CX为写入字节数,BX为起始地址4.DEBUG命令使用说明(1)分隔符命令和参数、参数和参数之间要用空格、逗号或制表符等分隔。(2)地址用“段基址:偏移量”的形式来表示地址,也可用段寄存器来代表“段基址”。如:1000:0,ds:10,es:200,cs:30等。(3)范围用来表示地址范围,从哪个地址开始,到哪个地址结束。它有二种表示方式:a)地址地址——前者表示起始地址,要用“段基址:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示即可。b)地址长度——前者表示起始地址,要用“段基址:偏移量”来表达,后者表示该区域的大小,用字母’L’开头的数值来表示。如:100:50100——表示段基址为100,偏移量从50到100的内存区域。100:50L100——段基址为100,偏移量从50开始的100个字节区域(4)端口地址二位十六进制数值。(5)字节值表由若干个字节组成,也可以是用引号括起来的字符串(6)驱动器号0—驱动器A、1—驱动器B、2—驱动器C、3—驱动器D等5(7)友情提示第一、在DEBUG中的提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行。第二、命令是单个字母,命令和参数的大小写可混合输入。第三、可用F1、F2、F3、Ins、Del、左移键、右移键等编辑键来编辑本行命令。第四、当命令出现语法错误时,将在出错位置显示“^Error”。第五、可用^C或^Break来终止当前命令的执行,还可用^S来暂停屏幕显示(当连续不断地显示信息时)5.示例例1、启动DEBUG,并装入test.exe文件(假设该文件已存在)。解:方法1:…\debugtest.exe方法2:…\debug-ntest.exe-l例2、比较以DS为段基址,偏移量从10到50的内存区域与从地址100:20开始的内存区域。解:-CDS:1050100:20或-CDS:10L41100:20例3、显示以DS为段基址,偏移量从10到50内存区域的单元内容,然后用‘abc’来填充它。解:-DDS:1050或-DDS:10L41-FDS:1050‘abc’例4、显示十六进制1234与3421之和、差。解:-H12344321例5、把数据段区域DS:0-40内的内容传送给从附加段ES:10开始的内存中。解:-MDS:040ES:10例6、在数据段区域DS:0-40内查找是否有字符串‘CIH’。解:-SDS:040‘CIH’6第四部分实验内容实验一利用DEBUG调试程序实验1.实验目的(1)熟悉DEBUG有关命令的使用方法(2)利用DEBUG掌握有关指令的功能(3)利用DEBUG运行简单的程序段2.实验内容(1)进入和退出DEBUG程序(2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。(3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。3.实验准备(1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。(2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。(3)阅读将AX左移9位的程序段。4.实验步骤(1)用编辑软件EDIT编辑一个扩展文件名为ASM的汇编语言源程序。(2)用汇编程序MASM或TASM汇编上述的汇编语言源程序,形成目标代码文件(扩展名为OBJ)。(3)用连接程序LINK或TLINK连接目标代码文件,形成可执行文件。(扩展名为EXE)(4)运行可执行文件。观察执行结果,以验证其正确性。(5)详细记录每一步所用的命令,以及查看结果的方法和具体结果。5.实验报告要求(1)如何启动和退出DEBUG程序。(2)整理每个DEBUG命令使用的方法,实际示例及执行结果。7(3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?8实验二分支程序实验1.实验目的(1)掌握分支程序的设计方法(2)掌握利用DEBUG修改参数、检查结果的方法。(3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。2.实验内容(1)编写一个程序,显示AL寄存器中的两位十六进制数(2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符CR(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。3.实验准备(1)编写实验内容要求的两个程序。(2)写出调试以上程序,即修改程序参数,检查结果的操作方法。(3)熟悉源程序汇编、连

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功