repe cmpsb指令解析
来源:互联网 发布:linux shell编程实例 编辑:程序博客网 时间:2024/06/07 03:43
repe是一个串操作前缀,它重复串操作指令,每重复一次ECX的值就减一
一直到CX为0或ZF为0时停止。
cmpsb是字符串比较指令,把ESI指向的数据与EDI指向的数一个一个的进行比较。
当repe cmpsb配合使用时就是字符串比较啦,当相同时继续比较,不同时不比较
mov edi,[ebp+08] 将你输入的密码的地址付给EDI
mov esi,[ebp+0c] 真正的地址付给ESI
mov ecx,[ebp+10] 将他们的长度附给ECX
repe cmpsb 进行比较
jecxz 00401260 如果CX等于0,即密码正确跳
mov eax,00 密码不正确时,会EAX为0
再补充一下吧:
cmpsb是将ESI指向的字节与EDI指向的字节进行减操作
如果两个字符相等,即ZF为1,当不相等时ZF为0
而REPE停止重复的条件是ZF为0或CX为0,说明啦,当ZF为0时
肯定就是字串不同啦,当CX为0时,表明字符串比对成功没有出现
不相等的情况。
不过我觉得这样比不太好,如果你的密码打了8位
而真正的密码4位,如果ECX是4的话,他真会比对4位,正好你前4位
打对啦,那输入的密码也是正确的啦。如果他的ECX取得是你输入的密码
的个数,就没问题啦。不知道具体程序是什么样的,乱评一下,别介意。
阅读全文
0 0
- repe cmpsb指令解析
- repe cmpsb指令解析
- 用MASM32来DIY一个判断字符串1是否为字符串2的子串的函数(应用repe cmpsb指令,区分大小写)
- Win32ASM学习[18]:串指令-MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE
- Win32 汇编 - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等
- Repe Me - Nirvana
- 指令解析
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令(zz)
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- 解析#pragma指令
- linux 使用sh启动多jar包 编写三个脚本
- Python 读取文件 写入文件
- 二级列表ExpenableList
- 指针
- Linux环境下查看历史操作命令及清除方法
- repe cmpsb指令解析
- spring添加事务控制
- Unicode数据类型(个人笔记)
- Handler倒计时
- 2017年9月反思
- 注解模板
- Servlet API
- kubernetes结合portworx
- java代码执行linux命令