下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
常用Arm匯編偽指令在Arm匯編語(yǔ)言程序中,有一些特殊指令用于對(duì)匯編過(guò)程進(jìn)行控制,這些指令不是可執(zhí)行指令也沒(méi)有對(duì)應(yīng)地機(jī)器碼,只用于匯編過(guò)程中為匯編程序提供匯編信息,這些指令稱(chēng)為偽指令,它們所完成地操作稱(chēng)為偽操作。常用地偽指令有以下幾種:符號(hào)定義偽指令,數(shù)據(jù)定義偽指令,匯編控制偽指令,信息報(bào)告?zhèn)沃噶钜约半s項(xiàng)偽指令。下面列出了上述幾種常用地Arm匯編偽指令。1.符號(hào)定義偽指令符號(hào)定義偽指令用于定義匯編程序中地變量,對(duì)變量賦值以及定義寄存器別名等操作。表2.1符號(hào)定義偽指令偽指令指令格式指令功能GBLAGBLAVariable聲明一個(gè)全局地算術(shù)變量,并將其初始化成0GBLLAGBLLAVariable聲明一個(gè)全局地邏輯變量,并將其初始化成FALSE(假)GBLSGBLSVariable聲明一個(gè)全局地字符串變量,并將其初始化成空串LCLALCLAVariable聲明一個(gè)局部地算術(shù)變量,并將其初始化成0LCLLLCLLVariable聲明一個(gè)局部地邏輯變量,并將其初始化成FALSE(假)LCLSLCLSVariable聲明一個(gè)局部地字符串變量,并將其初始化成空串SETASETAVariableexpr給一個(gè)全局或局部算術(shù)變量賦值SETLSETLVariableexpr給一個(gè)全局或局部邏輯變量賦值SETSSETSVariableexpr給一個(gè)全局或局部字符串變量賦值RLISTnameRLIST{listofregisters}為一個(gè)通用寄存器列表定義名稱(chēng)nameexpr為一個(gè)協(xié)處理器地寄存器定義名稱(chēng)CPnameCPexpr為一個(gè)協(xié)處理器定義名稱(chēng)DN/SNnameDN/SNexpr為一個(gè)雙精度/單精度地VFP寄存器定義名稱(chēng)FNnameFNexpr為一個(gè)FPA浮點(diǎn)寄存器定義名稱(chēng)2.數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令一般用于為特定地?cái)?shù)據(jù)分配存儲(chǔ)單元,并可對(duì)分配地存儲(chǔ)單元進(jìn)行初始化。表2.2數(shù)據(jù)定義偽指令偽指令指令格式指令功能DCB{lable}DCBexpr{,expr}分配一段字節(jié)內(nèi)存單元,并用expr初始化DCW/DCWU{lable}DCW{U}expr{,expr}用于分配一片連續(xù)地半字存儲(chǔ)單元,并用指定地表達(dá)式初始化。
用DCW分配地字存儲(chǔ)單元是半字對(duì)齊地,而用DCWU分配地字存儲(chǔ)單元并不嚴(yán)格半字對(duì)齊DCD/DCDU{lable}DCD{U}expr{,expr}用于分配一片連續(xù)地字存儲(chǔ)單元,并用指定地表達(dá)式初始化。用DCD分配地字存儲(chǔ)單元是字對(duì)齊地,而用DCDU分配地字存儲(chǔ)單元并不嚴(yán)格字對(duì)齊DCFD/DCFDU{lable}DCFD{U}expr{,expr}為雙精度地浮點(diǎn)數(shù)分配一片連續(xù)地字存儲(chǔ)單元,并用指定地表達(dá)式初始化。每個(gè)雙精度地浮點(diǎn)數(shù)占據(jù)兩個(gè)字單元,用DCFD分配地字存儲(chǔ)單元是字對(duì)齊地,而用DCFDU分配地字存儲(chǔ)單元并不嚴(yán)格字對(duì)齊DCFS/DCFSU{lable}DCFS{U}expr{,expr}為單精度地浮點(diǎn)數(shù)分配一片連續(xù)地字存儲(chǔ)單元,并用指定地表達(dá)式初始化。每個(gè)單精度地浮點(diǎn)數(shù)占據(jù)一個(gè)字單元,用DCFS分配地字存儲(chǔ)單元是字對(duì)齊地,而用DCFSU分配地字存儲(chǔ)單元并不嚴(yán)格字對(duì)齊DCQ/DCQU{lable}DCQ{U}expr{,expr}用于分配一片以8個(gè)字節(jié)為單位地連續(xù)存儲(chǔ)區(qū)域,并用指定地表達(dá)式初始化。用DCQ分配地存儲(chǔ)單元是字對(duì)齊地,而用DCQU分配地存儲(chǔ)單元并不嚴(yán)格字對(duì)齊。
DCDO{lable}DCDOexpr{,expr}分配一段字對(duì)齊地字內(nèi)存空間,并用指定地表達(dá)式初始化DCI{lable}DCIexpr{,expr}在Arm代碼中分配一段字對(duì)齊地內(nèi)存單元,并用指定地表達(dá)式初始化;在Thumb代碼中分配一段半字對(duì)齊地內(nèi)存單元,并用指定地表達(dá)式初始化SPACE{lable}SPACEexpr用于分配一片連續(xù)地存儲(chǔ)區(qū)域并初始化為0。其中,表達(dá)式為要分配地字節(jié)數(shù)MAPMAPexpr{,base-register}定義一個(gè)結(jié)構(gòu)化地內(nèi)存表地首地址,MAP偽指令通常與FIELD偽指令配合使用來(lái)定義結(jié)構(gòu)化地內(nèi)存表FIELD{lable}FIELDexpr定義一個(gè)結(jié)構(gòu)化地內(nèi)存表中地?cái)?shù)據(jù)域,表達(dá)式地值為當(dāng)前數(shù)據(jù)域在內(nèi)存表中所占地字節(jié)數(shù)LTORGLTORG說(shuō)明一個(gè)數(shù)據(jù)緩沖池(文字池)地開(kāi)始3.匯編控制偽指令匯編控制偽指令用于控制匯編程序地執(zhí)行流程。表2.3匯編控制偽指令偽指令指令格式指令功能IF,ELSE,ENDIFIFlogicalexpression指令序列1{ELSE指令序列2}ENDIF根據(jù)條件地成立與否決定是否執(zhí)行某個(gè)指令序列。當(dāng)IF后面地邏輯表達(dá)式為真,則執(zhí)行指令序列1,否則執(zhí)行指令序列2,其中,ELSE及指令序列2可以沒(méi)有WHILE,WENDWHILElogicalexpression指令序列WEND根據(jù)條件地成立與否決定是否循環(huán)執(zhí)行某個(gè)指令序列MACRO,MEND,MEXITMACRO{$lable}macroname{$parameter{,$parament}…}…;宏代碼MEND將一段代碼定義為一個(gè)整體,也就是宏指令。可以在程序中通過(guò)宏指令多次調(diào)用該段代碼。其中,$標(biāo)號(hào)在宏指令被展開(kāi)時(shí),標(biāo)號(hào)會(huì)被替換為用戶(hù)定義地符號(hào),宏指令可以使用一個(gè)或多個(gè)參數(shù),當(dāng)宏指令被展開(kāi)時(shí),這些參數(shù)被相應(yīng)地值替換;MEXIT用于從宏定義中跳轉(zhuǎn)出去4.信息報(bào)告?zhèn)沃噶顖?bào)告?zhèn)沃噶钣糜趨R編報(bào)告指示。表2.4信息報(bào)告?zhèn)沃噶顐沃噶钪噶罡袷街噶罟δ蹵SSERTASSERTlogical-expression斷言錯(cuò)誤偽指令,在匯編編譯器對(duì)匯編程序地第二遍掃描中,若其中ASSERT條件不成立,ASSERT偽指令將報(bào)告該錯(cuò)誤信息INFOINFOnumerica-expression,string-expression匯編診斷信息顯示偽指令,在匯編處理過(guò)程地第一遍掃描或者第二遍掃描時(shí)報(bào)告診斷信息,其中,numerica-expression為數(shù)據(jù)表達(dá)式,若為0,則在第一遍掃描時(shí)報(bào)告診斷信息,否則在第二遍掃描時(shí)報(bào)告診斷信息,string-expression為要顯示地字符串OPTOPTn設(shè)置列表選項(xiàng)偽指令,通過(guò)OPT偽操作可以在源程序中設(shè)置列表選項(xiàng),其中n為選項(xiàng)編碼,可取值如下:1:設(shè)置常規(guī)列表選項(xiàng)2:關(guān)閉常規(guī)列表選項(xiàng)4:設(shè)置分頁(yè)符,在新地一頁(yè)開(kāi)始顯示8:將行號(hào)重新設(shè)置為016:設(shè)置選項(xiàng),顯示SET,GBL,LCL偽指令32:設(shè)置選項(xiàng),不顯示SET,GBL,LCL偽指令64:設(shè)置選項(xiàng),顯示宏展開(kāi)128:設(shè)置選項(xiàng),不顯示宏展開(kāi)256:設(shè)置選項(xiàng),顯示宏調(diào)用512:設(shè)置選項(xiàng),不顯示宏調(diào)用1024:設(shè)置選項(xiàng),顯示第一遍掃描列表2048:設(shè)置選項(xiàng),不顯示第一遍掃描列表4096:設(shè)置選項(xiàng),顯示條件匯編偽指令8192:設(shè)置選項(xiàng),不顯示條件匯編偽指令16384:設(shè)置選項(xiàng),顯示MEND偽指令32768:設(shè)置選項(xiàng),不顯示MEND偽指令TTLTTLtitle插入標(biāo)題偽指令,在列表文件地每一頁(yè)地開(kāi)頭插入一個(gè)標(biāo)題SUBTSUBTsubtitle插入標(biāo)題偽指令,在列表文件地每一頁(yè)地開(kāi)頭插入一個(gè)子標(biāo)題5.雜項(xiàng)偽指令雜項(xiàng)偽指令是未包含在表2.1至2.4中且在匯編程序設(shè)計(jì)中常用地偽指令。表2_5雜項(xiàng)偽指令偽指令指令格式指令功能ALIGNALIGN{expr{,offset}}邊界對(duì)齊偽指令,通過(guò)添加補(bǔ)丁字節(jié)使當(dāng)前位置滿(mǎn)足一定地對(duì)齊格式。其中expr用于指定對(duì)齊格式,取值為2地n次冪,表示當(dāng)前位置對(duì)齊到:offset+n×exprAREAAREAsectionname{,attr}{,attr}…段定義偽指令,sectionname為所定義地代碼段或數(shù)據(jù)段地名稱(chēng),attr為該段地屬性CODE16CODE32CODE16CODE32指令集定義偽指令,CODE16指示編譯器后面地指令為16位地Thumb指令;CODE32指示編譯器后面地指令為32位地Arm指令ENDEND匯編結(jié)束偽指令,用于指示匯編編譯器源文件已經(jīng)結(jié)束ENTRYENTRY用于指定程序入口點(diǎn)EQUnameEQUexpr{,type}常量定義偽指令EXPORTGLORBALEXPORTsymbol{[WEAK]}GLORBALsymbol{[WEAK]}聲明一個(gè)符號(hào)可以被其它文件使用,symbol為要聲明地符號(hào)名稱(chēng),[WEAK]聲明其它地同名符由于本符號(hào)被應(yīng)用IMPORTEXPORTIMPORTsymbol{[WEAK]}EXPORTsymbol{[WEAK]}聲明一個(gè)外部符號(hào),symbol為要聲明地符號(hào)名稱(chēng),[WEAK]指定該選項(xiàng)后,如果symbol在所有地源文件中沒(méi)有被定義,編譯器不會(huì)生成如何錯(cuò)誤信息,同時(shí)編譯器也不會(huì)到當(dāng)前沒(méi)有被INCLUDE包含進(jìn)來(lái)地庫(kù)去查找該標(biāo)號(hào)GETINCLUDEGETfilenameINCLUDEfilename將一個(gè)源文件包含到當(dāng)前源文件中,并對(duì)被包含地文件進(jìn)行匯編處理,filename為要包含地源文件名或路徑信息INCBININCBINfilename將一個(gè)文件包含到當(dāng)前地源文件中,而被包含地文件不進(jìn)行匯編處理KEEPKEEP{symbol}指示編譯器保留符號(hào)表中地局部符號(hào),symbol為要保留地局部符號(hào),若無(wú)此項(xiàng),則除了基于寄存器之
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 7300.506-2025飼料添加劑第5部分:微生物德式乳桿菌乳酸亞種
- 土遺址文物修復(fù)師崗前內(nèi)部控制考核試卷含答案
- 呼叫中心服務(wù)員操作水平模擬考核試卷含答案
- 電力通信運(yùn)維員創(chuàng)新應(yīng)用模擬考核試卷含答案
- 自行車(chē)裝配工安全規(guī)程知識(shí)考核試卷含答案
- 作物制種工安全生產(chǎn)意識(shí)模擬考核試卷含答案
- 工程機(jī)械租賃業(yè)務(wù)員道德能力考核試卷含答案
- 橋梁安全文明施工培訓(xùn)
- 老年人日常生活用品領(lǐng)取制度
- 橋式起重吊裝作業(yè)培訓(xùn)
- GB/T 46886-2025智能檢測(cè)裝備通用技術(shù)要求
- 護(hù)理護(hù)理科研與論文寫(xiě)作
- 2025年健康體檢中心服務(wù)與質(zhì)量管理手冊(cè)
- 2025-2030中國(guó)駱駝市場(chǎng)前景規(guī)劃與投資運(yùn)作模式分析研究報(bào)告
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及完整答案詳解一套
- 鋼結(jié)構(gòu)玻璃雨棚安裝施工方案
- 鄂爾多斯輔警考試題型及答案
- 2024-2030年中國(guó)桉葉(油)素市場(chǎng)專(zhuān)題研究及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 攝像機(jī)基礎(chǔ)知識(shí)攝像機(jī)基礎(chǔ)知識(shí)
- 齒軌卡軌車(chē)資料
- 二代測(cè)序NGS培訓(xùn)班課件 4肖艷群-NGS實(shí)驗(yàn)室設(shè)置及質(zhì)量控制2017.10.15福州培訓(xùn)班
評(píng)論
0/150
提交評(píng)論