汇编语言实验指导书.docx
- 文档编号:22901550
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:18
- 大小:161.88KB
汇编语言实验指导书.docx
《汇编语言实验指导书.docx》由会员分享,可在线阅读,更多相关《汇编语言实验指导书.docx(18页珍藏版)》请在冰豆网上搜索。
汇编语言实验指导书
汇编语言实验指导书纪平张雷编写
安徽工业大学计算机学院
二00四年三月
实验一DEBUG的启动及其基本命令的使用(2
实验二内存操作数及寻址方法(6
实验三汇编语言程序的调试与运行(8
实验四查表程序设计(10
实验五系统功能调用(12
实验六循环程序设计(13
实验七分支程序设计(15
实验八子程序设计(18
实验九综合程序设计(20
附录实验报告(21
实验一DEBUG的启动及其基本命令的使用
一•实验目的:
掌握DEBUG的基本命令及其功能
•实验内容:
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1、DEBUG程序的启动
在DOS提示符下,可键入命令:
C>DEBUG[d:
][path][文件名][参数1][参数2]
其中文件名是被调试文件的名称,它须是执行文件(EXE,两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符-”此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。
用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。
如果没有文件名则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然
后再用DEBUG的命令进行修改、显示和执行。
2、DEBUG的主要命令
(1汇编命令A,格式为:
-A[地址]
该命令从指定地址开始允许输入汇编语句,把它们汇编成机
器代码相继存放在从指定地址开始的存储器中。
(2反汇编命令U,有两种格式:
1-U[地址]
该命令从指定地址开始,反汇编32个字节,若地址省略,则从上
一个U命令的最后一条指令的下一个单元开始显示32个字节
2-U范围
该命令对指定范围的内存单元进行反汇编,例如:
-U04BA:
01000108或-J04BA:
0100L9
此二命令是等效的。
(3运行命令G,格式为:
-G[=地址1][地址2[地址3。
。
。
]]
其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
(4追踪命令T,有两种格式:
1逐条指令追踪:
-T[=地址]
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2多条指令追踪:
-T[=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。
(5显示内存单元内容的命令D,格式为:
-D[地址]或-D[范围]
(6修改内存单元内容的命令E,它有两种格式:
1用给定的内容代替指定范围的单元内容:
-E地址内容表
例如:
-E2000:
0100F3“XYZ8D
其中F3,“X“Y'禾“ZD各占一个字节,用这五个字节代替原内存单元2000:
0100到0104的内容,“X”“Y”将分别按它们的ASCII码值代入。
2逐个单元相继地修改:
-E地址
例如:
-E100:
18E4:
010089.78
此命令是将原100号单元的内容89改为78。
78是程序员键入的
(7检查和修改寄存器内容的命令R,它有三种方式:
1显示CPU内部所有寄存器内容和标志位状态;格式为:
-R
标丿lb紹
置位
复位
溢出Overflow(連/否)
0V
NV
方向Direction(减ht/增吐)
DN
UP
中断Interrupi(允许/辟蔽)
EI
DI
符号Sign(负/正)
NG
PL
^Zero(是/占)
ZR
NZ
辅助进位AuxiliaryCarry(是/否)
AC
NA
奇偶Parity(偶/奇)
PE
P0
进位Carry(是/否〉
CY
NC
2显示和修改某个指定寄存器内容,格式为:
-R寄存器名
例如打入:
-RAX
系统将响应如下:
AXFIF4
表示AX当前内容为F仆4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:
-RBX
BX0369
:
059F
则BX内容由0369改为059F
3显示和修改标志位状态,命令格式为:
-RF
系统将给出响应,如
OVDNEINGZRACPECY-
这时若不作修改可按ENTER键,否则在-”号之后键入修改值,键入顺序任意。
如
OVDNEINGZRACPECY-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,该命令格式为
它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
三.实验要求:
用汇编语言编写一个计算“3+5”加法程序
四.实验报告:
写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题
是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
实验二内存操作数及寻址方法
1.实验目的:
1、熟练掌握DEBUG的常用命令学会用DEBUG调试程序。
2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。
3、掌握简单指令的执行过程。
2.实验内容:
1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
程序清单如下:
MOVAX,BX
MOVAX,0304H
MOVAX,[0304H]
MOVAX,[BX]
MOVAX,0001[BX]
MOVAX,[BX][SI]
MOVAX,0001[BX][SI]
HLT
三•实验要求:
1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。
四•实验报告:
1、程序说明。
说明程序的功能、结构。
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单和执行结果。
实验三汇编语言程序的调试与运行
•实验目的
1•学习数据传送和算术运算指令的用法
2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
•实验内容
将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。
3.
程序框图
图3.1两个多位十进制相加程序流程图
4.调试步骤
1.编辑源程序,建立一个以后缀为.ASM的文件.
2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程
序中错误行。
无错时继续第3步
3.连接目标程序,产生可执行程序
4.DEBUG调试可执行程序,记录数据段的内容。
5.在操作系统状态下,运行程序,并记录屏幕显示内容
被加数
加%
:
屏1
岸显示内容
12732
06815
10732
43691
65087
17631
五.思考题
1.将上述程序改为5位数相加,结果为6位数的加法程序。
(需考虑
进位
2.简单叙述上机步骤,调试方法。
实验四查表程序设计
一•实验目的:
1、熟练掌握编写汇编语言原程序的基本方法和基本框架
2、掌握查表法和查表指令XLAT。
3、熟练使用DEBUG调试程序。
•实验内容:
用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到
ASCI单元中。
3.编程提示:
既然指定用查表的方法,那么首先要建立一个表TABLE。
我们在表中按照十六进制数从小到大的顺序放入他们对应的ASCII码值。
DATASEGMENT
TABLEDB30H,31H,32H,33H,34H,35H,36H,37H
DB38H,39H,41H,42H,43H,44H,45H,46HHEXDBX;X为待转换的十六进制数
ASCIDB?
;存放转换后的ASCII码
DATAENDS
4.实验要求:
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等
5.实验报告:
1、程序说明。
说明程序的功能、结构。
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单和执行结果。
实验五系统功能调用
.实验目的:
1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII
码的原理。
2、掌握DOS功能调用的编程方法。
二•实验内容:
试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
3.编程提示:
利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。
4.实验要求:
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
5.实验报告:
1、程序说明。
说明程序的功能、结构。
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单和执行结果。
实验六分支程序设计
一.实验目的:
1、掌握分支程序的结构。
2、掌握分支程序的设计、调试方法。
•实验内容:
假设有一组数据:
5,-4,0,3,100,-51请编一程序,判断:
每个数大于0,等于0,还是小
于0;并输出其判断结果。
即:
1当x>0
y=0当x=0
-1当x<0
三•实验要求:
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序
结果的分析等。
四•编程提示:
1、首先将原始数据装入起始地址为XX的字节存储单元中。
2、将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。
3、其中判断部分可采用CMP指令,得到一个分支结构,分别输出“y=0”,“y=1
y1”
4、程序中存在一个循环结构,循环6次,调用6次分支结构后结束。
5.思考题:
程序中的原始数据是以怎样的形式存放在数据区中的?
请用DEBUG调试程序
观察并分析。
六•实验报告:
1、程序说明。
说明程序的功能、结构
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如
何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、画出程序框图。
4、写出源程序清单和执行结果。
5、回答思考题。
实验七循环程序设计
一•实验目的
1•掌握循环程序设计的方法(两重性循环结构
2.掌握正确分配与使用寄存器。
二•实验内容与要求
以GRADE为首地址的10个字的数组中保存有学生成绩。
建立一个10个字的RNAK数组并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:
一个学生的名次等于成绩高于等于该学生的人数加1。
寄存器分配情况说明如下:
AX存放当前被测学生的成绩
BX存放当前被测学生的相对地址指针
CX内循环计数值
DX存放当前被测学生的名次计数值
SI内循环测试时的地址指针
DI外循环计数值
程序框图
IjWM
RN・""比曾3!
decdi*
m宇轄携为爭檸
(BX)»IO
(BXh 權牧TH■週制■恆闵AX 翻) EB1 (BX^CX> CX^IOQ 初榕化(BK>"0 CXTD CX-1 1 r decdiv 1 L 图7.1程序框图 四.思考题 1•改为通过键盘输入方式提供学生成绩。 2.将成绩与名次在屏幕上显示。 3.指出控制循环程序的方法,并划分该程序的四个组成部分 实验八子程序设计 一•实验目的 1•掌握程序设计方法,合理划分层次 2.掌握子程序的调用与返回的方法 3•了解子程序的嵌套与递归 二•实验内容与要求 编制一程序,要求键入一个班的学生成绩,并存放于50字的ERADE数组中,然后根据ERADE中的成绩,把学生名次填入50字的RANK数组中,再按学号顺序把名次从终端上显示出来。 提示: 1程序MAIN 功能: 根据输入的学生成绩,计算并显示出学生名次。 2程序INPUT 功能: 接收一个班级学生的成绩,各成绩之间用空格隔开 3程序RANKP 功能: 计算一个班级学生的名次。 (可参照循环程序(一中的程序段 4程序OUTPUT 功能: 输出(显示一个班级的学生名次 5程序DECIBIN 功能: 十进制转换二进制,存入BX 6程序BINDEC 功能: 十进制转换二进制,并在屏幕上显示。 7程序DEC_DIV 功能: BX的内容除以CX的内容,并在屏幕上显示一位商。 •程序框图: 图8.1程序流程图 四涉骤 1.自编主程序与子程序。 2.输入本班级某门基础课成绩 5.思考题 1.写出4位BCD码转二进制数的算法。 2.写出AX中进二制数转BCD码的算法 3.将上述子程序结构改为模块化程序设计。 实验九综合程序设计 .实验目的: 1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。 2、掌握综合程序的编制及调试方法。 二•实验内容: 设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。 试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。 3.编程提示: 1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显 示统计结果采用DOS功能调用。 2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。 4.实验报告: 1、程序说明。 说明程序的功能、结构。 2、调试说明。 包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 3、画出程序框图。 4、写出源程序清单和执行结果。 5、体会和意见。 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师 系班级学号姓名同组者指导教师
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)