

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、從 ARMASM 匯編到 GNU ARM ASM 匯編以前用 ARM 的 IDE 工具,使用的是 ARM 標(biāo)準(zhǔn)的匯編語言。現(xiàn)在要使用 GNU 的工具,當(dāng)然要 了解一點(diǎn) GNUARM 匯編的不同之處。ARM 匯編語言源程序語句,一般由指令,偽操作,宏指令和偽指令作成.ARM 匯編語言的設(shè)計(jì)基礎(chǔ) 是匯編偽指令,匯編偽操作和宏指令目前常用的 ARM 編譯環(huán)境有 2 種:ARMASM: ARM 公司的 IDE 中使用了 CodeWarrior的編譯器,絕大多數(shù)windows 下的開發(fā)者都在使用這一環(huán)境,完全按照ARM 的規(guī)定;GNU ARM ASM: GNU 工具的 ARM 版本,與 ARMASM 略
2、有不同;關(guān)于 CodeWarriror ARM匯編的書和文章很多,本文假定你已經(jīng)完全了解ARMASM,這里只說明 GNU ARM 匯編,并針對 ARMASM 給岀說明。本文翻譯自: GNU ARM Assembler Quick Refere nee 。GNU ARM 匯編快速入門任何匯編行都是如下結(jié)構(gòu):: instruction or directive eomment: 注釋GNU ARM 匯編中,任何以冒號結(jié)尾的都被認(rèn)為是一個(gè)標(biāo)簽,而不一定非要在一行的開始。下 面是一個(gè)簡單的例子,這段匯編程序定義了一個(gè)add的函數(shù),該函數(shù)返回兩個(gè)參數(shù)的和:.section .text,“ x ”.glo
3、bal add give the symbol add exter nal lin kageadd:ADD r0, r0, r1 add in put argume ntsMOV pc, lr return from subrout ine end of programGNU ARM 匯編偽指令 下面列岀了一些 GNU ARM 匯編偽指令,并給岀了相應(yīng)說明。.ascii“”在匯編中定義字符串并為之分配存儲空間(與 armasm 中的 DCB 功能類似)。.asciz “ ” 和.ascii 類似,但不分配存儲空間。.balign , , 以某種排列方式在內(nèi)存中填充數(shù)值。(該指令與 armasm
4、 中的 ALIGN 類似)。power_of_2表示排列方式,其值可為4,8, 16 或 32,單位是 byte ;fill_value是要填充的值;max_padding最大的填充界限,請求填充的bytes 數(shù)超過該值,將被忽略。.byte , 定義一個(gè)或多個(gè) Byte,并為之分配空間(與 armasm 的DCB 類似)。.code 設(shè)定指令寬度,16 表示 Thumb , 32 表示 ARM assembly(和 armasm 中的 CODE16 , CODE32 相同)。.if.else.endif 預(yù)編譯宏(與 armasm 中的 IF ELSE ENDIF 相同)。.end 匯編文件
5、結(jié)束標(biāo)志,常常省略不用。.en dm 宏結(jié)束標(biāo)志。.exitm宏跳岀。.macro arg_1 , ,定義一段名為 n ame 的宏,arg_xxx 為參數(shù)。必須有對應(yīng)的.endm 結(jié)尾??梢允褂?exitm 從中間跳岀宏。(與armasm 中的 MACRO, MEND, MEXIT 相同)在使用宏參數(shù)時(shí)必須這樣使用:“例如:CODE.macro SHIFTLEFT a, b.if b 0MOV a, a, ASR #-b.exitm.en difMOV a, a, LSL #b.en dm.rept armasm 中的 WEN 相似)循環(huán)執(zhí)行.endr 前的代碼段 number_of_tim
6、es次。(與.irp , ,循環(huán)執(zhí)行.endr 前的代碼段,面給岀的值。在循環(huán)執(zhí)行的代碼段中必須以“”表示參數(shù)。param 依次取后.endr 結(jié)束循環(huán)(與 armasm 中的 WEND 相似).equ vsymbol name, 為一個(gè)標(biāo)號賦值,類似C 中的 #define的 EQU 相同)(與 armasm 中.err 編譯錯誤報(bào)告,將引起編譯的終止.global 全局聲明標(biāo)志,這樣聲明的標(biāo)號將可以被外部使用。EXPORT 相同)。.hword ,插入一個(gè) 16-bit 的數(shù)據(jù)隊(duì)列。(與相同)(與 armasm 中的armasm 中的 DCW.ifdef 如果 被定義,該快代碼將被編譯。以
7、.endif 結(jié)束.ifndef 如果 未被定義,該快代碼將被編譯。以.endif 結(jié)束.include一樣),段;.data, 初始化數(shù)據(jù)段;.bss,未初始化數(shù)據(jù)段。以識別這些標(biāo)志。(與 armasm 中的F 面是 ELF 格式允許的段標(biāo)志 含義允許段可寫段執(zhí)行段分配 number_of_bytes字節(jié)的數(shù)據(jù)空間,并0。(與 armasm 中的 SPACE 功能相同)GNU ARM 匯編特殊字符和語法語句分離符號 直接操作數(shù)前綴:# 或$ .word ,功能相同)插入一個(gè)32-bit 的數(shù)據(jù)隊(duì)列。(與armasm 中的 DCD代碼行中的注釋符號整行注釋符號# .armarm 格式編譯,同 code32.thumb以 thumb 格式編譯,同 code16.code16以 thumb 格式編譯.code32以 arm 格式編譯register_ name.req register_ name右邊是使用的真正使用的寄存器。(與” 開始一個(gè)新的代碼或數(shù)據(jù)段。.tex
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年小學(xué)英語畢業(yè)考試模擬試卷-口語聽力理解提升試題
- 2025年小學(xué)英語畢業(yè)考試模擬卷:英語歌曲欣賞與演唱實(shí)踐試題
- 2025年初中地理學(xué)業(yè)水平考試模擬試卷:地圖與地球?qū)m?xiàng)試題解析及答案集
- 2025年CFA特許金融分析師考試企業(yè)財(cái)務(wù)與會計(jì)政策試題
- 2025年消防執(zhí)業(yè)資格考試題庫:消防應(yīng)急通信保障通信保障能力評估改進(jìn)措施試題
- 2025年護(hù)士執(zhí)業(yè)資格考試題庫實(shí)戰(zhàn):護(hù)理科研方法與實(shí)踐應(yīng)用案例分析
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》易錯易混題集(含答案)解析大全
- 2025年安全生產(chǎn)風(fēng)險(xiǎn)分級管控試題集:針對2025年考試重點(diǎn)解析
- 坑洞路面施工方案
- 西部光纜施工方案
- 《兒童孤獨(dú)癥講座》課件
- 高職英語-考試試題及答案
- 卷簾門加工制作及安裝合同協(xié)議書范本模板
- 醫(yī)務(wù)科依法執(zhí)業(yè)自查表
- 掃雷游戲課件
- Zippo年度機(jī)系列(更新至C23)
- 垃圾焚燒發(fā)電環(huán)境影響評價(jià)報(bào)告書
- 公路工程工程結(jié)算用表
- 秤的發(fā)展史課件-參考
- 2023年江蘇省宿遷市中考化學(xué)試題(含答案解析)
- cmk 設(shè)備能力分析計(jì)數(shù)表格
評論
0/150
提交評論