首页
社区
课程
招聘
汇编的call问题
发表于: 2005-2-6 13:29 5868

汇编的call问题

2005-2-6 13:29
5868
1。我知道call的作用 一个是调用函数,另一个是伪装的jmp,还有其他的用处么?

2。call 的返回值一定是1或者0么?

3。call的返回值一定是存在eax中么?比如说这个:
call xxxxxx
cmp eax,eax
je xxxxxx
那么call的返回值肯定存在eax中,是不是call的返回值一定是存在eax中?

谢谢~
~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
1、不太清楚。
2、Call的返回不一定是0或1,也可以是指针和句柄等,具体返回值你可以参考API大全。
3、winAPI的函数默认是以EAX作为返回值的,但这不是绝对。
2005-2-6 13:44
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
谢拉
2005-2-6 13:45
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
EAX的确是返回值,但返回值有时并不是真正想要的,只是表示函数成功执行与否等,真正想得到的值由作为参数传给函数的指针指向。

CALL = PUSH + JMP 随便你怎么用
2005-2-6 14:23
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好像系统里的API是用EAX做返回值的。
高级语言也可能是,不太清楚。

如果用汇编的话就随你习惯了,想用哪个用哪个。
2005-2-6 15:13
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
随心所欲,没有固定的规律
2005-2-6 18:11
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
7
call 相当于入栈+跳转,因此反是涉及到栈和跳转的操作都可以考虑考虑call,特定情况下会有意外收获的。
2005-2-6 21:50
0
雪    币: 5
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习
2005-2-7 00:29
0
雪    币: 1223
活跃值: (469)
能力值: (RANK:460 )
在线值:
发帖
回帖
粉丝
9
如果形参为参考的话,还要考虑到堆栈
2005-2-7 11:07
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
10
这一下楼主的问题都解释清楚了。。。

五楼好小青年啊。。。
我看他像一个版主
2005-2-7 16:57
0
雪    币: 50
活跃值: (483)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
EAX一般是API调用的返回值(显示调用是否成功等).API的返回值要看具体的参数了
2005-2-7 17:26
0
游客
登录 | 注册 方可回帖
返回
//