小红书软文推广奉化商用关键词优化
2026/6/11 6:13:16 网站建设 项目流程
小红书软文推广,奉化商用关键词优化,wordpress后台权限,wordpress引用群晖文件第一步#xff1a;在 kernel_init 里安家#xff08;黄色区域#xff09;代码位置#xff1a; 右上角 kernel_init 函数开头栈图对应#xff1a; 左侧黄色的 “局部变量和数据”sub $0x10, %esp动作#xff1a; 也就是把栈顶指针 esp 往下拉 16 个字节#xff0c;给 ker…第一步在kernel_init里安家黄色区域代码位置 右上角 kernel_init 函数开头栈图对应 左侧黄色的 “局部变量和数据”sub $0x10, %esp动作也就是把栈顶指针esp往下拉 16 个字节给kernel_init这个函数划出一块地盘栈帧。movl $0x1, -0x4(%ebp)动作把数值1放入ebp往下 4 字节的地方。对应这就是代码里的int a 1。图中黄色区域的a1就存在这。movl $0x2, -0x8(%ebp)动作把数值2放入ebp往下 8 字节的地方。对应这就是代码里的int b 2。图中黄色区域的b2就存在这。第二步准备调用test打包行李橙色区域代码位置 右上角 call 指令上面的两行 push栈图对应 左侧橙色的 “参数传递”这里有一个关键知识点C语言函数参数入栈顺序是从右往左。我们要调用的是 test(a, b)所以先压 b再压 a。push -0x8(%ebp)(对应代码push b)动作把变量b也就是2压入栈中。对应图中橙色区域上方的“参数b”。push -0x4(%ebp)(对应代码push a)动作把变量a也就是1压入栈中。对应图中橙色区域下方的“参数a”。注意此时栈顶esp已经指到了“参数 a”的位置。第三步跳过去执行蓝色区域代码位置 右上角 10033: call 1000c test栈图对应 左侧蓝色的 “返回地址”call ...动作CPU要去别的地方执行代码了但它得记得回来之后该从哪接着干。所以 CPU 会自动把“下一条指令的地址”也就是add $0x8, %esp这一行的地址压入栈。对应图中蓝色的“返回地址”。此时esp指向这里图中标注的esp1。第四步进入test函数建立新家绿色区域代码位置 右下角 test 函数的开头栈图对应 左侧绿色的 “之前ebp”push %ebp(test函数的第一行代码)动作test函数说“我也要用ebp来定位我的地盘但我不能把kernel_init的ebp弄丢了。” 所以先把kernel_init的ebp值压入栈保存起来。对应图中绿色的“之前的ebp”。mov %esp, %ebp动作把当前的栈顶位置赋值给ebp。对应此时ebp和esp都指向了绿色格子的最下沿图中标注的ebp / esp2。终极解密为什么要这么折腾请看右下角test函数如何取参数现在的ebp指向绿色的“之前ebp”。往上高地址走 4 个字节是蓝色的“返回地址”。再往上走 4 个字节8就是橙色的“参数 a”再往上走 4 个字节12或0xc就是橙色的“参数 b”对照右下角代码mov 0x8(%ebp), %edx- 取出了amov 0xc(%ebp), %eax- 取出了b总结这张图画的就是黄色调用者自己存的私房钱局部变量。橙色调用者打包给被调用者的礼物参数。蓝色回家的路标返回地址。绿色被调用者用来定位的基准桩旧 ebp。被调用者test站在绿色的位置往回伸手ebp 偏移就能拿到别人传给它的参数。补充x86编译器对各字段的分类

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询