汇编和可执行文件(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
- 汇编和可执行文件(Debug和Release)
- 06.汇编和可执行文件
- 汇编和可执行文件
- debug 和 release
- 深入浅出Debug和Release
- Debug和Release
- Debug和Release简介
- Debug 和 Release 区别
- 深入浅出Debug和Release
- Debug 和 Release
- Debug 和 Release
- VC DEBUG和RELEASE
- Debug和Release区别
- Debug和Release区别
- Release和debug
- Debug 和 Release
- release 和debug 区别
- Debug和Release区别
- HashMap工作原理
- 基于注解的spring 在静态方法中使用注入的类
- do{...}while(0)的作用与意义
- JS组件系列——两种bootstrap multiselect组件大比拼
- Spring4+quertz2定时调度
- 汇编和可执行文件(Debug和Release)
- Windows的全局名称锁与共享问题
- 兔子迭代问题
- 支付宝手机网站支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足
- SQL中使用update inner join和delete inner join
- 使用java向FTP上传或下载压缩文件时的问题
- thread loop and handler
- PT2272解码相关知识 互锁 自锁
- NiFi源码整理