(2014)微机原理及接口技术实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一系统认知实验
实验目的:了解汇编语言的设计、编写和调试程序的方法,掌握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:\MASM>EDIT 文件名.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, ‘A’
INT 21H
INT 20H
CODE ENDS
END START
(2) 屏幕上显示字符串“HOW ARE YOU?”DA TA SEGMENT
BUF DB 'HOW ARE YOU?$'
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
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
JMP A3
A2: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNE A2
A3: JMP A3
CODE ENDS
END START
实验步骤
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)用E 命令在以SI 为起址的单元中填入16 个数。
(3)G= ↙,运行实验程序。
(4)用D 命令查看DI 为起址的单元中的数据是否与SI 单元中数据相同。(5)试改变SI、DI 的取值,观察在三种不同的数据块情况下程序的运行。四.思考题
为什么当源数据块首址>目的块首址时,应从数据块首地址开始传送数据。而当数据块首址<目的块首址时,应从数据块末地址开始传送数据?