CALL是什么?
CALL是汇编中的一个指令,CPU执行这条指令会执行2个动作
一:压入EIP入栈 二:跳转到后面的地址. 跟RETN指令配合就实现了汇编中子程序的作用,通常我们常说的写CALL就是 调用游戏中已经存在的功能子程序.
比如说
viod myadd (int a, int b)
{
int c=a+b;
}
这是一个简单的子程序,当我们用程序语言调用那么就是 myadd(5,4);
而在汇编里则是
push 4
push 5
call myadd
编译好的程序不会存在什么函数变量和子程序. 只有1和0 . 所以编译器会给myadd 分配一个地址.在反汇编里就是
push 4
push 5
call ********
CALL ******* 并不单单就是子程序的调用,他还可以调用 函数 API.
如函数 send
send(
socket;
buf;
len;
flags;
)
在汇编里调用就是
push flags
push len
push buf
push socket
call send
时间: 2024-10-13 01:43:10