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

汇编和可执行文件

汇编约等于机器码

 

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方式来调试 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值