汇编命令 CALL 的是什么参数

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:34:26
这是调用的部分
004719F6 |. E8 55FFFBFF CALL elementc.00431950
004719FB |. D95C24 4C FSTP DWORD PTR SS:[ESP+4C]
004719FF |. 8B4424 4C MOV EAX,DWORD PTR SS:[ESP+4C]
00471A03 |. 55 PUSH EBP
00471A04 |. 8D4C24 34 LEA ECX,DWORD PTR SS:[ESP+34]
00471A08 |. 50 PUSH EAX
00471A09 |. 51 PUSH ECX
00471A0A |. 53 PUSH EBX
00471A0B |. 8D5424 28 LEA EDX,DWORD PTR SS:[ESP+28]
00471A0F |. 6A 00 PUSH 0
00471A11 |. 52 PUSH EDX
00471A12 |. 8BCE MOV ECX,ESI
00471A14 |. E8 3724FEFF CALL elementc.00453E50

这是程序段开始部分

00453E50 /$ 51 PUSH ECX ;
00453E51 |. 53 PUSH EBX
00453E52 |. 56 PUSH ESI
00453E53 |. 8BF1 MOV ESI,ECX
00453E55 |. 8B4E 14 MOV ECX,DWORD PTR DS:[ESI+14]
00453E58 |. 81C1 98050000 ADD ECX,598
00453E5E |. E8 9D0DF

00453E50  /$  51            PUSH ECX ;
00453E51  |.  53            PUSH EBX
00453E52  |.  56            PUSH ESI //保存环境
00453E53  |.  8BF1          MOV ESI,ECX //esi = ecx = 第一个参数
00453E55  |.  8B4E 14       MOV ECX,DWORD PTR DS:[ESI+14]
看这段代码,应该是fastcall调用方式,该调用方式是使用ecx来传第一个参数,edx来传第二个参数,其他的使用堆栈来传递。00453E50这个函数在这部分只看出有一个参数,其他的参数不确定,找一下函数返回的地方,看返回几个参数。
我猜这里可能只有一个参数,即该函数调用:fun_00453E50(esi)
00471A12  |.  8BCE          MOV ECX,ESI //ecx = esi = 第一个参数
00471A14  |.  E8 3724FEFF   CALL elementc.00453E50。

补充:汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。

汇编的之程序一定要用call调用吗? 汇编里的跳转命令的格式是什么??(同学代问) 汇编调试命令使用! 汇编的编程环境是什么? 懂汇编的 看下这个命令的错误 高尔夫球场CALL果岭的主要作用是什么? 用汇编写并口的读写命令该怎么写? 汇编高于某个数时转移的命令怎么编? 汇编是什么 call me crazy call me mad 中文翻译是让我疯狂,请问这里的call是什么用法????