(2014微机原理及接口技术实验指导书.doc
文本预览下载声明
实验一 系统认知实验
实验目的:了解汇编语言的设计、编写和调试程序的方法,掌握DEBUG的使用。
实验设备:装有DOS系统和MASM5.0的微机一台,或TDN86/88微机原理教学实验系统一台。
实验内容:编程实现在屏幕上显示一个大写字母“A”或字符串“HOW ARE YOU?”,用DEBUG调试程序
实验要求:
1、上机前做好充分准备,包括源程序清单、调试步骤等;
2、用DEBUG来调试程序,熟悉DEBUG的使用。
实验步骤:
1、编写程序并输入,检查无误后,经汇编、连接后运行,用DEBUG装入。
2、用U命令反汇编程序,应用R、G等命令,观看运行情况。
3、用D、E、A等命令查看、修改源数据,用G命令查看运行结果。
4、用Q命令退出DEBUG
上机过程
1.建立源文件 使用EDIT软件,得到扩展名为ASM的汇编语言源程序文件。(扩展名 .asm 勿忘加!)
2.汇编源程序 使用汇编程序MASM对源程序进行汇编,生成OBJ、LST和CRF文件(后两种一般不需要,可直接回车)。如程序有错,可以根据提示信息,重新编辑、汇编源程序,直到没有严重错误为止。
3.连接程序 使用连接程序LINK,对汇编程序产生的目标文件进行连接,产生可执行的程序EXE。
4.调试或运行程序
具体过程如下:
1. 编辑 C:\MASMEDIT 文件名.ASM
2. 汇编 C:\ MASM masm 文件名.ASM
3. 连接 C:\ MASM link 文件名.obj
4. 调试 C:\ MASM debug 文件名.exe
-U 反汇编,记下程序首地址和结束地址
-D 段地址:偏移地址 察看内存单元内容
-E 段地址:偏移地址 修改内存单元内容:空格修改下一个, 回车结束修改
-G=起始地址 结束地址 运行程序
参考源程序:
(1) 屏幕上显示一个大写字母“A”
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV AH, 02H
MOV DL,41H
INT 21H
INT 20H
CODE ENDS
END START
(2) 屏幕上显示字符串“HOW ARE YOU?”
DATA SEGMENT
BUF DB HOW ARE YOU?$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验二 分支程序设计实验
一、实验目的
1.掌握分支程序的结构。
2.掌握分支程序的设计、调整方法。
二、实验设备
TDN86/88 教学实验系统一台。
三、实验内容及步骤
设计一数据块间的搬移程序
设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成
为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图3-1 所示。
图3-1 源数据块与目的数据块在存储中的位置情况
对于两个数据块分离的情况,如图3-1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:
当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图3-1(b)所示。
当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图3-1(c)所示。
参考流程:如图3-2所示。
图3-2 程序流程图
实验程序
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 0010H
MOV SI, 3100H
MOV DI, 3200H
CMP SI, DI
JA A2
ADD SI, CX
ADD DI, CX
DEC SI
DEC DI
A1: MOV AL, [SI]
MOV [DI], AL
DEC SI
DEC DI
DEC CX
JNE A1
JM
显示全部