循環(huán)是一種特殊的轉(zhuǎn)移流程,當(dāng)滿足(或不滿足)某條件時(shí),反復(fù)執(zhí)行一系列操作,直到不滿足(或滿足)條件為止。循環(huán)流成的條件一般都是循環(huán)計(jì)數(shù),在程序中用循環(huán)計(jì)數(shù)來(lái)控制循環(huán)次數(shù)。
1 .循環(huán)指令 loop
語(yǔ)句格式: loop 短標(biāo)號(hào)
功能:( cx )- 1 ≠ 0 ,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。
說(shuō)明:使用 loop 指令可代替兩條指令:
dec cx
jne 短標(biāo)號(hào)
2 .相等 / 為零循環(huán)指令 loope
語(yǔ)句格式:① loope 短標(biāo)號(hào)
② loopz 短標(biāo)號(hào)
功能:( cx )- 1 ≠ 0 且 zf=1 ,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。
3 .不相等 / 不為零循環(huán)指令 loopne
語(yǔ)句格式:① loopne 短標(biāo)號(hào)
② loopnz 短標(biāo)號(hào)
功能:( cx )- 1 ≠ 0 且 zf=0 ,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。
4 . cx 為零轉(zhuǎn)移指令 jcxz
語(yǔ)句格式: jcxz 短標(biāo)號(hào)
功能:( cx )- 1 ≠ 0 ,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。
例:有一串l個(gè)字符的字符串存儲(chǔ)于首地址為 ascii_str 的存儲(chǔ)區(qū)中,如要求在字符串中查找“空格” (ascii 碼為 20h) ,找到則繼續(xù)執(zhí)行,未找到則轉(zhuǎn)到 not_found 去執(zhí)行。
mov cx,l
mov si,-1
mov al,20h
next:inc si
cmp al,ascii_str[si]
loopne next
jnz not_found
…
not_found:
…