首页
社区
课程
招聘
[求助]eax寄存器的问题
发表于: 2006-11-27 16:05 5370

[求助]eax寄存器的问题

2006-11-27 16:05
5370
arg_0= dword ptr  8
arg_4= word ptr  0Ch

push    ebp
mov     ebp, esp
mov     eax, [ebp+arg_0]
movzx   edx, [ebp+arg_4]
mov     eax, [eax+0B66h]
test    eax, eax
jz      short loc_806D66C
这是一个子程序 我的问题是 test eax, eax 是eax寄存器的比较
这几天看了很多汇编的教程和录像 说到过寄存器寻址 不过 这二个eax 我怎么老分不清是从哪来的呢 如果一个子程序只有一个eax寄存器 那么 他们二个比较还有意义吗  如果有多个eax寄存器 那很多数值怎么分析他是存在哪个eax寄存器中的呢

希望明白的朋友解答一下 初学者都是带着疑问来学习的 如果没有疑问 我感觉一点都学不进去汇编语言了

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
这是一个位比较指令,计算机采用的是2进制,用1和0作为功能的开关。相当于逻辑运算AND。

常见的用法是查看某控制位是否打开。另外也可以用来比较某数据是否为0

虽然也可以用CMP EAX,0判断EAX是否为0,但是按照INTEL的技术手册的说法,CPU的逻辑运算比算术运算更快。

所以比较是否为0,一般都用TEST而不是CMP。

希望你有疑问,有兴趣学汇编的时候能自己查资料,随便一本汇编教程都有介绍的
2006-11-27 16:18
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
以前回答过这个问题,看下贴的4楼:
http://bbs.pediy.com/showthread.php?s=&threadid=26647
2006-11-27 16:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢版主和这位朋友的回复 那么 cmp eax,eax 也是比较eax是不是为0吗
2006-11-27 16:25
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
最初由 wangjjf 发布
谢谢版主和这位朋友的回复 那么 cmp eax,eax 也是比较eax是不是为0吗

是的。不过我想没人会这么写了,一般是使用or和test指令来测试。
2006-11-27 16:29
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
我想知道你知道多少条汇编指令的真正用法

CMP比较是算术运算,相当于减法

EAX-EAX,无论EAX是什么,结果都一定是0
2006-11-27 16:30
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
7
小虾  
2006-11-27 16:31
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
最初由 笨笨雄 发布
我想知道你知道多少条汇编指令的真正用法

CMP比较是算术运算,相当于减法

EAX-EAX,无论EAX是什么,结果都一定是0
........

2006-11-27 16:33
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
9
你回帖比我快一步了,那话不是对你说的。有时真不知道怎么答新人问题有什么意义。。。

X86 SSE MMX 3DNOW,这么多指令,难道都要解释?
2006-11-27 16:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不好意思 我在看一个软件的 反汇编 有些语句想不通 cmp eax, eax是我 杜撰出来的 软件里面没有这样的语句

真心的感谢二位热心朋友 这个问题我也是考虑了3天才在看雪提问的
2006-11-27 16:46
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
11
你不用不好意思,是我今天正好在MSDN下DDK的帮忙文档,新手问题答多了,有点不耐烦

自己思考问题是好事,但是脱离最基本的游戏规则,就不好了
2006-11-27 16:54
0
游客
登录 | 注册 方可回帖
返回
//