函数
没有感情的rainbow 人气:1jmp
用jmp实现函数,需要再用jmp调回来,且不可重复
call
用call实现函数,并且在使用后能跳回来继续下一行指令
如实现两个整数的加法
0x00186784 mov ecx,1
0x00186788 mov edx,1
0x0018678C call 0x0018679C 记录函数的头地址
……
0x0018679C add ecx,edx 以下三行为函数
0x001867A0 mov eax,ecx
0x001867A4 ret 此行返回到call的下一行
如果参数过多,利用堆栈
将过多的参数压入栈中,使用函数时在取出来用
如将计算1+2+3+4+5
push 1
push 2
push 3
push 4
push 5
call m
……
mov eax,dword ptr ds:[esp+4]
mov eax,dword ptr ds:[esp+8]
mov eax,dword ptr ds:[esp+12]
mov eax,dword ptr ds:[esp+16]
mov eax,dword ptr ds:[esp+20]
ret
加载全部内容