汇编和可执行文件(Debug和Release)

来源:互联网 发布:淘宝解除手机绑定 编辑:程序博客网 时间:2024/05/22 16:47

汇编和可执行文件

汇编约等于机器码

 

C/C++->编译器->汇编(机器)

 

编译后产生汇编代码然后在LINK

所有的CPU只认识汇编,在操作系统中90%的API没有对应的汇编代码。

 

1.obj:汇编代码,无法执行,不符合OS要求

2.Link:生成OS认识的对应格式的文件,这属于深加工

 

可以像下面的例子

源代码=生猪

编译=把生猪宰杀变成猪肉

Link=加油盐酱醋青椒最后变成青椒炒肉

 

如windows下Link要加PE结构(逆向、加壳要使了解)

 

在编程中有两个版本一个是Debug一个是Release

Debug和Release生成的代码不一样,因为用的编译优化不能

我们现在来演示!!!

代码如下:

int main(){return 0;}

分别在Debug和Release下编译链接



我们打开文件夹,看看他们的文件大小


左边的为Debug程序,右边为Release程序。可以发现Release的代码是经过优化的,他生成的文件比Debug的小。

下面我们把他转到反汇编,就更加清楚明白了!

现在先展示Debug下的:


下面是Release版本下的


由此可以看见Release是经过优化后的代码,在一般编程的时候,我们要用Debug方式来调试 

1 0
原创粉丝点击