实验一汇编语言程序设计 1 分支程序设计实验
1.1.1 实验目的
1. 掌握分支程序的结构。
2. 掌握分支程序的设计、调试方法。
1.1.2 实验设备
PC机一台,TD-PITE实验装置一套。
1.1.3 实验内容
设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.14所示。
0H0H源数据块目的数据块0H源数据块目的数据块目的数据块源数据块FFFFFHFFFFFHFFFFFH
(a)(b)(c)
图1.1 源数据块与目的数据块在存储中的位置情况
对于两个数据块分离的情况,如图1.1(a),数据的传送从数据块的首地址开始,或从
数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因?搬移?而遭到破坏,可有如下结论:
当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。
当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。
实验程序流程图如图1.5所示。
开 始 源数据块首地址→SI 源数据块首地址→SI 搬移字节数→CX>> SI←[SI]+[CX]-1 DI←[DI]+[CX]-1DI←[(SI)] SI←[SI]-1 DI←[DI]-1CX←[CX]-1N[CX]=0?Y结 束[SI]>[DI]?DI←[(SI)] SI←[SI]+1 DI←[DI]+1CX←[CX]-1[CX]=0?YN
图1.5 程序流程图
1.1.4 实验程序如下(自己填写)
SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK 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.1.5 实验步骤
1. 按流程图编写实验程序,经编译、链接无误后装入系统。 2. 用E命令在以SI为起始地址的单元中填入16个数。 3. 运行程序,待程序运行停止。
4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。
·1.1.6 实验结果(自己填写)
图1-1-2
图1-1-2
图1-1-3 图1-1-4
2.循环程序设计实验
1.2.1 实验目的
1. 加深对循环结构的理解。
2. 掌握循环结构程序设计的方法以及调试方法。
1.2.2 实验设备
PC机一台,TD-PITE实验装置一套。
1.2.3 实验内容
计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。 编写实验程序,计算上式的结果,参考流程图如图1.6所示。
开始1.2.4 实验程序(自己填写)
SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT [BL]→AL[BL]+1→BL ASSUME CS:CODE
START: MOV DX,0001H MOV BL,02H [AL]×[BL]→AX[DX]+[AX]→DX A1: MOV AL,BL
INC BL MUL BL [AX]>200? ADD DX,AX CMP AX,00C8H
结束 JNA A1
MOV AX,4C00H
INT 21H
CODE ENDS
END START 图1.6 程序流程图
1→DX2→BL1.2.5 实验步骤
(1)编写实验程序,编译、链接无误后装入系统。 (2)运行程序,待程序运行停止。
(3)运算结果存储在寄存器DX中,查看结果是否正确。
(4)可以改变N(N+1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产生数据溢出。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新综合文库微机原理和单片机实验报告 - 图文全文阅读和word下载服务。
相关推荐: