循环是一种特殊的转移流程,当满足(或不满足)某条件时,反复执行一系列操作,直到不满足(或满足)条件为止。循环流成的条件一般都是循环计数,在程序中用循环计数来控制循环次数。
1 .循环指令 loop
语句格式: loop 短标号
功能:( cx )- 1 ≠ 0 ,则程序转移(循环);否则,顺序执行。
说明:使用 loop 指令可代替两条指令:
dec cx
jne 短标号
2 .相等 / 为零循环指令 loope
语句格式:① loope 短标号
② loopz 短标号
功能:( cx )- 1 ≠ 0 且 zf=1 ,则程序转移(循环);否则,顺序执行。
3 .不相等 / 不为零循环指令 loopne
语句格式:① loopne 短标号
② loopnz 短标号
功能:( cx )- 1 ≠ 0 且 zf=0 ,则程序转移(循环);否则,顺序执行。
4 . cx 为零转移指令 jcxz
语句格式: jcxz 短标号
功能:( cx )- 1 ≠ 0 ,则程序转移(循环);否则,顺序执行。
例:有一串l个字符的字符串存储于首地址为 ascii_str 的存储区中,如要求在字符串中查找“空格” (ascii 码为 20h) ,找到则继续执行,未找到则转到 not_found 去执行。
mov cx,l
mov si,-1
mov al,20h
next:inc si
cmp al,ascii_str[si]
loopne next
jnz not_found
…
not_found:
…