嵌入式系統及應用Chaer匯編語言程序設計_第1頁
嵌入式系統及應用Chaer匯編語言程序設計_第2頁
嵌入式系統及應用Chaer匯編語言程序設計_第3頁
嵌入式系統及應用Chaer匯編語言程序設計_第4頁
嵌入式系統及應用Chaer匯編語言程序設計_第5頁
已閱讀5頁,還剩42頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式系統及應用第六章

ARM匯編語言程序設計ARM偽指令匯編程序設計ARM偽指令偽指令不像機器指令那樣在處理器運行期間由機器執行,而是在匯編時會被合適的機器指令代替,實現真正機器指令操作;地址讀取偽指令ADR偽指令小范圍的地址讀取偽指令.ADR指令將基于PC相對偏移的地址值讀取到寄存器中.在匯編編譯源程序時,ADR偽指令被編譯器替換成一條合適的指令.通常,編譯器用一條ADD指令或SUB指令來實現該ADR偽指令的功能;指令格式:

ADR{cond}register,exper地址讀取偽指令ADRL偽指令中等范圍的地址讀取偽指令.ADRL指令將基于PC相對偏移的地址值或基于寄存器相對偏移的地址值讀取到寄存器中,比ADR偽指令可以讀取更大范圍的地址。在匯編編譯源程序時,ADRL偽指令被編譯器替換成兩個條合適的指令。指令格式

ADRL{cond}register,exper地址讀取偽指令LDR偽指令大范圍的地址讀取偽指令.LDR偽指令用于加載32位的立即數或一個地址值到指定寄存器.指令格式

LDR{cond}register,=expr/label_expr舉例

LDRR0,=0x123456

LDRR0,=DATA_BUFFER+0x10

...

LTORG

NOP偽指令空操作偽指令,無操作,用于實現延時;舉例 DELAY1

NOP

NOP

NOP

SUBSR1,R1,#1

BNEDELAY1變量定義偽指令全局變量聲明GBLAvariable:全局數值變量GBLLvariable:全局邏輯變量GBLSvariable:全局字符串變量局部變量聲明LBLAvariable:局部數值變量LBLLvariable:局部邏輯變量LBLSvariable:局部字符串變量

變量賦值偽指令給變量復制:SETA偽指令用于給一個全局/局部的算術變量賦值.SETL偽指令用于給一個全局/局部的邏輯變量賦值.SETS偽指令用于給一個全局/局部的字符串變量賦值.

變量定義/賦值偽指令舉例 GBLLCodeDbg

CodeDbgSETL{TRUE}

...

GBLAByteNo

ByteNoSETA8

...

GBLSErrStr

ErrStrSETS"Nosemaphone."

RLIST偽指令

RLIST為一個通用寄存器列表定義名稱:

nameRLIST{reglist}舉例:

LoRegRLIST{R0-R7}數據定義偽指令

數據定義偽指令用于數據表定義,文字池定義,數據空間分配等:

聲明一個文字池:LTORG

分配一塊內存空間,并用0初始化:SPACE

分配一段字節的內存單元,并用指定的數據初始化:DCB

分配一段字的內存單元,并用指令的數據初始化:DCD和DCDULTORG偽指令

LTORG用于聲明一個文字池(literal-pool),在使用LDR偽指令時,要在適當的地址加入LTORG聲明文字池,這樣就會把要加載的數據保存在文字池內,再用ARM的加載指令讀出數據:

LTORG舉例:

LDRR0,=0x12345678

ADDR1,R1,R0

MOVPC,LR

LTORGSPACE偽指令

SPACE用于分配一塊內存單元,并用0初始化.%與SPACE同義:

{label}SPACEexpr舉例:

DataBufSPACE1000 ;分配1000字節DCB偽指令

DCB用于分配一段字節內存單元,并用偽指令中的expr初始化.一般可用來定義數據表格,或文字符串.=與DCB同義:

{label}DCBexpr{,expr}{,expr}...舉例:

DISPTAB DCB0x33,0x43,0x53

DCB0x10,0x20,0x30

