版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第第頁—ARM應用系統(tǒng)開發(fā)詳解筆記一跳轉(zhuǎn)指令跳轉(zhuǎn)指令用于實現(xiàn)程序流程的跳轉(zhuǎn),在ARM程序中有兩種方法可以實現(xiàn)程序流程的跳轉(zhuǎn):—使用專門的跳轉(zhuǎn)指令。—直接向程序計數(shù)器PC寫入跳轉(zhuǎn)地址值。ARM指令集中的跳轉(zhuǎn)指令可以完成從當前指令向前或向后的32MB的地址空間的跳轉(zhuǎn),包括以下4條指令:—B跳轉(zhuǎn)指令—BL帶返回的跳轉(zhuǎn)指令—BLX帶返回和狀態(tài)切換的跳轉(zhuǎn)指令—BX帶狀態(tài)切換的跳轉(zhuǎn)指令BB{條件}目標地址
B指令是最簡單的跳轉(zhuǎn)指令。注意存儲在跳轉(zhuǎn)指令中的實際值是相對當前PC值的一個偏移量,而不是一個絕對地址,它的值由匯編器來計算(參考尋址方式中的相對尋址)它是24位有符號數(shù),左移兩位后有符號擴展為32位,表示的有效偏移為26位(前后32MB的地址空間)。
BL指令BL{條件}目標地址
BL是另一個跳轉(zhuǎn)指令,但跳轉(zhuǎn)之前,會在寄存器R14中保存PC的當前內(nèi)容,因此,可以通過將R14的內(nèi)容重新加載到PC中,來返回到跳轉(zhuǎn)指令之后的那個指令處執(zhí)行。該指令是實現(xiàn)子程序調(diào)用的一個基本但常用的手段。例:
BLLabel;當程序無條件跳轉(zhuǎn)到標號Label處執(zhí)行時,同時將當前的PC值保存到R14中。
BLX指令BLX指令從ARM指令集跳轉(zhuǎn)到指令中所指定的目標地址,并將處理器的工作狀態(tài)有ARM狀態(tài)切換到Thumb狀態(tài)。該指令同時將PC的當前內(nèi)容保存到寄存器R14中。
BX指令BX指令跳轉(zhuǎn)到指令中所指定的目標地址,目標地址處的指令既可以是ARM指令,也可以是Thumb指令。
二數(shù)據(jù)處理指令數(shù)據(jù)處理指令可分為數(shù)據(jù)傳送指令、算術邏輯運算指令和比較指令等。數(shù)據(jù)處理指令包括:MOV數(shù)據(jù)傳送指令、MVN數(shù)據(jù)取反傳送指令、CMP比較指令、CMN反值比較指令、TST位測試指令、TEQ相等測試指令、ADD加法指令、ADC帶進位加法指令、SUB減法指令、SBC帶借位減法指令、RSB逆向減法指令、RSC帶借位的逆向減法指令、AND邏輯與指令、ORR邏輯或指令、EOR邏輯異或指令、BIC位清除指令。MOV指令MOV{條件}{S}目的寄存器,源操作數(shù)
MOV指令將源操作數(shù)加載到目的寄存器。其中S選項決定指令的操作是否影響CPSR中條件標志位的值,當沒有S時指令不更新CPSR中條件標志位的值。例:MOVR1,R0,LSL#3;將寄存器R0的值左移3位后傳送到R1。
MVN指令MVN{條件}{S}目的寄存器,源操作數(shù)
MOV指令不同之處是在傳送之前將源操作數(shù)按位被取反。例:
MVNR0,#0;將立即數(shù)0取反傳送到寄存器R0中,完成后R0=-1。
CMP指令CMP{條件}操作數(shù)1,操作數(shù)2
比較操作數(shù)1和操作數(shù)2,更新CSPR不保存結果。標志位表示的是操作數(shù)1與操作數(shù)2的關系(大、小、相等)。例如,當操作數(shù)1大于操作操作數(shù)2,則此后的有GT后綴的指令將可以執(zhí)行。例:CMPR1,#100;將寄存器R1的值與立即數(shù)100相減,并根據(jù)結果設置CPSR的標志位
CMN指令CMN{條件}操作數(shù)1,操作數(shù)2
實際完成操作數(shù)1和操作數(shù)2相加,并根據(jù)結果更改條件標志位。例:CMNR1,R0;將寄存器R1的值與寄存器R0的值相加,并根據(jù)結果設置CPSR
TST指令TST{條件}操作數(shù)1,操作數(shù)2
TST指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行按位的與運算,并根據(jù)運算結果更新CPSR中條件標志位的值。操作數(shù)1是要測試的數(shù)據(jù),而操作數(shù)2是一個位掩碼,該指令一般用來檢測是否設置了特定的位。例:
TSTR1,#0xffe;將寄存器R1的值與立即數(shù)0xffe按位與,并根據(jù)結果設置CPSR
TEQ指令TEQ{條件}操作數(shù)1,操作數(shù)2TEQ指令用于把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行按位的異或運算,并根據(jù)運算結果更新CPSR中條件標志位的值。該指令通常用于比較操作數(shù)1和操作數(shù)2是否相等。例:
TEQR1,R2;將寄存器R1的值與寄存器R2的值按位異或,并根據(jù)結果設置CPSR
ADD指令ADD{條件}{S}目的寄存器,操作數(shù)1,操作數(shù)2
ADDR0,R2,R3,LSL#1;R0=R2+(R3,操作數(shù)
MSR指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的特定域中。其中,操作數(shù)可以為通用寄存器或立即數(shù)。用于設置程序狀態(tài)寄存器中需要操作的位,32位的程序狀態(tài)寄存器可分為4個域:位[31:24]為條件標志位域,用f表示;位[23:16]為狀態(tài)位域,用s表示;位[15:8]為擴展位域,用x表示;位[7:0]為控制位域,用c表示;該指令通常用于恢復或改變程序狀態(tài)寄存器的內(nèi)容,在使用時,一般要在MSR指令中指明將要操作的域。MSRCPSR_c,R0;傳送R0的內(nèi)容到SPSR,但僅僅修改CPSR中的控制位域五加載/存儲指令LDR指令LDR{條件}目的寄存器,LDRR0,[R1,R2];將存儲器地址為R1+R2的字數(shù)據(jù)讀入寄存器R0。LDRR0,[R1,#8];將存儲器地址為R1+8的字數(shù)據(jù)讀入寄存器R0。LDRR0,[R1,R2]!;將存儲器地址為R1+R2的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2寫入R1。LDRR0,[R1,#8]!;將存儲器地址為R1+8的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+8寫入R1。LDRR0,[R1],R2;將存儲器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2寫入R1。LDRR0,[R1,R2,LSL#2]!;將存儲器地址為R1+R2×4的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2×4寫入R1。LDRR0,[R1],R2,LSL#2;將存儲器地址為R1的字數(shù)據(jù)讀入寄存器R0,并將新地址R1+R2×4寫入R1。帶!號的指令和[]外有寄存器的指令,都要將新地址寫入R1六批量數(shù)據(jù)加載/存儲指令LDM(或STM)指令
LDM(或STM){條件}{類型}基址寄存器{!},寄存器列表{}LDM(或STM)指令用于從由基址寄存器所指示的一片連續(xù)存儲器到寄存器列表所指示的多個寄存器之間傳送數(shù)據(jù),該指令的常見用途是將多個寄存器的內(nèi)容入棧或出棧。其中,{類型}為以下幾種情況:*IA每次傳送后地址加1;*IB每次傳送前地址加1;*DA每次傳送后地址減1;*DB每次傳送前地址減1;*FD滿遞減堆棧;*ED空遞減堆棧;*FA滿遞增堆棧;*EA空遞增堆棧;*{!}為可選后綴,若選用該后綴,則當數(shù)據(jù)傳送
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地使用權出讓居間合同規(guī)范文本-城市綜合體開發(fā)3篇
- 二零二五版住宅小區(qū)車位產(chǎn)權轉(zhuǎn)移及使用權購買合同3篇
- 2025版住宅小區(qū)消防設備設施定期檢查與維護合同范本2篇
- 2025年度木門行業(yè)環(huán)保認證與推廣合同3篇
- 2025年度國際物流合作解約及責任分擔協(xié)議書
- 二零二五年度美容店轉(zhuǎn)讓合同包括美容院品牌授權及區(qū)域代理權
- 2025年度二零二五年度大型活動臨時工人搬運服務承包協(xié)議
- 2025年度私人承包廠房租賃合同安全責任追究協(xié)議
- 二零二五板材行業(yè)數(shù)據(jù)分析與市場預測合同3篇
- 二零二五年度鏟車清雪作業(yè)安全責任保險合同
- 中考模擬考試化學試卷與答案解析(共三套)
- 新人教版五年級小學數(shù)學全冊奧數(shù)(含答案)
- 風電場升壓站培訓課件
- 收納盒注塑模具設計(論文-任務書-開題報告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號處理與特征提取
- 高中數(shù)學知識點全總結(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點詞組歸納總結
- 蘇教版四年級數(shù)學下冊第3單元第2課時“常見的數(shù)量關系”教案
評論
0/150
提交評論