登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 83|回复: 0

CALL是什么?

[复制链接]

68

主题

2

回帖

91

积分

网站编辑

积分
91
发表于 2025-1-3 22:56:35 | 显示全部楼层 |阅读模式
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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|断点社区 |网站地图

GMT+8, 2025-1-19 02:34 , Processed in 0.073983 second(s), 27 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

快速回复 返回顶部 返回列表