《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 解决方案 > ARM汇编程序实例

ARM汇编程序实例

2017-06-22
關(guān)鍵詞: 汇编语言

下面列舉了幾個ARM匯編程序的簡單實例,給出了詳細的說明;分別給出了完成同一功能的程序在ADS編譯環(huán)境和GNU編譯環(huán)境下的不同形式,并在最后列出了由ADS環(huán)境向GNU環(huán)境下轉(zhuǎn)變時所需要的替換。請注意它們的不同之處。

示例 簡單的ARM指令程序。

在ADS編譯環(huán)境下,程序如下:

AREA     ARMex,CODE,READONLY;設(shè)置本段程序的名稱及屬性,代碼段的名稱為ARMex

ENTRY                                             ;標(biāo)記要執(zhí)行的第一條指令

Start              MOV      R0,#10                  ;設(shè)置參數(shù)

              MOV      R1,R3                  

              ADD       R0,R0,R1              ;R0=R0+R1

Stop        MOV      R0,#&18               ;軟中斷參數(shù)設(shè)置

              LDR       R1,=&20026       ;軟中斷參數(shù)設(shè)置

              SWI        0x123456              ;將CPU的控制權(quán)交給調(diào)試器

END                                                 ;文件的結(jié)束標(biāo)志

行1:AREA指示符定義本程序段為代碼段,名字是ARMex,屬性為只讀。通常一個匯編程序可包括多個段,如代碼段、可讀/寫的數(shù)據(jù)段等。代碼段中也可定義數(shù)據(jù)。該行中的信息將供鏈接器使用。

行2:ENTRY指示符標(biāo)記程序中被執(zhí)行的第一條指令,即標(biāo)志入口地址。在一個ARM程序中可以有多個ENTRY,但至少要有一個ENTRY。

行3:start是一個標(biāo)號,表示代碼的開始,其值是一個地址。其后是ARM指令,利用MOV指令將立即數(shù)10賦給寄存器R0.

行4:利用MOV指令將立即數(shù)3賦給寄存器R1.

行5:計算R0=R0+R1.

行6~行8:這三條指令將系統(tǒng)控制權(quán)**給調(diào)試器,結(jié)束程序運行。此處是通過向Angel發(fā)送一個軟中斷實現(xiàn)的。Angel的軟中斷號是0x123456,實現(xiàn)該功能的中斷參數(shù)是R0=0x18,R1=0x20026.

行9:END指示符指示匯編器結(jié)束對該源程序的處理,所以每個匯編程序都必須包含一個END行。

GNU編譯環(huán)境下(基于Embest IDE環(huán)境開發(fā)環(huán)境),該程序如下:

.global_start

.text                                                  /*標(biāo)志代碼段*/

_start      MOV      R0,#10                  /*設(shè)置參數(shù)*/

              MOV      R1,#3                   

              ADD       R0,R0,R1              /*R0=R0+R1*/

.stop              MOV      R0,#0x18

              LDR       R1,=0x20026

              SWI        0x123456

.END                                                /*文件的結(jié)束標(biāo)志*/


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产精品久久久久福利| 日本久久久a级免费| 99久久99久久精品国产片| 午夜免费日韩视频| 国产精品一区二区三区免费观看| 久久精品91久久香蕉加勒比| 久久久久久草| 精品久久久久久无码中文野结衣| 久久视频在线免费观看| 欧美成人中文字幕在线| 日本一欧美一欧美一亚洲视频| 亚洲自拍另类欧美丝袜| 国产美女精品视频免费观看| 久久久黄色av| 色婷婷精品国产一区二区三区| 精品中文字幕在线2019| 欧美亚洲视频在线看网址| 国产综合在线观看视频| 久久精品99无色码中文字幕 | 激情五月五月婷婷| 欧美亚洲另类制服自拍| 日韩久久一级片| 亚洲二区自拍| 日韩欧美在线一区二区| 亚洲国产精品影视| 亚洲国产精品日韩| 日韩一区二区精品视频| 91精品在线影院| 国产精品美女久久| 国产精品视频在线播放| 国产欧美久久久久| 国产精品久久久久久亚洲影视| 国产中文字幕亚洲| 国产在线视频不卡| 国产精品一级久久久| 国产精品人成电影在线观看| 国产精品欧美日韩久久| 狠狠色综合色区| 国产精品一区免费观看| 久久色精品视频| 久久国产精品视频|