(2014)微机原理及接口技术实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 的取值,观察在三种不同的数据块情况下程序的运行。四.思考题

为什么当源数据块首址>目的块首址时,应从数据块首地址开始传送数据。而当数据块首址<目的块首址时,应从数据块末地址开始传送数据?

相关文档
最新文档