C语言:函数栈帧的创建和销毁(32位下观察)

一、寄存器(0:3:35)

1.寄存器有哪些?(6种)(0:38:50)

2.esp和ebp这两个寄存器中,存放的是什么?用来干嘛的?(0:4:25)

3.对2,如何维护的?(0:5:15)

a.每一个函数调用,都要干嘛?(0:5:30)

b.为main函数开辟的空间叫做什么?由谁来维护的?(0:8:5)

①ebp指向函数栈帧的高地址还是低地址?esp呢?(0:8:45)
②esp和ebp中间这块空间(0:9:55)
③esp和ebp维护哪块空间?(0:9:30)

4.ebp和esp分别叫做什么?(0:10:20)

5.打开调用堆栈(0:11:45)

a.main函数是被哪个函数调用的?(0:14:10)

①调用main函数的那个函数又是被谁调用的呢?(0:14:25)
②表明在栈区,main函数所占空间的上方,一定有调用它的那两个函数的空间(0:15:55)

b.main函数的返回值给谁了?(0:13:30)

二、如何转到反汇编?(0:16:40)

1.为什么要关闭显示符号名?(0:17:15)

a.什么是符号名?

2.在进入main之前,esp和ebp指向哪儿?

3.push是什么?(0:19:30)

a. push        ebp  是什么意思?(0:20:17)

①. push        ebp  结束以后,esp指向哪里去了?(0:21:2)

②对a,esp的地址增加还是减少?几字节?(0:21:30)

4.move是什么?(0:23:0)

a. move        ebp,esp  是什么意思?(0:23:5)

move        ebp,esp结束以后,ebp指向哪里去了?(0:23:30)

5.sub是什么?(0:23:55)

a.sub         esp,0E4h是什么意思?(0:24:0)

①0E4h是几进制的数?对应的十进制大小是多少?如何快速查看进制转十进制?(0:24:5)
sub         esp,0E4h结束以后,esp和ebp中间隔了一大块空间。这块空间就是它们将要维护的新空间,即main的函数栈帧。也是预开辟空间。

6.这是什么意思?(0:27:35~0:29:0)

push        ebx  
push        esi  
push        edi  

7.lea是什么(0:30:8)

a.lea对应的原因单词:load effective address  加载有效地址

b.在勾选了显示符号名的背景下,lea              edi,[ebp-0E4h]是什么意思?(0:30:30)

①lea              edi,[ebp-0E4h]结束以后,edi指向哪里去了?(0:31:15)

8.下面是什么意思(0:36:0)

lea           edi,[ebp-0E4h]
move          ecx,39h
move          eax,0CCCCCCCCh
rep stos      dword

a.在反汇编中,rep stos是什么意思?

b.dword是什么意思(0:32:50)

①1个word是几个字节?(0:32:50)
c.从哪到哪的空间全部被替换成0CCCCCCCC?(0:34:0)

d.move          ecx,39h是什么意思?(0:39:50)

①ecx是什么?(0:40:0)

e.总结:

 

9.什么是压栈?对应的单词?(0:37:30)

10.什么是出栈?对应的单词?(0:37:30)

11.mov         dword ptr [ebp-8],0Ah  是什么意思?(0:41:0) 

a.ebp-8维护的空间在哪里?(0:41:20)

b.a和10存放在哪里?(0:41:30)

c.烫烫烫烫烫是怎么来的?(0:42:25)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP简介

UDP 1. UDP格式2. UDP特点3. 差错检验 1. UDP格式 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度; 如果校验和出错,就会直接丢弃; 2. UDP特点 无连接: 知道对端的IP和端口号就直接进行传输,不需…

Vue——webpack

webpack 一、Install1.全局安装2.局部安装 二、总结1.打包2.定义脚本3.配置文件定义(webpack.config.js)4.项目重新加载依赖5.webpack打包Css6.style-loader 一、Install 1.全局安装 npm install webpack webpack-cli -g2.局部安装 以项目为单位,一个项…

git 报错 protocol ‘https‘ is not supported解决

报错原因:选择不了其他分支代码,甚至都看不到其他分支,我这边解决了两次报错,情况如下: 第一种报错: idea中刷新分支报错如下: Fetch Failed protocol https is not supported 话不多说&#…

爬虫013_函数的定义_调用_参数_返回值_局部变量_全局变量---python工作笔记032

然后再来看函数,可以避免重复代码 可以看到定义函数以及调用函数

HCIA---路由器--静态路由

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 一.路由器简介 二.路由器转发原理 三.骨干链路 四.路由分类 五.静态路由 总结 一.路由器简介 路由器是一种网络设备,用于将数据包从一个网络发送…

最大子数组和——力扣53

文章目录 题目描述解法一 动态规划题目描述 解法一 动态规划 int maxSubArray(vector<int>& nums){int pre=0, res=nums

探索ES高可用:滴滴自研跨数据中心复制技术详解

Elasticsearch 是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎&#xff0c;其每个字段均可被索引&#xff0c;且能够横向扩展至数以百计的服务器存储以及处理TB级的数据&#xff0c;其可以在极短的时间内存储、搜索和分析大量的数据。 滴滴ES发展至今&#xf…

windows配置git公钥,读写远程git项目

首先Windows电脑需要下载并安装git&#xff1a; 从官网直接下载然后安装即可&#xff1a;https://git-scm.com/download/win 添加公钥 ssh-keygen -t rsa -C "xxxxxxx.com"注意&#xff1a;这个xxxxxxx.com与github注册的邮箱一致 然后一路回车&#xff0c;生成完…

uniapp支付宝微信支付功能实现

大纲&#xff1a; 具体实现逻辑如下&#xff1a; 页面初始化时&#xff0c;通过onLoad方法获取传入的钱包(wallet)信息。 用户输入充值金额&#xff0c;使用watch监听输入值的变化&#xff0c;并更新选中的充值金额选项。判断金额是否大于0&#xff0c;若是小于0&#xff0c;则…

CTF之Web安全SSI注入

前言 如何从外部进入主机&#xff1f; SSI注入攻击介绍 SSI(server side inject)的出现是为了赋予HTML静态页面动态的效果&#xff0c;通过SSI来执行系统命令&#xff1b;并返回对应的结果。 如果再网站目录中发现了.stm&#xff1b;.shtm&#xff1b;.shtml&#xff1b;这…

【Three.js】遮挡剔除

背景 考虑到场景中模型顶点过多会让fps过低&#xff0c;所以想把相机看不到的模型从场景中移除&#xff0c;来提高渲染性能&#xff0c;但是后续测试结果让我恍然大悟。虽然场景中的顶点数降低了很多&#xff0c;但是每次渲染检查遮挡的过程本身就是一个消耗性能的行为&#x…

Python批量查字典和爬取双语例句

最近&#xff0c;有网友反映&#xff0c;我的批量查字典工具换到其它的网站就不好用了。对此&#xff0c;我想说的是&#xff0c;互联网包罗万象&#xff0c;网站的各种设置也有所不同&#xff0c;并不是所有的在线字典都可以用Python爬取的。事实上&#xff0c;很多网站为了防…