c語言彙編過程
彙編過程實際上指把彙編語言程式碼翻譯成目標機器指令的過程。對於被翻譯系統處理的每一個C語言源程式,都將最終經過這一處理而得到相應的目標檔案。目標檔案中所存放的也就是與源程式等效的目標的機器語言程式碼。
目標檔案由段組成。通常一個目標檔案中至少有兩個段:
程式碼段 :
該段中所包含的`主要是程式的指令。該段一般是可讀和可執行的,但一般卻不可寫。
資料段:
主要存放程式中要用到的各種全域性變數或靜態的資料。一般資料段都是可讀,可寫,可執行的。
UNIX環境下主要有三種類型的目標檔案:
1、可重定位檔案
其中包含有適合於其它目標檔案連結來建立一個可執行的或者共享的目標檔案的程式碼和資料。
2、共享的目標檔案
這種檔案存放了適合於在兩種上下文裡連結的程式碼和資料。第一種事連結程式可把它與其它可重定位檔案及共享的目標檔案一起處理來建立另一個目標檔案;第二種是動態連結程式將它與另一個可執行檔案及其它的共享目標檔案結合到一起,建立一個程序映象。
3、可執行檔案
它包含了一個可以被 作業系統建立一個程序來執行之的檔案。
彙編程式生成的實際上是第一種型別的目標檔案。對於後兩種還需要其他的一些處理方能得到,這個就是連結程式的工作了。