汇编 REPNE/REPNZ指令,SCASW指令,SCASD指令,SCAS指令
知识点: REPNE/REPNZ 指令 SCASW 指令 SCASD 指令 SCAS 指令 一、SCASW 指令 //SCASB cmp word ptr [edi],al //对标志位的影响相当于sub指令 //同时还会修改寄存器EDI的值:如果标志DF为0,则 inc EDI;如果DF为1,则 dec EDI。 二、SCASD 指令 SCAS BYTE PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次EDI的值加 1 SCAS WORD PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次EDI的值加 2 SCAS DWORD PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次EDI的值加 4 REPNE SCAS BYTE PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次ECX的值减1 REPNE SCAS WORD PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次ECX的值减1 REPNE SCAS DWORD PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次ECX的值减1 REPNE 和REPNZ 是同一条指令的不同助记符 三、实例运用 1、查找DWORD数据 在"sabcdef12345678" 定位"f123" 小结:REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令.