实验四 分支程序设计实验
一 实验目的
1.掌握分支程序的结构。
2.掌握分支程序的设计、调试方法。
二 实验设备
TDN86/51或TDN86/88教学实验系统一台
三 实验内容及步骤
1.内容:
设计一数据块间的搬移程序
设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。 注意:
当源数据块首址>目的块首址时,从数据块首地址开始传送数据。 当源数据块首址<目的块首址时,从数据块末地址开始传送数据。 2.实验步骤:
(1)编写实验程序。 (2)输入程序:
STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS
CODE SEGMENT ASSUME CS:CODE
START: MOV CX,0010H ;将0010H传送给CX,CX=16 MOV SI,3100H ;将3100H传送给SI,SI=3100H MOV DI,3200H ;将3200H传送给DI,DI=3200H
第 17 页 共 87 页
17
CMP SI,DI ;比较SI和DI的大小,SI是否大于DI?
JA A2 ;如果zf=0且cf=0时进行跳转到A2,否则不进行跳转
ADD SI,CX ;从源数据块末字节开始传送,将SI和CX相加在传给SI(3100H+10H),即SI=3110H
ADD DI,CX ;将DI和CX相加在传给DI(3200H+10H),即DI=3210H DEC SI ;对SI操作数减1(减量)SI=SI-1 DEC DI ;对DI操作数减1(减量)DI=DI-1
A1: MOV AL,[SI] ;将3100H内存单元的内容传送AL MOV [DI],AL ;将AL传送给3200H内存单元
DEC SI ;对SI操作数减1(减量)SI=SI-1 DEC DI ;对DI操作数减1(减量)DI=DI-1 DEC CX ;对CX操作数减1(减量)CX=CX-1
JNE A1 ;如果zf=0时进行跳转到A1,否则顺序执行 JMP A3 ;无条件跳转到A3
A2: MOV AL,[SI] ;将3100H内存单元的内容传送AL MOV [DI],AL ;将AL传送给3200H内存单元 INC SI ;对SI操作数加1(加量)SI=SI+1 INC DI ;对DI操作数加1(加量)DI=DI+1 DEC CX ;对CX操作数减1(减量)CX=CX-1
JNE A2 ;如果zf=0时进行跳转到A2,否则顺序执行 A3: JMP A3 ;顺序执行 CODE ENDS END START
(3)检查无误,经汇编、连接后装入系统。 (4)用E命令在以SI为起址的单元中填入16个数。 (5)G=0000:2000,运行实验程序。
(6)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。
(7)改变SI、DI的取值在进行实验。
第 18 页 共 87 页 18
四 实验结果
1.用E命令填入16个数,如图(4-1)。
图4-1 输入16个数
第 19 页 共 87 页
19
2. 查看DI为起址的单元中的数据与SI单元中的数据是相同,如图(4-2)。
图4-2 结果相同
第 20 页 共 87 页
20
相关推荐: