经典汇编语言教程:6.2.3 辅助循环伪指令

6.2.3 辅助循环伪指令

(1)、终止循环伪指令

.BREAK
.BREAK  .IF condition

该伪指令用来终止包含它的最内层循环。前者是无条件终止循环,后者是仅当逻辑表达式condition为真时,才终止循环。

.WHILE  1.REPEAT


.BREAK .IF condition


.BREAK .IF condition

ENDW.UNTIL 0

对于以上二个循环,如果没有指令来终止循环的话,它们都将进入死循环状态,但如果在该层循环体内,存在伪指令“.BREAK.IF condition”的话,那么,当逻辑表达式condition为真时,该循环就会被终止了。

(2)、循环继续伪指令

.CONTINUE
.CONTINUE .IF condition

该伪指令用于直接跳转到包含它的最内层循环的计算循环条件表达式的代码处。前者是无条件转移到计算循环条件表达式的代码处,后者是仅当条件表达式condition为真时,才进行这样的跳转。

辅助循环伪指令.BREAK和.CONTINUE只能在伪指令.WHILE-.ENDW和.REPEAT-.UNTIL的循环体内使用。

例6.12 显示9个数字字母'1'~'9',26个大写字母,和显示任意输入的数字字符,并用按“回车”键来结束本程序的运行。

解:

DATA1SEGMENT
MSG1DB 13, 10,  "Iteration: "
NUM1DB '1', "$"
MSG2DB 13, 10,  "Alphabet: $"
NUM2DB 'A', " $"
MSG3DB 13, 10, "Type digits, then press ENTER: $"
DATA1ENDS
CODE1SEGMENT
ASSUME CS:CODE1, DS:DATA1
START:MOVAX, DATA1
MOVDS, AX
MOVCX,9
MOVAH, 09H
MOVDX, OFFSET MSG1
.REPEAT
INT 21H
INC NUM1
;显示Iteration: 1,2,~,9
.UNTILCXZ
MOVDX,OFFSET MSG2
INT21H;显示字符串"Alphabet:"
MOVAH, 09H
MOVDX, OFFSET NUM2
.REPEAT
INT 21H
INC NUM2
;显示当前字母
;当前字母向后移
.UNTIL NUM2 > 'Z';显示整个大写字母表
MOVAH, 09H
MOVDX, OFFSET MSG3
INT21H
.WHILE  1;循环条件为永真的循环
MOV AH, 07H
INT 21H
;不带回显地从键盘读一个字符
.BREAK .IF AL == 13;如果输入“回车”键,则终止循环
.CONTINUE .IF(AL<'0') || (AL>'9');如果字符不是数字字符,则继续循环
MOV DL, AL
MOV AH, 02H
INT 21H
;显示所输入的数字字母
.ENDW
MOVAX, 4C00H
INT21H
CODE1ENDS
ENDSTART

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

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

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