c語言彙編過程

彙編過程實際上指把彙編語言代碼翻譯目標機器指令的過程。對於被翻譯系統處理的每一個C語言源程序,都將最終經過這一處理而得到相應的目標文件。目標文件中所存放的也就是與源程序等效的目標的機器語言代碼。

c語言彙編過程

  目標文件由段組成。通常一個目標文件中至少有兩個段:

代碼段 :

該段中所包含的`主要是程序的指令。該段一般是可讀和可執行的,但一般卻不可寫。

數據段:

主要存放程序中要用到的各種全局變量或靜態的數據。一般數據段都是可讀,可寫,可執行的。

  UNIX環境下主要有三種類型的目標文件:

1、可重定位文件

其中包含有適合於其它目標文件鏈接來創建一個可執行的或者共享的目標文件的代碼和數據。

2、共享的目標文件

這種文件存放了適合於在兩種上下文裏鏈接的代碼和數據。第一種事鏈接程序可把它與其它可重定位文件及共享的目標文件一起處理來創建另一個目標文件;第二種是動態鏈接程序將它與另一個可執行文件及其它的共享目標文件結合到一起,創建一個進程映象。

3、可執行文件

它包含了一個可以被 操作系統創建一個進程來執行之的文件。

彙編程序生成的實際上是第一種類型的目標文件。對於後兩種還需要其他的一些處理方能得到,這個就是鏈接程序的工作了。