中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

匯編語言教程文件后綴大小寫S區別是什么

發布時間:2021-11-05 11:09:20 來源:億速云 閱讀:159 作者:iii 欄目:開發技術

本篇內容主要講解“匯編語言教程文件后綴大小寫S區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“匯編語言教程文件后綴大小寫S區別是什么”吧!

一、大小寫后綴的區別

.s     匯編語言源程序;匯編
.S     匯編語言源程序;預處理,匯編

小寫的s文件,在后期階段不在進行預處理操作,所以我們不能在這里面寫預處理的語句在里面

大寫的S文件,還會進行預處理、匯編等操作,所以我們可以在這里面加入預處理的命令

 二、編譯的相關流程

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

1、預處理器

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

       這個階段并不會去檢查代碼的錯誤,只會把#的語句轉成C代碼。

2、編譯階段

       在這個階段中,Gcc首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤后,Gcc把代碼翻譯成匯編語言。用戶可以使用”-S”選項來進行查看,該選項只進行編譯而不進行匯編,生成匯編代碼。匯編語言是非常有用的,它為不同高級語言不同編譯器提供了通用的語言。如:C編譯器和Fortran編譯器產生的輸出文件用的都是一樣的匯編語言。

3、匯編階段

       匯編階段是把編譯階段生成的”.s”文件轉成目標文件,讀者在此可使用選項”-c”就可看到匯編代碼已轉化為”.o”的二進制目標代碼了。

4、鏈接階段

       將庫函數(頭文件中用到的)等鏈接到目標文件中。

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

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

到此,相信大家對“匯編語言教程文件后綴大小寫S區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴东县| 巫山县| 海伦市| 辽阳县| 江孜县| 西峡县| 连南| 德惠市| 永新县| 新建县| 乐都县| 汾西县| 同心县| 永宁县| 新干县| 肃宁县| 凤翔县| 婺源县| 永德县| 松原市| 丽江市| 喀喇沁旗| 和龙市| 紫云| 嵊州市| 日土县| 甘泉县| 墨竹工卡县| 永康市| 古丈县| 屏东县| 岚皋县| 兴义市| 新宁县| 洞口县| 如皋市| 武强县| 灵寿县| 博湖县| 辰溪县| 辛集市|