首页
社区
课程
招聘
[求助]一个程序中call的写法问题
发表于: 2010-5-22 22:30 3880

[求助]一个程序中call的写法问题

2010-5-22 22:30
3880
汇编的代码是这样的。

00962369   JNZ SHORT thlpt.0096238B
0096236B   FLD DWORD PTR SS:[EBP+1614]
00962371   MOV EAX,DWORD PTR DS:[EBX+1C]
00962374   MOV ECX,DWORD PTR DS:[EBX+18]
00962377   FSTP DWORD PTR SS:[ESP]
0096237A   PUSH EAX              //压入一个参数
0096237B   PUSH ECX              //压入一个参数
0096237C   MOV ECX,EBP           //经过中断可知,ebp每次中断都相同,是固定值。
0096237E   CALL thlpt.00961F40    //这个call内的返回是retn 0c,所以堆栈内有3个参数应该是对的。
00962383   POP EDI
00962384   POP ESI
00962385   POP EBP
00962386   POP EBX
00962387   ADD ESP,24
0096238A   RETN


我的call是这样的写的.
FLD dword ptr ss:[10AF67C]
FSTP dword ptr ss:[esp]
push 1230                  //直接从中断中得来的值。
push 01A0                  //直接从中断中得来的值。
mov ecx,010AE068
call 00961F40  


但是最后call出错了,我还不知道原因,写call我也刚学不久。有哪位高手指点下。

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这成了游戏论坛了.我不会写call,不过看过有人讲解,要注意调用的内部是不是还用到其它的寄存器.还有,堆栈要不要平衡,这2个地方有一处有问题也不行.
2010-5-22 23:16
0
游客
登录 | 注册 方可回帖
返回
//