微型计算机原理及单片机
实验报告
班级: 学号: 姓名:
实验一 汇编语言程序设计 1 分支程序设计实验
1.1.1 实验目的
1. 掌握分支程序的结构。
2. 掌握分支程序的设计、调试方法。
1.1.2 实验设备
PC机一台,TD-PITE实验装置一套。
1.1.3 实验内容
设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.1所示。
0H0H源数据块目的数据块0H源数据块目的数据块目的数据块源数据块FFFFFHFFFFFHFFFFFH
(a) (b) (c)
图1.1 源数据块与目的数据块在存储中的位置情况
对于两个数据块分离的情况,如图1.1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:
当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。
当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。
实验程序流程图如图1.5所示。
1.1.4 实验程序如下
SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START:
MOV CX, 0010H图1.5 程序流程图 MOV SI, 6000H 开 始 MOV DI, 7000H CMP SI, DI 源数据块首地址→SI 源数据块首地址→SI JA A2
搬移字节数→CX ADD SI, CX ADD DI, CX >[SI]>[DI]? DEC SI DEC DI
DI←[(SI)] SI←[SI]+[CX]-1A1: MOV AL, [SI]
DI←[DI]+[CX]-1 MOV [DI], AL
SI←[SI]+1 DEC SI DI←[DI]+1DI←[(SI)] DEC DI DEC CX CX←[CX]-1 SI←[SI]-1 DI←[DI]-1 JNE A1
JMP A3
[CX]=0?CX←[CX]-1A2: MOV AL, [SI]
Y MOV [DI], AL
N INC SI [CX]=0? INC DI Y DEC CX
结 束 JNE A2 A3: JMP A3 CODE ENDS END START
1.1.5 实验步骤
1. 按流程图编写实验程序,经编译、链接无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。
4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。
5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。
>N