《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > ARM匯編語(yǔ)言程序設(shè)計(jì)

ARM匯編語(yǔ)言程序設(shè)計(jì)

2017-06-22
關(guān)鍵詞: 匯編語(yǔ)言

在ARM嵌入式系統(tǒng)中,,一般用C語(yǔ)言高級(jí)語(yǔ)言對(duì)各個(gè)應(yīng)用接口模塊功能的實(shí)現(xiàn)進(jìn)行程序設(shè)計(jì),,但是在某些地方用匯編語(yǔ)言更方便,、簡(jiǎn)單,而且有一些地方,例如用了來(lái)初始化電路以及用來(lái)為高級(jí)語(yǔ)言寫的軟件做好運(yùn)行前準(zhǔn)備的啟動(dòng)代碼必須用匯編語(yǔ)言編寫。ARM嵌入式系統(tǒng)程序設(shè)計(jì)可分為ARM匯編語(yǔ)言程序設(shè)計(jì),、嵌入式C語(yǔ)言程序設(shè)計(jì)以及C語(yǔ)言與匯編語(yǔ)言的混合編程。

匯編語(yǔ)言的代碼率很高,,一般用于對(duì)硬件的直接控制,。因此,ARM匯編程序設(shè)計(jì)是嵌入式編程中的一個(gè)重要的也是必不可少的組成部分,。

ARM匯編中的文件格式

ARM源程序文件可由任意一種文本編輯器來(lái)編寫程序代碼,,它一般為文本格式。在ARM程序設(shè)計(jì)中,,常用的源文件可簡(jiǎn)單分為以下幾種,,不同種類的文件有不同的后綴名,見(jiàn)表

源程序文件

   

文件名

   

說(shuō)明

   

匯編程序文件

   

*.S

   

用ARM匯編語(yǔ)言編寫的ARM程序或Thumb程序

   

C程序文件

   

*.C

   

用C語(yǔ)言編寫的程序代碼

   

頭文件

   

*.H

   

為了簡(jiǎn)化源程序,,把程序中常用到的常量命名,、宏定義、數(shù)據(jù)結(jié)構(gòu)定義等單獨(dú)放在一個(gè)文件中,,一般稱為頭文件

   

 

 

在ARM的一個(gè)工程中,可包含多個(gè)匯編源文件或多個(gè)C程序文件,,或匯編源文件與C程序文件的組合,,但至少要包含一個(gè)匯編源文件或C語(yǔ)言源文件。

ARM匯編語(yǔ)言格式

ARM匯編語(yǔ)言語(yǔ)句格式如下所示:

{symbol} {instruction | directive | psuedo-instruction}  {,;comment}

其中:

Instruction為指令,。在ARM匯編語(yǔ)言中,指令不能從一行的行頭開(kāi)始,。在一行語(yǔ)句中,,指令的前面必須有空格或符號(hào)。

directive為偽操作,。

psuedo-instruction為偽指令,。

Symbol為符號(hào)。在ARM匯編語(yǔ)言中,,符號(hào)必須從一行的航頭開(kāi)始,,并且符號(hào)中不能包含空格。在指令和偽指令中符號(hào)用作地址標(biāo)號(hào);在有些偽操作中,,符號(hào)用作變量或者常量,。

comment為語(yǔ)句和注釋。在ARM匯編語(yǔ)言中注釋以分號(hào)“,;”開(kāi)頭,。注釋的結(jié)尾即為一行的結(jié)尾。注釋也可單獨(dú)占用一行,。

注意:

在ARM匯編語(yǔ)言中,,各個(gè)指令及偽操作的助記符可全部用大寫字母,也可全部用小寫字母,,但不能再一個(gè)助記符中既有大寫字母又有小寫字母,。

源程序中,在語(yǔ)句之間適當(dāng)?shù)夭迦肟招?,可提高源代碼的可讀性,。

如果一條語(yǔ)句很長(zhǎng),為了提高可讀性,,可使用“\”將該長(zhǎng)語(yǔ)句分成若干行來(lái)寫,。在“\”之后不能再有其他字符,包含空格和制表符,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]