第18讲为循环指令。
循环指令共有四组:
LOOP,对CX减1后检查CX的值,如果不为0,跳转到标号
LOOPE, LOOPZ,检查是否相等或为0,如果相等或为0,跳转到标号
LOOPNE, LOOPNZ,检查是否不相等或不为0,如果不相等或不为0,跳转到标号
JCXZ,检查CX中的数是否为0,如果为0,跳转到标号。
例:
BLOCK中有100字节带符号数,把最大的数放入MAX
MOV CX, 99
MOV SI, 0
MOV BL, BLOCK[SI]
INC SI
ALIGN: CMP BL, BLOCK[SI]
JNE NEXT
MOV BL, BLOCK[SI]
NEXT: INC SI
LOOP ALIGN
有一串长度为N的字符TABLE,找出其中的空格。如果找不到,跳转到NOTFOUND
MOV CX, N
MOV AL, 20H
MOV SI, 0
DSC SI
JCXZ NOTFOUND
NEXT: INC SI
CMP AL, TABLE[SI]
LOOPNZ NEXT
JNZ NOTFOUND