下载此文档

循环程序设计解析.docx


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
淮海工学院计算机工程学院
实验报告书
课 程名:《微机原理与接口技术》
题 目: 实验三程序设计与调试之三:
循环程序设计
班 级:
学 号:
姓 名:
评语:
成绩: 指导教师:
批阅时间:
.目的和要求
进一步了解重复控制指令、串操作指令及重复前缀的格式和功能,通过解决循环问题练****这 些指令和重复前缀的选用。对于既可以用重复控制指令,又可以用串操作指令及重复前缀的 场合,比较两者的优劣。
练****针对具体问题建立合适的循环结构,进一步了解计数控制、条件控制的循环结构的适用 场合。
.实验内容
验证题
调试例1和例2给出的程序,验证两个程序的正确性。对于这两个程序在 SI、DI初值设置上的
区别作出分析,并对两个程序的优劣作比较。
【例1】 编写一程序,用以判断 BUF1和BUF2两个等长度的数据区中数据是否相同。相同则使 FLAG单元置0,否则置-1。
;NAME CXAMPLE1
.486
DSEG SEGMENT use16
BUF1 DB (N个字节数)
BUF2 DB (N个字节数)
COUNT EQU $— BUF2
FLAG DB 0
DSEG ENDS use16
SSEG SEGMENT STACK use16
DB 80H DUP (0)
SSEG ENDS
CSEG SEGMENT use16
ASSUME DS DSEG SS: SSEG CS: CSEG
START MOV AX, DSEG
MOV DS, AX
MOV SI , OFFSET BUF1- 1
MOV DI , OFFSET BUF2- 1
MOV CX COUNT
NEXT: INC SI
INC DI
MOV AL [SI]
CMP AL [DI]
LOOPZ NEXT
JZ OK
MOV FLAG -1
OK MOV AH 4CH
INT 21H
CSEG ENDS
END START
若在此程序中将指令 MOV SI, OFFSET BUF1-1 MOV DI, OFFSET BUF2-1 改为
MOV SI , OFFSET BUF1 MOV DI, OFFSET BUF2 且将指令 INC SI INC DI 改放到CMP旨令之后,这样修改是否正确,请读者思考。
【例2】 要求实现的程序功能与例 1同。
分析:考虑到 REPZ前缀结合 CMPSB旨令可以实现两个存储器操作数的比较,实现变址寄存器
SI、DI的增(或减1),实现计数寄存器 CX减1,并根据比较结果及(CX)是否为0来控制是否进 行后续数据的比较。因此,可将其用于本例题的循环程序设计。值得注意的是, CMPSBI令所涉及的
两个操作数分别用 DS [DI]和ES: [DI]给出,故应该使段寄存器 DS和ES均存放DATAa据段的段地 址;若在循环工彳^部分之前使 SI指向BUF1数据区首址,使 DI指向BUF2数据区首址,则应同时使用 CLD指令,使DF置“0",以便CMPS脂令使SI、DI作增1修改。程序如下:
;NAME EXAMPLE2
CSEG SEGMENT use16
ASSUME DS: DSEG ES: DSEG SS: SSEG CS CSEG START MOV AX DSEG MOV DS , AX MOV ES, AX
MOV SI , OFFSET BUF1 MOV DI , OFFSET BUF2 MOV CX, COUNT CLD
REPZ CMPSB JZ OK MOV FLAG -1 OK MOV AH, 4CH
INT 21H CSEG ENDS END START
设计题
(1)、编写程序,以统计 BUF数据区中各有符号字节数的平均值。上机调试程序,检查程序正确 性。
(2)、按照要求编程, 统计BUF字数据区第一个零数据后的各数据中正数及负数的个数,并分别送
POSI及NEG的储单元,试编写程序。
(3)并且要求在搜索第一个零数据时分别采用重复控制指令和串操作指令。上机调试程序,检查程
序正确性,并指出该程序使用了什么循环控制方法。
验证一 :DSEG SEGMENT ; use16
BUF1 DB 34h,45h;(N 个字节数)
BUF2 DB 35H,54h;(N 个字节数)
COUNT EQU $-BUF2
org 100
FLAG DB 0
DSEG ENDS ;use16
SSEG SEGMENT STACK ; use16
DB 80H DUP(0)
SSEG ENDS
CSEG SEGMENT ;use16
ASSUME DS:D

循环程序设计解析 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息