2. 实验步骤:
⑴.编译装载SY8.ASM程序。
⑵.从2900H内存单元开始存放N个字节的数据,其字节数N存放于28FFH单元。 ⑶.运行程序、查看排序结果。
⑷.理解排序程序的设计方法,自行设计出将N个字节的数据按降序排列的程序,调试通过后运行该程序并查看排序结果。 五 实验报告主要内容及要求
1.读懂实验源程序,分析程序中每条指令的功能﹑用途,理解该程序的设计思路和方法。
2. 按实验要求自行完成程序设计、调试及修改,使其成满足设计要求,并按步骤进行程序的装入、运行,并记录运行后的结果。
3. 认真记录整理和分析自己所设计的程序在运行中的各种信息。
六 注意事项
1. 排序程序也是循环程序的一种,循环程序的循环方式有两种,一种是先判断循环控制条件,满足条件继续执行循环体,否则退出循环;另一种是先执行循环体然后再判断循环控制条件,不满足条件继续执行循环体,一旦满足条件则退出循环。
2. 循环程序的结构特点如下:
(1)设置循环的入口条件:如循环次数以及为保证循环体正常运行而设置的初始状态条件等。
(2)循环体:一般由循环的工作部分和修改部分构成。循环的工作部分是为完成程序功能而设计的主要程序段,循环的修改部分则是为保证每一次循环时,参加循环的有关信息能发生有规律的变化而设计的程序段。
(3)循环控制部分:每个循环程序必须选择一个循环控制条件来控制循环的运行和结束,对循环次数为已知情形,大多用LOOP指令来实现;有时虽然循环次数为已知、但有可能使用其它条件或特征来使循环提前结束,则LOOPZ和LOOPNZ指令也是设计循环程序最常用的指令。对循环次数为未知的情形则可根据具体情况找出控制循环结束的条件或特征。
(4)循环程序可以为单重循环,也可以为多重循环程序。多重循环程序方法和单
41
重循环程序方法基本一致,但应分别考虑各重循环的控制条件及其程序实现,相互之间不能混淆。同时应注意在每次外层循环再次进入内层循环时,初始条件必须重新设置。
42
实验五 分支程序的设计与调试
一 实验目的
1. 掌握分支程序的结构及其设计、调试的基本方法。 2.熟悉各类指令对标志状态位的影响及其检测、运用的方法。 二 实验内容
1. 分支程序的功用及其设计、调试的方法。 2. 实验学时数:2H 三 实验设备与工具
DICE-598K 实验系统 + PC机
四 实验方法和步骤
1. 分支程序
分支程序的特点是:每个分支都是具有独立功能的程序段,在某一种确定的条件下,程序每次只能执行若N个分支中的一个分支。
⑴.分支程序的设计思想如下:
程序的分支一般用条件转移指令来实现。
一般常用逻辑运算指令、比较指令等操作来影响某些标志位。
程序可以有N多个分支,最少是两个分支。
SY9.ASM是一个较典型的分支程序,是根据用户在一个指定单元4000H中输入的内容的变化,实现程序的多分支转移。
(2).程序框图
43
(3).程序清单
CODE SEGMENT ;SY9.ASM 分支程序 ASSUME CS:CODE
ORG 2F40H ;[4000H]=0,1,2,3....9; DISP:0,1,2,3....0 START: JMP START0
ADDR DW DP0,DP1,DP2,DP3,DP4,DP5,DP6,DP7,DP8,DP9 START0: MOV SI,4000H MOV AL, [SI] SUB AH,AH SHL AL,1
MOV BX,OFFSET ADDR ADD BX,Ax JMP [BX]
DP0: MOV BL,0C0H ;DISP \ JMP DISP
DP1: MOV BL,0F9H ;DISP \ JMP DISP
DP2: MOV BL,0A4H ;DISP \ JMP DISP
DP3: MOV BL,0B0H ;DISP \ JMP DISP
DP4: MOV BL,99H ;DISP \ JMP DISP
DP5: MOV BL,92H ;DISP \ JMP DISP
DP6: MOV BL,82H ;DISP \ JMP DISP
DP7: MOV BL,0F8H ;DISP \ JMP DISP
DP8: MOV BL,80H ;DISP \ JMP DISP
DP9: MOV BL,90H ;DISP \ JMP DISP
;---------------------------------------- DISP: MOV AH,0DFH DISP0: MOV DX,0FF21H MOV AL,BL OUT DX,AL MOV DX,0FF20H MOV AL,AH OUT DX,AL CALL DLY
44
ROR AH,01H JMP DISP0 DLY: MOV CX,0001H DLY1: PUSH CX
MOV CX,0FFFFH DISP1: LOOP DISP1 POP CX OOP DLY1 RET CODE NDS
END START
2. 实验步骤: 联机模式:
(1) 在4000H单元写入00,01,??09中任一个数,按下MON键,返回P状态。 (2) 在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8086kAsm文件夹,点击Sy9.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(3) 数码管应根据4000H单元中内容作不同的循环显示。
3. 程序设计练习
自行设计数据块传送程序 数据块传送程序是数据块间数据搬移程序,即把内存中一数据区(称为源数据块)传送到内存另一数据区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况,如下图所示。
45