ERRSTR DCB"Senddataerror.",0DC援D偽指作令DC夫D用于耐分配棒一段坡字內哲存單晝元,并用介偽指站令中竟的ex懲pr初始徐化.期&與DC探D同義微:{l刑ab過el靜}翼DC釀Dex飯pr產{,井ex缺pr蛇}{葡,e對xp問r}舉例朱:Ve單ct吉or專s私L專DRPC今,R暴es狐et聚Ad壯drLD明RPC額,U抓nd補ef秋in絡ed尾Ad統drRe萬se躍tA廉dd而rDC候D捷Re邁se灑tUn微de稈fi系ne播dA朽dd記rDC尼D蝴Un上de籠fi慶ne近d導Re仁se什t饞.貼..匯編案控制疼偽指停令匯編赤控制參偽指世令用棒于條量件匯屢編,宏定顧義,重復劍匯編躺控制丈等:捧條件霉匯編碑控制:法I宇F,幟EL繭SE和EN嫂DI廚F宏定蜘義:匯M嶺AC光RO和ME奇ND重復妙匯編:殖W促HI狗LE及WE逮NDIF、EL亦SE和EN冒DI碎F偽指標令IF型,E欄LS械E和EN季DI古F偽指醉令能密夠根訂據條沉件把東一段摘代碼賄包括械在匯細編程姓序內科或將嬸其排旁除滋在程終序之屬外:IFlo世gi慈ca覽l_箱ex欲pr..黨.織E昂LS燒E絮..傍.棉E英ND葡IFMA猜CR纏O和ME盞ND偽指紛令MA少CR瓶O和ME受ND偽指妨令用宅于宏醉定義.M哀AC閉RO標識罵宏定嬌義的現開始,M帖EN抵D標識澆宏定偶義久呆的譜結束.用MA器CR策O及ME例ND定義頂的一靠段代衛碼,稱為瘦宏定雖義體特:MA侵CR舊O翅{智$l勵ab巴el冰}ma臟cr僅on里am予e{p壤ar恢a1叮}{謀pa檔ra音2}秧;宏體賓定義ME核NDMA某CR宏O和ME栗ND偽指旋令舉例潮:MC唯AR誘O獅$IR浪Q_別La弱be播lHA視ND忍LE享R旬$IR明Q_獅Ex糊ce即pt晝io蠻nEX壇PO乞RT桌$IR例Q_畢La廢bl舍eIM躲PO犁RT漸$IR弟Q_析Ex蘭ce猾pt群io印n$IR料Q_陵La答bl鵲eSU捧B犬LR扁,L使R,盞#4提ST獎MF土D賓SP約!,肉{R獲0-異R3蟲,R襪12缺,L析R}營MR電S用R3肉,S職TS駕R凡S倉TM然FD景S揪P!憐,{起R3毒}魂.波..武M幸EN刺DDC超D偽指季令WH朽IL曉E和WE話ND偽指韻令用提于根蝦據條智件重何復匯糖編相宵同的駱或幾壘乎相掀同的糕一段塌源程延序:WH揚IL郵Elo醬gi陜ca旁l_蹲ex爪prWE毀ND舉例累:WH承IL積E沈no規<汪5蠶no幫S斷ET弱A鋼no悟+1漆.餅..蜻WE突ND雜項幣偽指崇令邊界育對齊:芒AL迫IG條N段定襲義:甘AR船EA指令址集定醬義:燥CO威DE熱16和CO滔DE敢32匯編姜結束:城EN脹D程序南入口:狼EN量TR捕Y常量將定義:者EQ縫U聲明旅符號傅可以呢被外址部引偶用:E油XP省OR肝T和GL漆OR區BA挖L聲明拜一個蘇外部儉符號:I呢MP乘OR掃T和EX從TE著RN包含秒文件:G問ET和IN荷CL怎UD卷E包含鳳不被涌匯編誼的文懇件:I翅NC助BI求NAL后IG松N偽指倡令AL勁IG盡N偽指熱令通跪過添畫加補進丁字盼節使屯當前層位置任滿足煤一定籌的對首齊方娛式:AL礦IG什N他{ex敘pr}舉例植:..賀.By復te礎Bu蛋fDC謎B申0旨x1商0冊A搞LI煩GN而4懶..丙.AR材EA偽指嚼令AR拜EA偽指野令用驚于定罩義一癢個代討碼段慈或數砌據段.A匙RM匯編齊程序散設計輕采用嶼分段甩式設憤計,一卻個AR驕M源程摟序至縱少需魚要一扔個代端碼段,大的險程序擱可以越包含誘多少埋個代惹碼段恰及數湖據段完:AR中EAse潑ct側io遵nn盯am頁e{,at雨tr}{,at嘗tr}舉例驕:AR窩EAEx我am燥pl飯e,臣CO臉DE咐,R負EA妖DN赴OL稻YAR歉EA偽指揮令AL搞IG戴N:定義絹對齊刺方式CO窗DE:定勺義代盈碼段CO閉MD塌EF:定候義一依個可響包含爽代碼認和數塵據的萌通用遙段CO俱MM穗ON:定旗義一格個通喬用的千段DA示TA:定暮義數型據段NO將IN州IT:無拔需初利始化RE桃AD酸ON止LY:指匹定本蘆段為遣只讀,代碼給段的行默認把屬性隙為RE違AD往ON師LY;RE甩AD壞WR抄IT櫻E:指炊定本謎段為敬可讀磨可寫.數據筑段的分默認概屬性麥為RE片AD銜WR棉IT增E;CO環DE遼16和CO局DE持32偽指呼令CO吉DE輕16偽指籃令指種示匯責編編艇譯器劃后面舞的指游令為16位的Th跨um霜b指令狂;CO掃DE完32偽指家令指亦示匯惱編編弦譯器誰后面兄的指遠令為32位的AR全M指令獵;CO紅DE蒜16邪CO抬DE懶32舉例勿:AR煮EA獲Ex遣am熟pl屋e或C渣OD限E,朗RE程AD溜ON雀LY棒CO驅DE拐32EN豎D偽指渾令EN叼D偽指搞令用圣于指膨示匯孔編編學譯器賠源文篇件已盒結束.每一療個匯郊編源約文件窮均要急使用擋一個EN慚D偽指灘令,指示姿本源片程序喘結束犁;EN棋D舉例皆:..環.服;匯編磚文件惱內容EN心DEN痛TR莫Y偽指頸令EN康TR弊Y偽指漲令用隊于指福定程泰序的圖入口晶點:EN睡TR數Y舉例跌:AR披EAEX交am碗pl肅e,延CO勒DE誦,R顯EA氏DO次NL盾YEN畫TR趟Y匹C寫OD續E3雁2陽S叉TA犧RT棵M笑OV困R離1,怪#0晶x1孫0惕.失..EQ帶U偽指疫令EQ鋒U偽指朝令為倡數字敬常量糟,基宏于寄碼存器茅的值大和程丸序中圣的標勿號定曉義一壺個名家稱。群*與EQ宜U同義布:na跪me務E主QUex衫pr雖{,胳ty慮pe}舉例蔬:T_晌bi贈tEQ泳U呀0x藥20層A駐BC性D魄E鵝QU孕l蕩ab等el漲+8EX尊PO秧RT和GL勇OB納AL偽指綱令EX欺PO攔RT聲明值一個壯符號柿可以稱被其脊它文域件引幅用.相當淺于聲視明了鉗一個抓全局果變量.地GL弱OB獻AL與EX眾PO聾RT相同約:EX鴿PO倍RT翁s任ym攻bo搖l抵G疑LO總BA礙L衣sy妻mb知ol舉例授:EX描PO旺RTIn務it惑St巨ac凍kGL終OB勺AL崗V汁ec染to湖rsIM板PO乳RT和EX愁TE辮RN偽指宵令IM授JP載OR釣T偽指跪令指伙示編欣譯器窯當前炕的符摔號不蒜是在陳本源逝文件挪中定樸義的,而是劈燕在其襲他源第文內件中悠定義鑒的,在本蜻源文蒼件中芝可能寧引用械該符必號.朋EX女TE悶RN與IM乏PO欺RT相同悲:IM耕PO媽RT息s毛ym脖bo相l侮E件XT甚ER服N像sy灶mb圣ol舉例首:IM咸PO芬RTIn悲it造St想ac訂kEX辣TE蹦RN粘V垂ec核to之rsGE寬T和IN泡CL究UD訴E偽指鴿令GE裕T偽指識令將疫一個盾源文嚇件包愁含到溉當前縣源文采件中,并將死被包都含的鍛文件魔在具戰當前錯位置映進碌行匯胡編處毀理IN蔑CL兩UD題E與GF漸T同義擦:GE功T攜fi換le防na眉me粉IN瘡CL港UD慚E直fi繳le辰na橫me舉例稅:IN頌CL福UD反E到s3洲c4但4b倍0.廢in槍cIN陡CB瞧IN偽指應令IN匆CB物IN偽指鍋令將鏟一個湊文件棉包含紛到當蛙前源餐文件幼中,而被進包含鐮的文楚件不咐進行腔匯編應處理箭:IN佛CB拍IN餃f影il六en抬am腫e舉例悲:IN乖CB閥INch鉛ar仇li鳳b.槐bi淹nAR低M匯編羨程序仗設計文件仗格式編寫絡規范子程拘序調邊用數據虜塊拷覺貝查表熄操作完整后的例緊子文件隨格式匯編飯規范標號污必須綢在一辟行的蹤蝶頂格沫書寫,其后準面不腿要添質加":砌",而樹指令遇均不潮能頂盡格書壟寫;AR援M匯編屑器對續標識速符大幫小寫放敏感鋒,書挺寫標誘號及謙指令犬時字虹母大揀小寫矩要一寫致;注釋宮使用";",注落釋內濫容由";"開始淘到此樂行墓結束喪,注利釋可另以在濟一行該的頂較格書智寫;匯編觀規范正確甚的例染子..技.隆St炸r1踢S穗ET薯S舒"偵My冤s沾tr少in維g.日0"挺U伸SR偏_S粥TA稠CK攔EQ販U購6錢4致S文TA剛RT最LD虧R污R0液,=馳0x榴11季22譯34狂56洪;地址嘗送R0姓M固OV符R鳳1,暗#0庫LO館OP算M退OV兵R摘2,聞#2匯編書規范不正瞎確的象例子..請.躁S歲TA高RT駕M崖OV議R誰0,蠢#1假A福BC渠:亦MO臭V階R1批,#諒2回MO兇V初R2奸,#榆3欲l糕oo君pMo跑vR2娘,#掘3茂B禽L閣oo冬p子程繁序調元用用BL指令嗎進行浩調用,該指跌令會利把返含回的PC值保限存在LR舉例..嚷.旗BL愿D暴EL且AY;調盛用子理程序..掛.沿DE駕LA惕Y允..闖.悔MO朽V教PC鴨,L科R;子隱程序珠返回數據叼比較衛跳轉匯編滿程序駱可以感使用CM倚P指令辨進行量兩個撈數據視比較,然后津調用目相應串的AR溉M條件慨碼,實現每跳轉胸;舉例CM田P訴R5旱,#跪10吩B常EQ備D裕OE告QU拾AL瘡.聾..趕C俘MP憶R錦1,禿R2嫂A牲DD蜂HI仰R堆1,伏R1性,#裝10哲A暑DD栽LS弄R餅1,津R1腎,#常5者..剛.浩AN駱DS徑R金1,旁R1底,#禍0x呼80貢B霞NE瞎W梅AI池T循環MO祝V維R1加,#碧10沉;循環顛次數LO纏OP珍.跪..號;循環湯體SU妥BS凱R逆1,錢R1敏,#工1倚BN暴E桑LO橫OP釀.盞..數據惱塊復錦制LD剝R樂R0明,=漿DA成TA調_D療ST積L短DR犁R怨1,雞=D超AT騎A_遍SR支C違MO董V遵R1緞0,批#1肯0充L油OO燒P賣LD挨MI攔A尾R1紗!,要{R笛2-軟R9摧}曉ST鄰MI燃A肝R0踐!,面{R牛2-啦R9期}腳SU悉BS廳R躍10調,R須10燃,#盯1局BN防E輪LO植OP棧操句作AR命M使用腿存儲琴器訪需問指窩令LD略M/鍬ST瓶M實現舍棧操敬作,用于寨子程葵序寄銅存器棟保存.注意,使用吧堆狂棧時,要先干分配未好堆優棧空祖間,設置源好寄曾存器R1疼3(即堆泥棧指效針SP輕),否則崇操作股失敗.舉例ST遙MF勿D廁SP盆!,林{R句0-遭R7剪,L眉R}夢.唱..往B丟L坦DE極LA建Y榴..的.呀LD初MF睡D咸SP夏!,尼{R艇0-瓜R7亭,P練C}散轉CM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論