知识点:
REPE/REPZ 指令
CMPSB 指令
一、CMPSB
//cmp //sub
//SCASB//scasw//scasd
cmp byte ptr [edi],al //对标志位的影响相当于sub指令
word,dword
//同时还会修改寄存器EDI的值:如果标志DF为0,则 inc EDI;如果DF为1,则 dec EDI。
//CMPSB
cmps byte ptr [edi],byte ptr [esi]//对标志位的影响相当于sub指令
cmps word ptr //cmpsw
cmps dword ptr //cmpsd
//同时还会修改寄存器EDI的值:如果标志DF为0,则 inc EDI;如果DF为1,则 dec EDI。
二、REPE/REPZ 指令
//上一节课我们了解了REPNE/REPNZ
REPNE SCAS BYTE PTR ES:[EDI] // 当ECX!=0并且ZF==0时 重复执行后边的指令 每执行一次ECX的值减1
REPE/REPZ cmpsb 当ECX!=0并且ZF=1时 重复执行后边的指令 每执行一次ECX的值减1
三、代码测试
1、比较字符串是否相等
MOV EDI,s1
MOV ESI,s2
MOV ECX,0xFFFFFFFF
XOR EAX,EAX //查找字串结束标志 '\0' eax=0
REPNE SCASB // edi,al
NOT ECX //计算字串长度存EC
汇编 REPE/REPZ 指令,CMPSB指令
最新推荐文章于 2025-02-26 18:14:26 发布