8086总汇编语言程序设计实验指导书.doc
《8086总汇编语言程序设计实验指导书.doc》由会员分享,可在线阅读,更多相关《8086总汇编语言程序设计实验指导书.doc(20页珍藏版)》请在课桌文档上搜索。
1、word汇编语言上机实验指导书一、概述上机实验总学时为16学时,其中综合性实验为2学时。实验共有6项暂定为8次,每次2学时。1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法与实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序与参考框图。开始的实验介绍较细,后面的实验简要介绍。2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进展图形实验。软件方面应有版包括,与MS-DOS版本配套的DEBUG程序和编辑软件其它编辑软件也可以。3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力
2、的培养。其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进展系统调用和BIOS功能调用的能力,进展模块程序设计的能力等。对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序或程序段,目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。实验一 汇编语言运行环境与方法、简单程序设计(2学时、验证性)1.实验目的:(1)熟悉汇编语言运行环境和方法(2)了解如何使用汇编语言编制程序(3)熟悉DEBUG有关命令的使用方法(4)利用DEBUG
3、掌握有关指令的功能(5)利用DEBUG运行简单的程序段2.实验内容(1)学会输入、编辑汇编语言程序(2)学会对汇编语言程序进展汇编、连接和运行(3)进入和退出DEBUG程序(4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。3.实验准备(1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。(2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。(3) 编写一个程序:比拟2个字符串所含的字符是否一样。假如一样如此显示Match.,否如此显示No match!;(1)仔细阅读有关DEBUG命令的内容,对有关命令
4、,都要事先准备好使用的例子。4.实验步骤(1)在DOS提示符下,进入MASM目录。(2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进展汇编、连接和运行。用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc不断修改错误,直至汇编通过为止。用连接程序link产生执行文件exe.例:link abc执行程序可直接从DOS执行程序,即在DOS环境中,输入文件名即可。(3)详细记录每一步所用的命令,以与查看结果的方法和具体结果。5.实验报告要求(1)源程序清单。(2) 如何启动和退出EDIT程序。(3) 如何对源程序进展汇编与编辑。(4)如何启动和退出DEBUG程序。(5
5、)整理每个DEBUG命令使用的方法,实际示例与执行结果。(6)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验二 循环程序、分支程序程序设计实验(4学时、验证性)1.实验目的:(1)掌握循环、分支程序的设计方法(2)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。(3)学会针对不同的问题,选用不同的组织循环的方法。2.实验内容(1)编写一个程序S21,将内存中一组有符号的字数组按递增的序列排序,并将其中的二进制数以十六进制的形式显示在屏幕上。(2)编写一个程序S22,判别键盘上输入的字符;假如是1-9字符,如此显示之;假如为A-Z或a-z字符,均显示“
6、c;假如是回车字符(其ASCII码为0DH),如此完毕程序,假如为其它字符如此不显示,继续等待新的字符输入。3.实验准备(1)编写实验内容要求的两个程序。(2)写出调试以上程序,即修改程序参数,检查结果的操作方法。(3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。4.实验步骤(1)用EDIT或其它编辑软件,编写.ASM源程序,例如S21.ASM与S22.ASM。(2)对其进展汇编与连接,产生.EXE文件。(3)对.EXE文件进展调试运行。a.用DEBUG调试运行,学会修改AL内容的方法。b.对键入不同的字符,分别进展调试。c.在MS-DOS下运行这两个.EXE文件。5.实验报告要求(1)
7、画出两个程序的流程图,假如要独立编写程序,应列出相应的程序清单。(2)说明本实验是如何利用DEBUG进展调试的。实验三 子程序设计(4学时、验证性)实验3.1、本实验的目的在于让同学们掌握同一模块调用的方法。1.实验目的(1)掌握主程序与子程序之间的调用关系与调用方法。(2)掌握子程序调用过程中近程调用与远程调用的区别。(3)掌握通过堆栈转送参数的方法。2实验内容(1)编写程序S31,将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXASC实现,在转换过程中,通过子程序DISP实现显示.(2)编写一个主程序S32,从键盘接收假
8、如干个字符,然后用远调用的方法,调用子程序统计字符串中字符b的个数.子程序的参数是字符串的首地址TABLE,字符串长度N与字符b.子程序返回字符b的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符b与其个数(设为一位十六进制数)。3实验说明(1)第一个实验程序用子程序的近程调用实现。由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移量。在每个子程序的执行中,检查CS值是不变的。(2)第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序
9、处在不同的逻辑代码段中,可在子程序执行中查看CS值,它与主程序中的CS值是不同的。子程序调用后,堆栈中保存了返回地址的段地址与段内偏移量。(3)第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。一段是将参数此处是串首址TABLE,串的长度N与待统计的字符“b顺序压如堆栈,在子程序调用后,通过BP指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关该方法的原理此处不再介绍。4实验准备(1)预习子程序设计的根本方法,根据实验内容要求,画出子程序与主程序的流程图。(2)熟悉键盘键入字符串与用堆栈传送参数的程序段编制方法。5实验步骤(1)编辑、汇编两个源程序,生成相应的可执行文件.EXE(
10、2)用DEBUG的R 命令,T 命令或G命令和D命令检查远程调用与近程调用时堆栈的变化。特别是通过堆栈传送的参数和子程序取出的参数是返回参数的详细过程。(3)检查程序执行的结果是否正确。6实验报告要求(1)分析远程调用与近程调用的区别,在用DEBUG有关命令观察时,执行过程有何不同。(2)说明用堆栈传送参数的过程与其具体方法。(3)分析实验结果与所遇到问题,并说明解决的方法。实验3.2、本程序的目的在于使读者掌握模块间调用子程序的编写方法.目的(1)了解多模块程序设计方法。(2)学会使用PUBLEC和EXTRN 伪指令解决模块间的符号(如变量名,标号等)通信问题。2.实验内容S33用另一个模块
11、编写。(2)编写一个子程序,将主程序S34指定的字符所在的地址返回给主程序,字符串(字符串以$为完毕标志)与主程序在同一个模块。(1)仔细阅读教材中有关模块间通信的方法与模块程序设计的方法。(2)弄清伪指令PUBLIC与EXTRN的功能与用法。(1)分别对实验1和实验2的主、子模块进展汇编,在连接时,将它们装配成一个以 .EXE为扩展名的可执行文件.观察汇编与连接过程中有无错误.(2)对.EXE 文件进展调试与运行.(3)将实验1中的原字符串改为由键盘输入,然后由子模块将源串中的小写字母转换为大写字母,并将源串与转换后的两个字串分两行显示出来(设键入字串长度小于80个字符).(1) 画出相应的
12、程序流程图。(2)扼要总结多模块程序的特点和编写方法。实验四 输入/输出实验2学时 综合性实验1实验目的(1)掌握输入输出程序设计的概念和方法。(2)了解PC机外围芯片8255、8259的功能。(3)学习如何在PC机上编写具有输入输出功能的程序,包括8255、8259芯片的使用方法。2实验说明 本实验要求自行编写一个键盘输入处理程序,它可以完成键盘字符的读入并进展屏幕显示,本实验要利用IBMPC系统的硬件结构,分别使用外围芯片8255与8259。 在本例中,利用8255A的A端做数据输入,对应的端口地址为60H;利用B端口作控制端输入,端口地址为61H。8255A的控制端口地址为63H 。本例
13、的8259中断控制器,其IRQ1端用于键盘中断请求线。键盘通过它可以响CPU发出中断请求。8259的I/O端口地址为21H,可以写入中断屏蔽字,以对8个中断源是否容许中断进展控制。在每次中断完毕时,要通过I/O端口地址20H写回一个中断完毕命令EOI ,使8259可以去除本次中断。 因此本实验既属于输入输出实验,也属于中断实验。 有关说明将详细地附在参考程序中。3实验内容 利用pc机键盘,编写一个读入并显示键盘输入的演示程序。该程序只承受常规字符包括回车键与退格键,对特殊功能键不进展处理。在程序中设置这些特殊功能键对应0编号即可,但凡检测到键位编号为0值时,均忽略对它们的处理。有键按下时,送出
14、的扫描码的D7位为0时,当键抬起时,扫描的码D7位为1,以判定键是否被按下。4实验准备(1)预习输入输出程序设计的特点和方法。(2)仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。5实验步骤(1)建立源文件,并通过汇编和连接,产生可执行文件。(2)运行程序,观察常规字符键与功能键按下时程序的反响,6实验报告要求(1)给出程序框图,包括主程序框图、中断处理程序框图。(2)说明输入输出程序设计的特点。(3)讨论:将SHIFT键与右SHIFT键也进展判别处理,它们的扫描码为42与54。为记录SHIFT键的按动状态,可设一个标志单元KBFLAG,右SHIFT按下,KBFLAG的D0位置1,左SH
15、IFT按下,KBFLAG的D1位置1,放下左右的SHIFT键,KBFLAG的相应恢复为0。当程序工作时,应能显示上档键的字符。实验五 字符处理程序实验1. 实验目的(1)熟悉串操作指令的功能与应用(2)掌握串操作指令的寻址方式与使用方法,编写常用的字符串处理程序。2实验内容(1) 字符串统计。自STRN开始的存储区中,有一个字符串,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。(2)在给定的字符串中,删除重复的字符,其余的字符向前递补。3. 实验准备(1)熟悉字符处理的方法和字符处理程序的设计;(2)认真预习有关串操作的指令极其寻址方式的特点,能够正确使用串操作指令,并准备
16、好数据。(3)按正常的方法将删除字符程序编成子程序,规定子程序的入口和出口参数。4实验步骤(1)用1号系统调用从键盘键入一个字符串,然后统计其中小写字母的个数。程序每次执行,都能得到不同的结果。(2)编写一个在同一个字符串中删除字符,并将其余字符向前递补的程序。5实验报告要求(1)对照参考程序,画出程序流程图。(2)总结字符串处理的编程方法,提出改良和完善此类程序的设计方案。实验六BIOS和DOS中断调用应用程序设计1.实验目的 (1)了解 DOS、BIOS调用的根本功能、调用参数、返回参数。以与数据定义掌握中断通信程序的设计方法。(2)掌握如何利用扫描码进展功能控制。2.实验内容编写一个可以
17、进展光标左右移动和插入字符的简单字处理程序。3.实验准备(1)复习相关内容(2)了解键盘的扫描码、ASCII码与其显示字符如果存在可显示字符形式之间的对应关系。4. 实验步骤(1)建立源文件,汇编、连接产生可执行文件。(2)运行程序,使得可以输入字符和光标左右移动与字符的插入。5.实验报告要求(1)由参考程序,画出简单字处理程序框图。(2)讨论如何实现光标的上下移动和字符的删除。源程序清单实验2(1)编写一个程序S21,将内存中一组有符号的字数组按递增的序列排序,并将其中的二进制数以十六进制的形式显示在屏幕上。;S21.ASM DSEG SEGMENT X DW 234H,32FH,90DH,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 汇编 语言程序设计 实验 指导书

链接地址:https://www.desk33.com/p-20994.html