首页 > 代码库 > scasb指令 和 repnz指令

scasb指令 和 repnz指令

SCASB:
在汇编语言中SCASB是一条字符串操作指令,源自“SCAN String Byte”的缩写。该指令的具体操作是 :
计算 AL - byte of [ES:EDI] , 设置相应的标志寄存器的值;
修改寄存器EDI的值:如果标志DF为0,则 inc EDI;如果DF为1,则 dec EDI。
SCASB指令常与循环指令REPZ/REPNZ合用。例如,REPNZ SCASB 语句表示当 寄存器ECX>0 且 标志寄存器ZF=0,则再执行一次SCASB指令。
比较寄存器AL的值不相等则重复查找的字
 
repnz:重复执行其后面的指令,CX或ECX存放最多比较次数,DI或EDI存放查找表首地址,AL或AX或EAX存放想查找的内容。当(CX或ECX)= 0 或 ZF=1 退出重复,否则,(CX或ECX)自减一,执行其后的串指令。CX或ECX为0结束是因为已经查表完毕,没有匹配到;ZF=1说明 “比较的结果为0”,也就是查找到一样的内容,说明匹配到想要查找的内容。

scasb指令 和 repnz指令