汇编和可执行文件(Debug和Release)
生活随笔
收集整理的這篇文章主要介紹了
汇编和可执行文件(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方式來調試?
總結
以上是生活随笔為你收集整理的汇编和可执行文件(Debug和Release)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python复制代码会被发现吗,我发现了
- 下一篇: 取值方法_数据维度爆炸怎么办?详解 5