《汇编语言程序设计 》
实验指导手册
编写:熊书兴 陶 国 武
南昌理工学院计算机系
2007-4
《汇编语言程序设计》 实验指导手册
《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重要的实践环节。本指导手册依照我系各类计算机专科专业教学大纲,根据人民邮电出版社的《汇编语言程序设计》(梁发寅著)教材编写而成。
本指导手册共计有编有10个实验,在实际实验过程中可以按照实际教学进度情况加以增删。每个实验都应做到:
1.做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。
2.编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。
3.完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。
实验一 汇编语言上机环境
(一)实验目的
熟悉汇编语言上机环境
掌握汇编语言上机过程与步骤 (二)实验器材与实验准备
实验器材:
硬件:微机一台
软件:DOS或WIN98/2000/XP
MASM . EXE和LINK . EXE 实验准备:
cs1 segment
assume cs : cs1 , ds : cs1 start: push cs pop ds mov ah,0 int 10h lea dx , str0 mov ah,9 int 21h mov ah,4ch int 21h
str0 db 'hello' , '$' cs1 ends end start
(三)实验内容和要求
1. 建立汇编源程序文件
2. 逐步汇编,连接生成可执行文件 3. 运行生成的可执行文件 (四)实验步骤:
1. 在记事本中编辑原文件
2. 将MASM . EXE和LINK . EXE以及原文件拷贝在同一目录下 3. 汇编原文件 4. 连接目标文件 5. 执行可执行文件 (五) 实验结果分析
在生成可执行文件过程中,一共生成了多少个相关的文件,它们的作用分别是什么?
实验二 DEBUG 的使用
(一)实验目的
1、熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程 序。
2、掌握 8086/8088 的寻址方式及多字节数据的处理方法。
(二)实验设备
硬件环境:IBM-PC 及其兼容机 软件环境:操作系统 DOS3.0 版本以上
调试程序 DEBUG.COM
(三)实验内容和要求
实验内容:
1、利用 DEBUG 程序中的“E”命令,将两个多字节数“003F1AE7H”和 “006BE5C4H”分别送入起始地址为 DS:0200H 和 DS:0204H 两个单元中。
2 、分 别用 直接寻址方 式和寄存器 间接寻址方 式编写程序 段,实现将 DS:0200H 单元和 DS:0204H 单元中的数据相加,并将运算结果存放在 DS:0208H 单元中。
实验要求:
本次实验的内容均在 DEBUG 下完成,实现数据的装入、修改、显示;汇 编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
(四)预习要求
1、复习 DOS 启动方式和 DOS 有关命令的使用;
2、阅读本书后的附录,熟悉掌握 DEBUG 调试程序中的 A、D、E、G、Q、 R、T、U 命令的书写格式及功能;
3、复习寻址方式和相关的数据传送指令及算术运算指令。
(五)实验步骤
1、启动 DOS 操作系统
2、运行 DEBUG.COM 程序(若当前盘为 C) C>DEBUG↙ – ;“( –”为 DEBUG 提示符,仅当屏幕出现该提示符后,才可输入 DEBUG
命
令) 3、用“A”命令编辑和汇编源程序 –A ↙
186E:0100 MOV AX,[0200] 186E:0103 MOV BX,[0202] 186E:0107 ADD AX,[0204] 186E:010B ADC BX,[0206] 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116↙
4、用“U”命令反汇编验证源程序
–U CS:0100↙
186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 ADD AX,[0204] 186E:010B 131E0602 ADC 186E:010F
A30802
BX,[0206] MOV MOV
[0208],AX [020A],BX
186E:0112 891E0A02
186E:0116 注意:
检查源程序是否有错误,若有则返回到第 3 步用“A 地址”命令进 行修改,直到程序无错误。
DEBUG 约定在其命令或源程序中所涉及到的数据均被看作十六进 制数,其后不用“H”说明。 在 DEBUG 下,源程序中不能使用“标号”、“变量”和一些伪指令。 在 DEBUG 下,大小写不敏感。
5、程序未执行前,用“R”命令观察,相关寄存器的内容。
–R↙ 如:(AX)= ,(BX)= ,(SI)= ,
(DI)= ,(CS)= ,(IP)= 。
6、在程序未执行前,用“D”命令观察 DS:0200H,DS:0204H、DS:0208H 单元的内容
–D 200 20B ↙
7、用“G”命令运行源程序
–G =110 0116 ↙
8、再用“D”命令观察 DS:0200H~DS:020BH 字节单元中的内容
–D 200 20B↙
9、用“T”单步操作命令对源程序单步执行,观察 AX、BX、CS、IP 寄存 器
内容的变化,并与预计的结果相比较。 注意:
D 命令显示内存数据,注意观察多字节数据在内存中的存放方式。 指令执行的时候,IP 寄存器随着变化,注意观察。
(六)实验结果分析
1、程序运行结果:(AX)= ,(BX)=
DS:0208H 四字节单元的内容:
2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。(参考