關於涉及機器級別的代碼的毋庸置疑的就是彙編代碼了,這是最接近機器01代碼的代碼了。
下面是程序通常的的生成過程,大致分成4個部分:
- 預編譯,該階段就是將需要在預編譯階段做的事情給做完,比如將#include 包含的文件給插入到這個文件的該位置,還有就是#define 定義的宏進行擴展成表達式。
- 編譯,該階段就是通過編譯器進行編譯成彙編代碼的文件:.S,比如在linux 中用gcc -c test.c
- 彙編:該階段將由第二階段產生的彙編文件進行彙編成二進制代碼文件:.o文件,在此還沒有填充的內存地址全局值。
- 連接:該階段通過連接器將.0文件和函數等代碼進行合併生成機器可以執行的二進制代碼。