社区
C语言
帖子详情
为什么VS下一个int总是从ebp-8开始,ebp-4对应的4个字节干吗用了?
dpdp_2012
2012-10-10 05:11:30
RT
...全文
529
5
打赏
收藏
为什么VS下一个int总是从ebp-8开始,ebp-4对应的4个字节干吗用了?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dpdp_2012
2012-10-10
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
1 我记不清了,你可以查一下vc用了防止stackoverflow 机制,在返回地址前插一个checkval。
我不确定是不是这玩意,你可以搜一下。
[/Quote]我也是在想留出这四个字节,是不是和什么缓冲区溢出有关。
大熊猫侯佩
2012-10-10
打赏
举报
回复
ebp+4是返回地址鸟
swlilike
2012-10-10
打赏
举报
回复
ebp-4 是不是存放 ret 的返回地址了?
大熊猫侯佩
2012-10-10
打赏
举报
回复
1 我记不清了,你可以查一下vc用了防止stackoverflow 机制,在返回地址前插一个checkval。
我不确定是不是这玩意,你可以搜一下。
大熊猫侯佩
2012-10-10
打赏
举报
回复
你说的是函数局部变量是吧?这个没有绝对。
因为在函数进入序言后,
ebp->old ebp
ebp+4->ret addr
ebp+8->1st parm
所以ebp-4是可以使用的,至于vc为啥不用,2种可能:
1 做vc专有用途
2 简单无视他,就是不用
VC++函数调用过程汇编分析(基于
vs
2012)
本文详细分析了在
VS
2012环境下C++函数调用过程中的汇编代码,包括栈操作、局部变量管理、参数传递及返回值处理等关键步骤。从
ebp
和esp寄存器的使用、现场保护到内存清理,再到参数入栈、函数内部运算直至返回主函数,全程展示了C++函数调用的底层实现细节。
c语言烫烫烫,每
一个
程序员都会经历的“烫烫烫”
本文详细解释了在C语言编程时,为何会出现“烫烫烫”这一现象。通过分析“烫”的GBK编码0xCCCC与汇编指令
INT
3的机器码相同,以及C语言中未初始化数组在打印时可能遇到的情况,揭示了“烫烫烫”产生的原因。文章还提供了
一个
简单的测试程序来验证这一现象,并讨论了函数堆栈填充与ESP、
EBP
指针的关系。
【Visual Studio】调试时 memcpy 拷贝错误,
VS
竟擅自修改内存
Visual Studio调试器在调试过程中会通过patch策略修改内存中的指令,插入0xCC作为调试标记,导致memcpy复制到目标内存的内容出现偏差。这些修改包括opcode和位移
字节
的替换,属于
VS
特有的调试机制,如JMC、Edit & Continue等,在执行前虽会恢复但拷贝操作已获取 patched 数据。
每
一个
程序员都会经历的“烫烫烫”
本文解释了在计算机程序中出现汉字“烫”的原因,特别是在Windows环境下执行越界访问时。通过分析“烫”的GBK编码及x86系统的
INT
3指令,探讨了未初始化数组打印出“烫”的原理。
【x86汇编】float强制类型转换为
int
类型的反汇编分析
作者因《C语言程序与设计 第四版》中数据类型转换知识点产生兴趣,想用反汇编分析底层逻辑。文中介绍了
VS
配置,给出反汇编代码,并对XMM寄存器、mo
vs
s指令、cvttss2si指令等进行分析,还通过实例展示了数据类型转换过程。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章