经典汇编语言教程:6.2.3 循环结构

6.2.3 循环结构

循环结构是一个重要的程序结构,它具有重复执行某段程序的功能。通常,循环结构包括以下四个组成部分:

1、循环初始化部分——初始化循环控制变量、循环体所用到变量;
2、循环体部分——循环结构的主体;
3、循环调整部分——循环控制变量的修改、或循环终止条件的检查;
4、循环控制部分——程序执行的控制转移。

以上四部分可以在程序中用各种不同的形式体现出来,有时也并非清析地表达出来。常用的循环结构如图6.3所示。

(a)、Do—While结构(b)、While结构
图6.3 常用的循环结构示意图

一、用循环指令构成循环结构

在编写循环结构的程序片段时,我们可以多种方法来循环结构。如:循环次数是已知的,可用LOOP指令来构造循环;当循环次数是未知或不定的,则可用条件转移或无条件转移来构成循环结构。

例6.10 分类统计字数组data中正数、负数和零的个数,并分别存入内存字变量Positive、Negative和Zero中,数组元素个数保存在其第一个字中。

解:显示解答

例6.11计算数组score的平均整数,并存入内存字变量Average中,数组以-1为结束标志。

解:
DATA1SEGMENT
dataDW 90, 95, 54, 65, 36, 78, 66, 0, 99, 50, -1
AverageDW 0
DATA1ENDS
CODE1SEGMENT
ASSUME CS:CODE1, DS:DATA1
START:MOVAX, DATA1
MOVDS, AX
XORAX, AX
XORDX, DX;用(DX,AX)来保存数组元素之和
XORCX, CX;用CX来保存数组元素个数
LEASI, data;用指针SI来访问整个数组
again:MOVBX, word ptr [SI]
CMPBX, 0
JLover
ADDAX, BX
ADCDX, 0;把当前数组元素之值加到(DX,AX)中
INCCX;数组元素个数加1
ADDSI, 2
JMPagain
over:JCXZexit;防止零作除数,即数组是空数组
DIVCX
MOVAverage, AX
exit:MOVAX, 4C00H
INT21H
CODE1ENDS
ENDSTART

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号