当前位置: 首页 > news >正文

上海交通网站建设泉州seo排名公司

上海交通网站建设,泉州seo排名公司,广州口碑好的网站建设设计,怎么将网站做成公司官网目录 一、核心概念 二、函数调用过程(以 x86 cdecl 为例) 三、x86 vs x64 区别 四、示例分析(C代码 → 汇编) 五、常见问题 一、核心概念 调用约定 (Calling Convention) 规定参数传递顺序(如 cdecl 是右到左&…

目录

一、核心概念

二、函数调用过程(以 x86 cdecl 为例)

三、x86 vs x64 区别

四、示例分析(C代码 → 汇编)

五、常见问题


一、核心概念

  1. 调用约定 (Calling Convention)

    • 规定参数传递顺序(如 cdecl 是右到左)、栈清理责任(调用者或被调用者清理)。

    • 常见约定:cdecl(C默认)、stdcall(Win32 API)、fastcall(寄存器传参)。

  2. 栈帧 (Stack Frame)

    • 每个函数调用时在栈上分配的内存块,保存返回地址、参数、局部变量等。

    • 通过 EBP(基址指针)和 ESP(栈指针)管理。

  3. 关键寄存器

    • EIP: 指向下一条要执行的指令(不可直接修改)。

    • ESP: 栈顶指针。

    • EBP: 基址指针,标记当前栈帧的起点。

二、函数调用过程(以 x86 cdecl 为例)

1. 调用者 (Caller) 准备参数

push 3        ; 第三个参数(假设从右向左压栈)
push 2        ; 第二个参数
push 1        ; 第一个参数
call my_func  ; 1. 将返回地址压栈 2. 跳转到 my_func
add esp, 12   ; 调用者清理栈(cdecl 约定)

2. 被调用函数 (Callee) 建立栈帧

my_func:push ebp           ; 保存旧基址指针mov ebp, esp       ; 新基址指针指向当前栈顶sub esp, 8         ; 分配8字节局部变量空间

此时栈结构:

[ebp+12] 参数3
[ebp+8]  参数2
[ebp+4]  参数1
[ebp]    旧EBP
[ebp-4]  局部变量1
[ebp-8]  局部变量2

3. 函数执行

通过 EBP 偏移访问参数和局部变量:

mov eax, [ebp+8]   ; 取第一个参数
mov [ebp-4], eax   ; 存入局部变量1

4. 函数返回

mov eax, 42        ; 返回值存EAX
mov esp, ebp       ; 恢复ESP到栈帧起点
pop ebp            ; 恢复旧EBP
ret                ; 弹出返回地址,跳回调用者

三、x86 vs x64 区别

四、示例分析(C代码 → 汇编)

假设有函数:

int add(int a, int b) {return a + b;
}

对应 x86 汇编:

add:push ebpmov ebp, espmov eax, [ebp+8]    ; 取aadd eax, [ebp+12]   ; 加bmov esp, ebppop ebpret

调用代码:

push 2
push 3
call add
add esp, 8   ; 清理栈
; 结果在EAX中

五、常见问题

  1. 栈溢出:递归过深或局部变量过大导致栈破坏。

  2. 调用约定不匹配:如误用 stdcall 未清理栈,引发崩溃。

  3. 寄存器保存:被调用函数需保存 EBXESIEDI(按约定)。

http://www.dtcms.com/a/417427.html

相关文章:

  • 盗版网站是如何做的产品推广方案怎么写
  • 网站中文域名到期有没有影响网站定制化什么意思
  • 网站开发的项目流程昆明抖音代运营
  • phpcms怎么做网站大设计师论坛网页设计
  • 建设红外测温仪网站招聘网站如何做
  • 西安云众网站建设中国兰州
  • 如何做体育彩票网站浙江平台网站建设制作
  • 刷网站排名 优帮云秦皇岛网站定制哪家好
  • 苏州网站建设品牌进什么公司
  • 网站开发与设计论文网站后台权限分配说明
  • 网站开发的基本知识莆田网站建站建设
  • 玉环做企业网站微信微网站模板下载
  • 天津医疗行业网站建设wordpress上传中文图片不显示
  • 做网站优化步骤家具网站开发设计论文
  • 怎么推广自己的网站链接做集团网站的
  • 吉林手机版建站系统价格企业级建站
  • 建设商城网站公司网页制作与网站建设课堂实录
  • 有哪些网站可以卖自己做的图片建站之星模板怎么设置
  • 美味西式餐饮美食网站模板上海网站开发工程师招聘网
  • ps制作网站公司网站建设工作计划
  • 商务网站的建设步骤wordpress 免费个人主题
  • 提高asp.net网站安全性如何推广网站业务
  • 技术支持 石家庄网站建设深圳建设网站需要多少钱
  • 武宁网站ui专业设计网站建设重要性
  • 保定php网站制作扬中网络推广
  • 各大门户网站用什么做的建一个网站大约花多少钱
  • 诸暨企业网站建设株洲网站制作公司
  • 文字云网站佛山网站建设佛山网站制作
  • 门户网站的建设要求深圳高端网站
  • 网站的开发方法卖域名赚钱吗