




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2 命令行選項這一章講述所有版本的GNU匯編器中可用的命令行選項,如果想了解特定機器體系結(jié)構(gòu)的相關(guān)選項,參見第8章 機器相關(guān)性,61頁。如果你是通過GNU 編譯器(版本2)調(diào)用as,你可以使用-Wa選項,把參數(shù)傳給匯編器,這些參數(shù)(包括選項-Wa)必須使用逗號分隔。例如:gcc -c -g -O -Wa,-alh,-L file.c這個例子傳遞了兩個參數(shù)給匯編器:-alh(以高級語言和匯編語言的形式生成清單到標(biāo)準輸出)-L(在符號表中保留局部符號)。通常你沒必要使用-Wa選項,因為編譯器把很多命令行選項自動傳遞給匯編器。(你可以通過-v選項使用GNU編譯器,來確切了解有什么選項被傳遞給編譯過程,包括傳遞給匯編器的選項)2.1 開啟清單選項:-acdhlns這些選項開啟了匯編器的清單輸出。如果只有-a選項,表示需要生成高級語言,匯編語言和符號清單。你可以用其他字母去選擇特定的清單選項:-ah需要生成一個高級語言清單,-al 需要生成一個輸出程序的匯編語言清單,-as需要生成符號表的清單。生成高級語言清單需要使用一個-g之類的編譯調(diào)試選項,匯編語言清單(-al)也需要上述調(diào)試選項。使用-ac 選項刪去清單中匯編條件為假(false)的語句。下列語句行不進行匯編:一個條件為false的.if語句塊(或是.ifdef語句塊,或是其他的條件匯編語句塊),條件為true的.if后面的那個.else語句塊,所有不會被匯編的行都會從清單中刪去。使用選項-ad選項刪除清單中的調(diào)試命令。一旦使用了上述某個選項,你就可以使用 .nolist,.psize,.title,和 .sbttl 命令進一步控制清單輸出格式。選項-an關(guān)閉所有清單表格的處理。如果你不需要輸出清單,就不必使用一個-a系列的選項,這時的清單控制命令不會生效。選項-a后的字母可以合成一個選項(例如-aln)。注意,如果匯編源碼來自標(biāo)準輸入(例如源碼是由gcc創(chuàng)建,并且使用了-pipe命令行開關(guān)),則清單中不含有注釋和預(yù)處理命令。這是因為只有在源代碼行被匯編器預(yù)處理后,清單代碼緩沖區(qū)才從標(biāo)準輸入中讀取源代碼行。這樣減少了內(nèi)存的使用,并且使生成的代碼更有效率。2.2 -D這個選項沒什么作用,但as接受這個選項,使那些寫給其他匯編器的腳本文件也能被as使用。2.3 快速匯編:-f只有在被匯編程序的源碼是由可信任的編譯器產(chǎn)生的情況下,才能使用-f選項。 使用選項-f時,如果匯編器在匯編輸入文件前要對它們進行空格和注釋的預(yù)處理,則會終止匯編器的匯編。參見.1預(yù)處理,17頁。警告:如果文件事實上需要預(yù)處理時(如果它們包含有注釋),而你使用了-f,as將不能正常工作。2.4 .include命令搜索路徑: -I path使用這個選項給目錄清單加一個路徑path,這個目錄清單是.Include命令在搜索指定文件使用的,(參見 7.37 .include,44頁)。 你可以視需要多次使用-I來加入不同的路徑。第一個搜索的總是當(dāng)前工作目錄;然后,as安照命令行中的順序(從左到右)搜索-I選項指定的目錄。2.5 不同的跳轉(zhuǎn)表: -K在as中使用.word sym1-sym2形式的命令有時會改變生成的代碼(參考7.92 .word,59頁)。如果在遇到上述情況時您希望as會發(fā)出一個警告您可以使用選項-K。2.6 包含局部標(biāo)簽: -L以L(必須大寫)字母開頭的標(biāo)簽叫做局部標(biāo)簽(參見5.3 符號名,29頁)。通常調(diào)試時你看不見它們,因為它們是供生成匯編源程序的程序(如編譯器)使用的,而不是為了引起你的注意。一般來講as和ld丟棄這些標(biāo)簽,所以你不能用它們來調(diào)試。這個選項讓as在目標(biāo)文件中保留那些L符號。一般如果你這樣做了,你也應(yīng)該讓連接器ld保留那些以符號名L 開頭的符號。默認情況下,以L開始的標(biāo)簽是一個局部標(biāo)簽,不過每一個目標(biāo)允許重新定義一個局部標(biāo)簽的前綴。在HPPA上,局部標(biāo)簽以L$開始。2.7 配置清單輸出: -listing通過命令行開關(guān)-a可以開啟匯編程序的清單功能(參見2.1 -a,11頁)。這個功能使輸入源文件和輸出目標(biāo)文件的16進制映象組合起來,并且以清單文件的形式顯示它們。清單的格式可以通過匯編源代碼中的偽操作來控制(參見7.48 List,47頁 ;7.83 Title, 57頁 ;7.64 Sbttl,51頁 ;7.59 Psize,50頁 ;7.14 Eject, 40頁)也可以通過以下開關(guān):-listing-lhs-width=number 設(shè)置16進制字節(jié)映象第一行的最大寬度,寬度單位為字(16位)。這個映象顯示在清單輸出的左邊。-listing-lhs-width2=number由給定的源代碼行生成的16進制字節(jié)映象,設(shè)置這個映象的除第1行外的所有行的最大寬度,寬度單位為字。如果沒有指定寬度值,那它默認等于-listing-lhs-width的設(shè)定值。如果兩個開關(guān)都沒指定,那么默認值是1。-listing-rhs-width=number設(shè)置源代碼行的最大寬度,寬度單位為字符,源代碼顯示在16進制映象旁邊。默認寬度值是100。源代碼行顯示在輸出清單的右邊。-listing-cont-lines=number對于給定的一行源代碼輸入,設(shè)置16進制映象連續(xù)行數(shù)的最大值。默認值是4。2.8 以MRI兼容模式匯編:-M 選項 M 或 -mri 選擇 MRI 兼容模式。它改變了 as 的語法和偽操作處理,使它兼容于Microtec Research 的 ASM68K 或者 ASM960 (視配置目標(biāo)而定)匯編器。這里沒有給出 MRI 語法具體形式,您可以查看 MRI 的手冊。需要特別注意的是宏和宏參數(shù)的處理有一些不同。這個選項的目的是允許使用 as 匯編現(xiàn)存的MRI匯編器代碼。as并不完全與MRI兼容。MRI 匯編器的具體操作依賴于目標(biāo)文件格式,使用其他目標(biāo)文件格式不支持這些操作。要想支持這些需要分別增強各種目標(biāo)文件的格式。它們是: 公共段中的全局符號M68K的MRI匯編器允許使用通用段(common sections),而通用段將被連接器合并。其它目標(biāo)文件格式并不支持使用通用段。 as處理通用段時把整個通用段當(dāng)作一個單獨的通用符號。它允許在通用段中定義局部符號,但是它不支持通用段中使用全局符號,因為沒法描述它們。 復(fù)雜重定向MRI匯編器允許錯誤段址的重定向,重定向連接了兩個或多個段的起始地址。其它目標(biāo)文件格式都不支持這些。 END偽操作指定的啟始地址MRI中的END偽操作允許指定一個開始地址。其它目標(biāo)文件格式不允許這么做。你也可以對連接程序使用選項 -e來指定起始地址,也可以在連接腳本中指定。 IDNT, .ident 和 NAME偽操作MRI 中的IDNT, .ident 和 NAME 偽操作給輸出文件分配一個模塊名。其它目標(biāo)文件格式不支持。 ORG 偽操作m68k的MRI中ORG偽操作在一個給定的地址開辟一個具有獨立地址的段。這和通常的as的 .ORG 偽操作不同,它在當(dāng)前的段中改變定位。別的目標(biāo)文件格式不支持獨立段。因為一個段的地址可能在連接腳本中分配。 還有一些MRI匯編器的功能as不支持,大體上,它們都難于實現(xiàn),而且似乎無關(guān)緊要。其中的一些特性可能在今后的版本中將會支持。EBCDIC strings不支持EBCDIC 字符串。壓縮BCD 碼不支持壓縮BCD 碼。這表示不支持 DC.P 和 DCB.P 偽操作。FEQU 偽操作不支持m68k 的 FEQU 偽操作。NOOBJ 偽操作不支持m68k 的 NOOBJ 偽操作。優(yōu)化分支控制選項(OPT branch control options)忽略 m68k 的優(yōu)化分支控制選項B, BRS, BRB, BRL, 還有BRW。as自動的放松所有的分支(不管是向前還是向后)到一個合適的大小,所以這些選項不起作用。優(yōu)化清單控制選項(OPT list control options)以下m68k的優(yōu)化清單控制選項被忽略:C, CEX, CL, CRE, E, G, I, M, MEX, MC, MD, X. 其它優(yōu)化選項以下的m68k的OPT選項被忽略:NEST, O, OLD, OP, P, PCO, PCR, PCS, R.優(yōu)化 D 選項為默認值不象 MRI 匯編程序,m68k優(yōu)化 D 選項是默認的??梢杂眠x項 NOD 關(guān)閉它。XREF 偽操作忽略m68k的XREF。 .debug 偽操作不支持i960 的.debug偽操作。 .extended 偽操作不支持 i960 的 .extended 偽操作。 .list 偽操作不支持 i960 的 .list 偽操作的各種選項。 .optimize pseudo-op不支持 i960 的 .optimize 偽操作。.output pseudo-op不支持 i960 的 .output 偽操作。.setreal pseudo-op不支持 i960 的 .setreal 偽操作。2.9 相關(guān)性跟蹤:-MDas能為它創(chuàng)造的文件產(chǎn)生一個從屬文件。這個文件包括一個規(guī)則,用來為make描述主要源文件的依賴性。規(guī)則寫進文件,文件名規(guī)則的參數(shù)中指定。自動更新 makefiles 使用了這個功能。2.10 命名目標(biāo)文件:-o當(dāng)你運行as時,總是產(chǎn)生一個目標(biāo)文件。在默認的情況下,它的名字是 a.out(或者是b.out僅對 Intel 960 )。你用這個選項(選項后跟一個文件名)給目標(biāo)文件指定一個不同的文件名。不管目標(biāo)文件叫什么,as覆蓋現(xiàn)存的同名文件。2.11 合并數(shù)據(jù)段和正文段:-R選項-R讓as輸出目標(biāo)文件,在目標(biāo)文件中數(shù)據(jù)段中的數(shù)據(jù)保存在正文段。這一步只在最后做:你得到的二進制數(shù)據(jù)一樣,可是數(shù)據(jù)段部分的重定向不同。你的目標(biāo)文件的數(shù)據(jù)段部分只有零字節(jié)長度,因為所有的字節(jié)都被追加到代碼段后面(參見第4章 段和重定向,23頁)當(dāng)你指定了選項R,它可能會產(chǎn)生更短的地址移動(因為我們不必在數(shù)據(jù)段和代碼段之間轉(zhuǎn)移)。為了兼容老版本的as我們應(yīng)盡量避免使用這個選項。以后,可以使用R這樣做。as配置成輸出COFF的文件格式,只有你使用名字為 .text 和 .data 的段時,這個選項才有用。任何HPPA處理器的目標(biāo)格式都不支持選項R 。如果使用了,as 會產(chǎn)生一個警告。2.12 顯示匯編的統(tǒng)計資料: -statistics使用-statistics來顯示as使用資源的兩個統(tǒng)計數(shù)據(jù):匯編時分配的最大空間(字節(jié))和匯編過程的花費的時間(占用cpu的秒數(shù))。2.13 兼容輸出: -traditional-format對一些目標(biāo)格式來講,as的輸出和一些現(xiàn)存的匯編器有點不同。這個開關(guān)要求as使用傳統(tǒng)的格式。例如,它關(guān)閉了異常結(jié)構(gòu)優(yōu)化,而在默認情況下,as對gcc的輸出都進行異常結(jié)構(gòu)優(yōu)化。2.14 顯示版本: -v通過在命令行中加上選項-v(也可寫成 -version),你能找出當(dāng)前運行as的版本號。2.15 警告控制:-W,-warn,-no-warn,-fatal-warnings 當(dāng)as匯編編譯器的輸出時,從不發(fā)出警告或錯誤信息。但人們寫的程序經(jīng)常引發(fā)as產(chǎn)生警告,警告指出已觸發(fā)了一個特定的條件。這些警告都被定向到標(biāo)準的錯誤文件。如果你使用了選項W 和-no-warn ,就不會產(chǎn)生警告。這只影響到警告的信息:它不會影響到as如何匯編你的文件。而錯誤,將會終止匯編過程,仍會被報告。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨史國史國情知識競賽題庫及答案(共190題)
- 溶血三項在新生兒溶血檢測中的靈敏度及特異度分析
- 學(xué)院食材采購 投標(biāo)方案(技術(shù)方案)
- 電商平臺具體業(yè)務(wù)
- 中醫(yī)護理學(xué)(第5版)課件 第一節(jié) 中藥方劑基本常識
- 電子商務(wù)安全交易規(guī)范手冊
- 公路建設(shè)項目工程可行性研究報告編制辦法
- 系統(tǒng)可行性分析包括哪些內(nèi)容
- 農(nóng)產(chǎn)品加工與綜合利用技術(shù)手冊
- 品牌建設(shè)與營銷策略實施方案
- GB/T 15819-2006灌溉用聚乙烯(PE)管材由插入式管件引起環(huán)境應(yīng)力開裂敏感性的試驗方法和技術(shù)要求
- GB/T 12996-2012電動輪椅車
- 變壓器的維護及檢修技能培訓(xùn)課件
- 大雁考上郵遞員新課件
- 《材料分析測試技術(shù)》全套教學(xué)課件
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 船舶保險投標(biāo)文件模板
- (完整版)形式發(fā)票模版(國際件通用)
- 施工二次結(jié)構(gòu)模板技術(shù)交底(一)
- 報關(guān)實務(wù)完整版課件全套ppt最全電子教案整書教案教學(xué)設(shè)計教學(xué)教程
- GM∕T 0036-2014 采用非接觸卡的門禁系統(tǒng)密碼應(yīng)用指南
評論
0/150
提交評論