汇编和可执行文件
汇编约等于机器码
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方式来调试