小儿垂钓 发表于 2006-3-8 18:05:03

飘云老师请进[想请叫你一个问题]

:004BDB6F 83F808            cmp eax, 00000008 =========比较卡号是否为8位
:004BDB72 757F                jne 004BDBF3
:004BDB74 8B45FC            mov eax, dword ptr =========伪码送到eax
:004BDB77 8A00                mov al, byte ptr =========第一位送到al
:004BDB79 8B55FC            mov edx, dword ptr =========伪码送到edx
:004BDB7C 3A4202            cmp al, byte ptr ========伪码第三位与al(即第一位)比较
:004BDB7F 7550                jne 004BDBD1 =========是否相等?
:004BDB81 8B45FC            mov eax, dword ptr =========伪码送到eax
:004BDB84 80780138            cmp byte ptr , 38=========第二位是否为38(即十进制8)
:004BDB88 7547                jne 004BDBD1=========不等则game over!



飘云老师,许多网友都说,不学算法,永远都是菜鸟,但是我不知道:比如说上面代码第一行,你怎么就知道:比较卡号是否为8


还有第三行mov eax, dword ptr =========伪码送到eax,为什么就是伪码送到eax,是用od调试知道呢,还是根据汇编知道的呢?


希望飘云老师指点一二!


还有你做的算法分析的视频教程,在用od分析是添加注释时,总是有送假码,或与真码比较等等的注释,你是怎么知道程序的代码就是这些作用呢?

东方青石 发表于 2006-3-8 18:22:04

别看 他为00000008阿,他实际上就是8
而cmp表示比较命令
mov eax, dword ptr 是用od 调试知道的!

小儿垂钓 发表于 2006-3-8 19:53:28

谢谢你呀

东方青石 发表于 2006-3-8 22:26:41

谢什么,我还觉得很惭愧呢!一直没有什么时间来啊。

野猫III 发表于 2006-3-23 23:09:33

呵呵。。。这个问题咱能看懂!

回来我的爱 发表于 2007-9-19 12:23:42

学习一下/:001 /:001
页: [1]
查看完整版本: 飘云老师请进[想请叫你一个问题]