c語(yǔ)言匯編過(guò)程
匯編過(guò)程實(shí)際上指把匯編語(yǔ)言代碼翻譯成目標(biāo)機(jī)器指令的過(guò)程。對(duì)于被翻譯系統(tǒng)處理的每一個(gè)C語(yǔ)言源程序,都將最終經(jīng)過(guò)這一處理而得到相應(yīng)的目標(biāo)文件。目標(biāo)文件中所存放的也就是與源程序等效的目標(biāo)的機(jī)器語(yǔ)言代碼。
目標(biāo)文件由段組成。通常一個(gè)目標(biāo)文件中至少有兩個(gè)段:
代碼段 :
該段中所包含的主要是程序的指令。該段一般是可讀和可執(zhí)行的,但一般卻不可寫(xiě)。
數(shù)據(jù)段:
主要存放程序中要用到的各種全局變量或靜態(tài)的數(shù)據(jù)。一般數(shù)據(jù)段都是可讀,可寫(xiě),可執(zhí)行的。
UNIX環(huán)境下主要有三種類(lèi)型的目標(biāo)文件:
1、可重定位文件
其中包含有適合于其它目標(biāo)文件鏈接來(lái)創(chuàng)建一個(gè)可執(zhí)行的或者共享的目標(biāo)文件的代碼和數(shù)據(jù)。
2、共享的目標(biāo)文件
這種文件存放了適合于在兩種上下文里鏈接的代碼和數(shù)據(jù)。第一種事鏈接程序可把它與其它可重定位文件及共享的目標(biāo)文件一起處理來(lái)創(chuàng)建另一個(gè)目標(biāo)文件;第二種是動(dòng)態(tài)鏈接程序?qū)⑺c另一個(gè)可執(zhí)行文件及其它的共享目標(biāo)文件結(jié)合到一起,創(chuàng)建一個(gè)進(jìn)程映象。
3、可執(zhí)行文件
它包含了一個(gè)可以被 操作系統(tǒng)創(chuàng)建一個(gè)進(jìn)程來(lái)執(zhí)行之的文件。
匯編程序生成的實(shí)際上是第一種類(lèi)型的目標(biāo)文件。對(duì)于后兩種還需要其他的一些處理方能得到,這個(gè)就是鏈接程序的工作了。
【c語(yǔ)言過(guò)程】相關(guān)文章:
C語(yǔ)言編譯過(guò)程總結(jié)詳解10-31
用visual c++ 運(yùn)行C語(yǔ)言程序的過(guò)程08-31
最新C語(yǔ)言編譯過(guò)程總結(jié)詳解08-27
C語(yǔ)言試題08-02
C語(yǔ)言試題11-01
C語(yǔ)言的元素09-17
C語(yǔ)言的指針10-11