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

news2024/11/24 4:30:00

一、寄存器(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.coloradmin.cn/o/860757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.利用matlab计算不定积分和定积分(matlab程序 )

1.简述 不定积分 首先,通过符号变量创建一个符号函数,然后调用积分命令来计算函数的积分,示例如下: 注意:matlab中计算的不定积分结果中没有写上常数C,读者需要自己在使用的时候记得加上常数部分。 通常情…

auto-changelog的简单使用

auto-changelog的简单使用 自动化生成Git提交记录,CHANGELOG.md文件 github:https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…

Java多线程(九)

目录 一、synchronized基本特点 二、synchronized加锁工作过程 2.1 无锁 2.2 偏向锁 2.3 轻量级锁 2.4 重量级锁 三、synchronized其他优化操作 3.1 锁消除 3.2 锁粗化 一、synchronized基本特点 开始是乐观锁,如果锁冲突频繁就会转换成悲观锁开始是轻量级锁&#x…

UWA Pipeline 2.5.0 版本更新说明

UWA Pipeline是一款面向游戏开发团队的本地协作平台,旨在为游戏开发团队搭建专属的DevOps研发交付流水线,提供可视化的CICD操作界面、高可用的自动化测试以及UWA性能保障服务的无缝贴合等实用功能。 UWA Pipeline 2.5.0 版本发布,一批新功能…

Python系统学习1-6-元组

】目录 一、列表与字符串转换 二、列表推导式 三、元组 1、元组基本操作 2、元组和列表的内存图 四、容器思想 homework 一、列表与字符串转换 (1) 列表转换为字符串: result "连接符".join(列表) # 根据xx条件,循环拼接字符串 # 需…

指针---进阶篇(二)

指针---进阶篇(二) 前言一、函数指针1.抛砖引玉2.如何判断函数指针?(方法总结) 二、函数指针数组1.什么是函数指针数组?2.讲解函数指针数组3.模拟计算器:讲解函数指针数组 三、指向函数指针数组…

8年测试整理,接口测试-测试点分析与搜索查询测试点(超细汇总)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口可用性 主要…

Redux - Redux在React函数式组件中的基本使用

文章目录 一,简介二,安装三,三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四,开始函数式组件中使用4.1,引入store4.1,store.getState()方法4.3,store.dispatch()方法4.4&…

10年软件测试行业经验教你如何写简历【绝对靠谱】

前言 作为软件测试的从业者,面试或者被面试都是常有的事。 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场博弈中&…

若依vue -【 100 ~ 更 ~ 110 】

100 主子表代码生成详解 1 新建数据库表结构(主子表) -- ---------------------------- -- 客户表 -- ---------------------------- drop table if exists sys_customer; create table sys_customer (customer_id bigint(20) not null…

母猪产仔早知道,这次南农用上了英伟达边缘 AI Jetson

内容一览:对养猪业而言,母猪产仔是其中关键的一环。因此,提高猪仔成活率、确保母猪分娩过程安全,成为重要课题。现有的 AI 监测方式,存在着高设备成本与信息传输不稳定的问题,南京农业大学研究人员&#xf…

Kali Hyper-V安装正常启动后 黑屏 只能进命令模式

问题: Hyper-V安装虚拟机Kali系统一切安装正常, 没有出现错误. 安装成功后重启,只能进入命令模式,tt1-tt6,进不去GUI桌面. 尝试: 一代二代虚拟硬盘都试过,同样问题,只能开进后进入命令模式,在命令模式下一切运行正常, 也修复过系统 GNOM等的,不管用. 以下为国外论坛给的建议,尝…

Qt 文件对话框使用 Deepin风格

当你在Deepin或UOS 上开发 Qt 程序时,如果涉及到文件对话框功能,那么就会遇到调用原生窗口的问题。 如果你使用的是官方的Qt版本,那么在Deepin或者UOS系统上,弹出的文件对话框会是如下这样: 而Deepin或UOS系统提供的默…

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

手把手推导扩散模型:Diffusion Models(DDPM) DDPM理论回顾前置知识过程详解Forward ProcessReverse Process DDPM算法伪代码训练部分采样部分 总结一下 参考链接 在这篇博客文章中,我们将深入研究 去噪扩散概率模型(也称为 DDPM&…

利用Simulink Test进行模型单元测试 - 1

1.搭建用于测试的简单模型 随手搭建了一个demo模型MilTestModel,模型中不带参数 2.创建测试框架 1.模型空白处右击 测试框架 > 为‘MilTestModel’创建 菜单 2.在创建测试框架对话框中,点击OK,对应的测试框架MilTestMode_Harness1就自动…

js玩儿爬虫

前言 提到爬虫可能大多都会想到python,其实爬虫的实现并不限制任何语言。 下面我们就使用js来实现,后端为express,前端为vue3。 实现功能 话不多说,先看结果: 这是项目链接:https://gitee.com/xi1213/w…

时间复杂度与空间复杂度的详解

目录 1.时间复杂度 2.时间复杂度计算例题 3.空间复杂度 1.时间复杂度 算法中的基本操作的执行次数,为算法的时间复杂度。 如何表达 时间复杂度? 大O的渐进表示法 实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数&#xf…

105. 从前序与中序遍历序列构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,n…

【高频面试题】多线程篇

文章目录 一、线程的基础知识1.线程与进程的区别2.并行和并发有什么区别?3.创建线程的方式有哪些?3.1.Runnable 和 Callable 有什么区别?3.2.run()和 start()有什么区别? 4.线程包括哪些状态,状态之间是如何变化的4.1.…

一文详述流媒体传输网络MediaUni

一张「多元融合」的网络。 黄海宇|演讲者 大家好,我是阿里云视频云的黄海宇,今天分享主题是MediaUni——面向未来的流媒体传输网络设计与实践。 下面我将会从应用对流媒体传输网络的要求、MediaUni定位与系统架构、MediaUni技术剖析、基于Me…