<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM GNU常用匯編語(yǔ)言介紹

ARM GNU常用匯編語(yǔ)言介紹

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
ARM GNU常用匯編語(yǔ)言介紹
ARM匯編語(yǔ)言源程序語(yǔ)句,一般由指令,偽操作,宏指令和偽指令組成.ARM匯編語(yǔ)言的設計基礎是匯編偽指令,匯編偽操作和宏指令。偽操作,是ARM匯編語(yǔ)言程序里的一些特殊的指令助記符,其作用主要是為完成匯編程序做各種準備工作,在源程序運行匯編程序時(shí)處理,而在計算機運行期間沒(méi)有有機器執行.也就是說(shuō),這些偽操作只是匯編過(guò)程中起作用,一旦匯編結束,偽操作的使命也就隨之消失.宏指令,是一段獨立的程序代碼,可以插在程序中,它通過(guò)偽操作來(lái)定義。1>宏在被使用之前必須提前定義好,宏之間可以互相調用,也可自己遞歸調用。2>通過(guò)直接書(shū)寫(xiě)宏名來(lái)使用宏.并本具宏指令的格式輸入輸出參數.3>宏定義本身不產(chǎn)生代碼,只是在調用它時(shí)把宏體插入到原程序中.4>宏與C語(yǔ)言中的子函數形參和實(shí)參的調用相似,調用宏時(shí)通過(guò)實(shí)際的指令來(lái)代替宏體,實(shí)現相關(guān)的一段代碼,但宏的調用與子程序的調用有本質(zhì)的區別,即宏并不會(huì )節省程序的空間,其優(yōu)點(diǎn)是簡(jiǎn)化程序代碼,提高程序的可讀性以及宏內容可以同步改.偽操作,宏指令一般與編譯程序有關(guān),因此ARM匯編語(yǔ)言的偽操作,宏指令在不同的編譯環(huán)境下有不同的編寫(xiě)形式和規則.偽指令也是ARM匯編語(yǔ)言程序里的特殊助記符,也不在處理器運行期間由機器執行,他們在匯編時(shí)將被合適的機器指令代替成ARM或Thumb指令,從而實(shí)現真正的指令操作.目前常用的ARM編譯環(huán)境有2種:1>ADS/SDT IDE:ARM公司開(kāi)發(fā),使用了CodeWarrior公司的編譯器.2>集成了GNU開(kāi)發(fā)工具的IDE開(kāi)發(fā)環(huán)境;它由GNU的匯編器as,交叉匯編器gcc和連接器id組成.ADS編譯環(huán)境下的ARM偽操作和宏指令,可參考北航出版社的<微控制器基礎與實(shí)踐》(周立功)這里主要講述ARM GNU常用匯編語(yǔ)言。4.1 ARM GNU常用匯編偽指令介紹1.abort.abort: 停止匯編.align absexpr1,absexpr2:以某種對齊方式,在未使用的存儲區域填充值. 第一個(gè)值表示對齊方式,4, 8,16或32. 第二個(gè)表達式值表示填充的值.2.if...else...endif.if.else.endif: 支持條件預編譯3.include.include "file": 包含指定的頭文件, 可以把一個(gè)匯編常量定義放在頭文件中.4.comm.comm  symbol, length:在bss段申請一段命名空間,該段空間的名稱(chēng)叫symbol, 長(cháng)度為length. Ld連接器在連接會(huì )為它留出空間.5.data.data subsection: 說(shuō)明接下來(lái)的定義歸屬于subsection數據段.6.equ.equ symbol, expression: 把某一個(gè)符號(symbol)定義成某一個(gè)值(expression).該指令并不分配空間.7.global.global symbol: 定義一個(gè)全局符號, 通常是為ld使用.8.ascii.ascii "string": 定義一個(gè)字符串并為之分配空間.9.byte.byte expressions: 定義一個(gè)字節, 并為之分配空間.10.short.short expressions: 定義一個(gè)短整型, 并為之分配空間.11.int.int expressions: 定義一個(gè)整型,并為之分配空間.12.long.long expressions: 定義一個(gè)長(cháng)整型, 并為之分配空間.13.word.word expressions: 定義一個(gè)字,并為之分配空間, 4bytes.14.macro/endm.macro: 定義一段宏代碼, .macro表示代碼的開(kāi)始, .endm表示代碼的結束.15.reqname .req register name: 為寄存器定義一個(gè)別名.16.code.code [1632]: 指定指令代碼產(chǎn)生的長(cháng)度, 16表示Thumb指令, 32表示ARM指令.17.ltorg.ltorg: 表示當前往下的定義在歸于當前段,并為之分配空間.4.2 ARM GNU專(zhuān)有符號1.@表示注釋從當前位置到行尾的字符.2.#注釋掉一整行.3.;新行分隔符.4.3 操作碼1. NOPnop空操作, 相當于MOV r0, r02.LDRldr  , = 相當于PC寄存器或其它寄存器的長(cháng)轉移.3.ADRadr  


關(guān)鍵詞: ARMGNU匯編語(yǔ)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>