REPNZ用作为一个串操作指令的前缀,它重复气候的串操作指令动作。没重复一次CX的值减一,重复一直进行到CX为0,获知串操作指令使零标志ZF为1时止。
重复操作指令REPNZ主要用在字符串扫描指令SCAS之前,重复前缀REPNZ与
SCASB指令配合,表示当不等时继续扫描,一直搜索到字符串结束。如果搜索到,则ZF标志位1,
CX的值可能为0;如果没有搜索到,则ZF标志为0,CX之值一定为0
例子 :编写程序测试字符串的长度。字符串是以0结尾。
MLENGTH = 128 ;定位常量,缓冲区最大的长度
DSEG SEGMENT
BUFF DB MLENGTH ;第一个字节存放缓冲区的最大值
DB ? ;第二个字节存放实际字符串的长度
DB MLENGTH DUP (0) ;真实字符串
MESSG0 DB 'Please input:$'
MESSG1 DB 'Length = $'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX ;设置DS寄存器
MOV DX,OFFSET MESSG0