知識點:
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)時,繼續重復執行串比較指令.