《汇编语言实验指导书》由会员分享,可在线阅读,更多相关《汇编语言实验指导书(24页珍藏版)》请在金锄头文库上搜索。
1、汇编语言实验指导书推荐精选目 录实验一 DEBUG的启动及其基本命令的使用.2实验二 内存操作数及寻址方法.6实验三 汇编语言程序的调试与运行.8实验四 查表程序设计10实验五 系统功能调用12实验六 循环程序设计13实验七 分支程序设计15实验八 子程序设计18实验九 综合程序设计20附录 实验报告21推荐精选实验一 DEBUG的启动及其基本命令的使用一实验目的: 掌握DEBUG 的基本命令及其功能二实验内容:DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。1、DEBUG程序的启动在DOS提示符下,可键入命令:CDEBUGd:
2、path文件名 参数1参数2其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。2、DEBUG的主要命令(1) 汇编命令A,格式为:-A地址该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在
3、从指定地址开始的存储器中。(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=地址
4、值该命令从指定地址起执行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) 检查和修改
5、寄存器内容的命令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 FIF4:表示AX当前内容为F1F
6、4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 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)把磁盘上指定扇区的内容装入到内存指定
7、地址起始的单元中,格式为:-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,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执
8、行Q命令前先执行写命令W。三实验要求: 用汇编语言编写一个计算“3+5”的加法程序四实验报告:写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。推荐精选实验二 内存操作数及寻址方法一实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。3、掌握简单指令的执行过程。二实验内容:1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序
9、进行汇编与调试。2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BX推荐精选MOV AX,BXSIMOV AX,0001BXSIHLT三实验要求:1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。2、本
10、实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。四实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、写出源程序清单和执行结果。推荐精选实验三 汇编语言程序的调试与运行一实验目的1学习数据传送和算术运算指令的用法2熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。二实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。三程序框图推荐精选图
11、3.1 两个多位十进制相加程序流程图四调试步骤1编辑源程序,建立一个以后缀为 ASM的文件.2汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。3连接目标程序,产生可执行程序。4DEBUG调试可执行程序,记录数据段的内容。 5在操作系统状态下,运行程序,并记录屏幕显示内容。被 加 数加 数屏 幕 显 示 内 容127320681510732436916508717631推荐精选五思考题1 将上述程序改为5位数相加,结果为6位数的加法程序。(需考虑进位)2 简单叙述上机步骤,调试方法。推荐精选实验四 查表程序设计一实验目的:1、熟练掌握编写汇编语言原程序的基本
12、方法和基本框架。2、掌握查表法和查表指令XLAT。3、熟练使用DEBUG调试程序。二实验内容:用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到ASCI单元中。三编程提示:既然指定用查表的方法,那么首先要建立一个表TABLE。我们在表中按照十六进制数从小到大的顺序放入他们对应的ASCII码值。DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB X ;X为待转换的十六进制数ASCI DB ?;存放转换后的ASCII码DATA ENDS四实验
13、要求:实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等五实验报告: 1、程序说明。说明程序的功能、结构。推荐精选2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、写出源程序清单和执行结果。 推荐精选实验五 系统功能调用一实验目的:1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。2、掌握DOS功能调用的编程方法。二实验内容:试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。三编程提示:利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示