溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

匯編語(yǔ)言教程文件后綴大小寫(xiě)S區(qū)別是什么

發(fā)布時(shí)間:2021-11-05 11:09:20 來(lái)源:億速云 閱讀:157 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“匯編語(yǔ)言教程文件后綴大小寫(xiě)S區(qū)別是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“匯編語(yǔ)言教程文件后綴大小寫(xiě)S區(qū)別是什么”吧!

一、大小寫(xiě)后綴的區(qū)別

.s     匯編語(yǔ)言源程序;匯編
.S     匯編語(yǔ)言源程序;預(yù)處理,匯編

小寫(xiě)的s文件,在后期階段不在進(jìn)行預(yù)處理操作,所以我們不能在這里面寫(xiě)預(yù)處理的語(yǔ)句在里面

大寫(xiě)的S文件,還會(huì)進(jìn)行預(yù)處理、匯編等操作,所以我們可以在這里面加入預(yù)處理的命令

 二、編譯的相關(guān)流程

預(yù)處理(Pre-Processing)-->編譯(Compiling)-->匯編(Assembling)-->鏈接(Linking)

1、預(yù)處理器

       根據(jù)以字符#開(kāi)頭的命令(directives),修改原始的C程序。

       這個(gè)階段并不會(huì)去檢查代碼的錯(cuò)誤,只會(huì)把#的語(yǔ)句轉(zhuǎn)成C代碼。

2、編譯階段

       在這個(gè)階段中,Gcc首先要檢查代碼的規(guī)范性、是否有語(yǔ)法錯(cuò)誤等,以確定代碼的實(shí)際要做的工作,在檢查無(wú)誤后,Gcc把代碼翻譯成匯編語(yǔ)言。用戶(hù)可以使用”-S”選項(xiàng)來(lái)進(jìn)行查看,該選項(xiàng)只進(jìn)行編譯而不進(jìn)行匯編,生成匯編代碼。匯編語(yǔ)言是非常有用的,它為不同高級(jí)語(yǔ)言不同編譯器提供了通用的語(yǔ)言。如:C編譯器和Fortran編譯器產(chǎn)生的輸出文件用的都是一樣的匯編語(yǔ)言。

3、匯編階段

       匯編階段是把編譯階段生成的”.s”文件轉(zhuǎn)成目標(biāo)文件,讀者在此可使用選項(xiàng)”-c”就可看到匯編代碼已轉(zhuǎn)化為”.o”的二進(jìn)制目標(biāo)代碼了。

4、鏈接階段

       將庫(kù)函數(shù)(頭文件中用到的)等鏈接到目標(biāo)文件中。

       在成功編譯之后,就進(jìn)入了鏈接階段。在這里涉及到一個(gè)重要的概念:函數(shù)庫(kù)
       "stdio.h"中也只有該函數(shù)的聲明,而沒(méi)有定義函數(shù)的實(shí)現(xiàn),那么,是在哪里實(shí)現(xiàn)”printf”這些庫(kù)函數(shù)的呢?最后的答案是:系統(tǒng)把這些函數(shù)實(shí)現(xiàn)都被做到名為libc.so.6的庫(kù)文件中去了,在沒(méi)有特別指定時(shí),gcc會(huì)到系統(tǒng)默認(rèn)的搜索路徑”/usr/lib”下進(jìn)行查找,也就是鏈接到libc.so.6庫(kù)函數(shù)中去,這樣就能實(shí)現(xiàn)函數(shù)”printf” 了,而這也就是鏈接的作用。
       函數(shù)庫(kù)一般分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)兩種。靜態(tài)庫(kù)是指編譯鏈接時(shí),把庫(kù)文件的代碼全部加入到可執(zhí)行文件中,因此生成的文件比較大,但在運(yùn)行時(shí)也就不再需要庫(kù)文件了。其后綴名一般為”.a”。動(dòng)態(tài)庫(kù)與之相反,在編譯鏈接時(shí)并沒(méi)有把庫(kù)文件的代碼加入到可執(zhí)行文件中,而是在程序執(zhí)行時(shí)由運(yùn)行時(shí)鏈接文件加載庫(kù),這樣可以節(jié)省系統(tǒng)的開(kāi)銷(xiāo)。動(dòng)態(tài)庫(kù)一般后綴名為”.so”,如前面所述的libc.so.6就是動(dòng)態(tài)庫(kù)。gcc在編譯時(shí)默認(rèn)使用動(dòng)態(tài)庫(kù)。

       完成了鏈接之后,gcc就可以生成可執(zhí)行文件。

到此,相信大家對(duì)“匯編語(yǔ)言教程文件后綴大小寫(xiě)S區(qū)別是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI