欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

匯編語言教程文件后綴大小寫S區(qū)別分析詳解

 更新時間:2021年11月05日 08:45:08   作者:Mr.Idleman  
這篇文章主要為大家介紹了匯編文件后綴.s與.S區(qū)別分析詳解,文中詳細的講解了大寫的S與小寫的s后綴在匯編語言中的作用區(qū)別,有需要的朋友可以借鑒參考下

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

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

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

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

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

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

1、預處理器

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

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

2、編譯階段

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

3、匯編階段

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

4、鏈接階段

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

在成功編譯之后,就進入了鏈接階段。在這里涉及到一個重要的概念:函數(shù)庫

"stdio.h"中也只有該函數(shù)的聲明,而沒有定義函數(shù)的實現(xiàn),那么,是在哪里實現(xiàn)”printf”這些庫函數(shù)的呢?最后的答案是:系統(tǒng)把這些函數(shù)實現(xiàn)都被做到名為libc.so.6的庫文件中去了,在沒有特別指定時,gcc會到系統(tǒng)默認的搜索路徑”/usr/lib”下進行查找,也就是鏈接到libc.so.6庫函數(shù)中去,這樣就能實現(xiàn)函數(shù)”printf” 了,而這也就是鏈接的作用。

函數(shù)庫一般分為靜態(tài)庫和動態(tài)庫兩種。靜態(tài)庫是指編譯鏈接時,把庫文件的代碼全部加入到可執(zhí)行文件中,因此生成的文件比較大,但在運行時也就不再需要庫文件了。其后綴名一般為”.a”。動態(tài)庫與之相反,在編譯鏈接時并沒有把庫文件的代碼加入到可執(zhí)行文件中,而是在程序執(zhí)行時由運行時鏈接文件加載庫,這樣可以節(jié)省系統(tǒng)的開銷。動態(tài)庫一般后綴名為”.so”,如前面所述的libc.so.6就是動態(tài)庫。gcc在編譯時默認使用動態(tài)庫。

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

以上就是匯編文件后綴.s與.S區(qū)別分析詳解的詳細內(nèi)容,更多關(guān)于匯編文件后綴.s與.S的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 匯編語言偽指令和匯編指令的區(qū)別

    匯編語言偽指令和匯編指令的區(qū)別

    指令是控制程序運行時的機器代碼運作的,是CPU執(zhí)行的依據(jù),編程、編譯、執(zhí)行都是有效的。偽指令不直接控制運行時刻的機器,但是控制翻譯程序如何生成機器指令代碼,感興趣的朋友跟隨小編一起看看吧
    2020-01-01
  • 淺析ELF轉(zhuǎn)二進制允許把 Binary 文件加載到任意位置

    淺析ELF轉(zhuǎn)二進制允許把 Binary 文件加載到任意位置

    本文通過 eip + 偏移地址 實現(xiàn)了運行時計算數(shù)據(jù)地址,不再需要把 Binary 文件裝載到固定的位置。本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2020-02-02
  • 詳解匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別

    詳解匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別

    這篇文章主要介紹了匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 匯編語言中cmp指令用法筆記與總結(jié)

    匯編語言中cmp指令用法筆記與總結(jié)

    這篇文章主要介紹了匯編語言中cmp指令用法,結(jié)合實例形式總結(jié)分析了匯編語言cmp指令基本功能、使用方法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • 匯編語言基礎理解計算機底層技術(shù)原理

    匯編語言基礎理解計算機底層技術(shù)原理

    這篇文章主要為大家介紹了匯編語言基礎,理解計算機底層原理,想要成為高級程序員,我們必須要學會匯編語言,匯編語言是非常重要的計算機底層技術(shù),一般用于底層的編寫
    2021-11-11
  • UEFI開發(fā)實戰(zhàn)SlimBootloader中調(diào)用FSP

    UEFI開發(fā)實戰(zhàn)SlimBootloader中調(diào)用FSP

    這篇文章主要為大家介紹了UEFI開發(fā)實戰(zhàn)SlimBootloader中調(diào)用FSP基礎教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 匯編語言實現(xiàn)打印楊輝三角

    匯編語言實現(xiàn)打印楊輝三角

    這篇文章主要介紹了匯編語言實現(xiàn)打印楊輝三角,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 從匯編代碼開始全面解析synchronized還原最真實的偏向鎖

    從匯編代碼開始全面解析synchronized還原最真實的偏向鎖

    這篇文章主要為大家介紹了從模板解釋器匯編源碼開始分析還原最真實的偏向鎖實現(xiàn),解釋monitorenter字節(jié)碼命令的方法開始,從匯編代碼開始全面解析synchronized
    2022-02-02
  • 匯編語言指令mov、add、sub、jmp詳解

    匯編語言指令mov、add、sub、jmp詳解

    這篇文章主要介紹了匯編語言指令mov、add、sub、jmp詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • VScode配置8086匯編環(huán)境的過程解析

    VScode配置8086匯編環(huán)境的過程解析

    這篇文章主要介紹了VScode配置8086匯編環(huán)境的過程解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論