首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

函数反汇编疑惑解决方案

2012-03-24 
函数反汇编疑惑一个c函数反汇编后前三行一般是:push ebpmov ebp,espsub esp,8第三行我没法理解主要是那个“

函数反汇编疑惑
一个c函数反汇编后
前三行一般是:
push ebp  
mov ebp,esp
sub esp,8

第三行我没法理解
主要是那个“8”
我试了下
这个数不是固定的
有时候是48
有时候是14
等等

请问
这个数是干嘛的
怎么确定这个数的?
要不要理会?


[解决办法]
这个数是干嘛的 -〉在栈中分配8字节的局部变量空间
怎么确定这个数的?-〉按局部变量所需空间大小确定 
要不要理会?-〉一般不用
[解决办法]
有些是编译器特有的行为,一般是分配局部val。
[解决办法]
VC的Debug配置编译时会多分配一些额外的空间,用Release编译就不会有多余的了。
[解决办法]

探讨
VC的Debug配置编译时会多分配一些额外的空间,用Release编译就不会有多余的了。

[解决办法]
用汇编更少,不会浪费空间。如果你在你的函数里多加一句
如:a++,你可以看到这个局部变量是怎么调用的了
[解决办法]
为防止缓冲区溢出的编译设置,-Gz

热点排行