arm編程的具體內(nèi)容_第1頁
arm編程的具體內(nèi)容_第2頁
arm編程的具體內(nèi)容_第3頁
arm編程的具體內(nèi)容_第4頁
arm編程的具體內(nèi)容_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

arm編程ARM特點(diǎn):1、體積小、低功耗、低成本、高性能2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件3、大量使用寄存器,指令執(zhí)行速度更快4、尋址方式靈活簡單,執(zhí)行效率高工作狀態(tài):從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對齊的ARM指令。第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對齊的Thumb指令。當(dāng)ARM微處理器執(zhí)行32位的ARM指令集時(shí),工作在ARM狀態(tài);當(dāng)ARM微處理器執(zhí)行16位的Thumb指令集時(shí),工作在Thumb狀態(tài)。在程序的執(zhí)行過程中,微處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。存儲器格式:ARM體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個(gè)存儲的字(32位)數(shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲的字?jǐn)?shù)據(jù),依次排列。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB。ARM體系結(jié)構(gòu)可以用兩種方法存儲字?jǐn)?shù)據(jù),稱之為大端格式和小端格式。大端格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。小端格式:與大端存儲格式相反,在小端存儲格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。指令長度:ARM微處理器的指令長度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類型,其中,字需要4字節(jié)對齊(地址的低兩位為0)、半字需要2字節(jié)對齊(地址的最低位為0)。工作模式:ARM微處理器支持7種工作模式,分別為:1、用戶模式(Usr)用于正常執(zhí)行程序2、快速中斷模式(FIQ)用于高速數(shù)據(jù)傳輸3、外部中斷模式(IRQ)用于通常的中斷處理4.管理模式(svc)操作系統(tǒng)使用的保護(hù)模式5.數(shù)據(jù)訪問終止模式(abt)當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù)。6.系統(tǒng)模式(sys)運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。7.未定義指令中止模式(und)當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問的。除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式(Privileged

Modes);其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式(Exception

Modes),常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。寄存器ARM微處理器共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器。但是這些寄存器不能被同時(shí)訪問,具體哪些寄存器是可以訪問的,取決ARM處理器的工作狀態(tài)及具體的運(yùn)行模式。但在任何時(shí)候,通用寄存器R14~R0、程序計(jì)數(shù)器PC、一個(gè)狀態(tài)寄存器都是可訪問的。寄存器(ARM狀態(tài)):在ARM工作狀態(tài)下,任一時(shí)刻可以訪問16個(gè)通用寄存器和一到兩個(gè)狀態(tài)寄存器。在非用戶模式(特權(quán)模式)下,則可訪問到特定模式分組寄存器,具體見下頁圖:分組通用寄存器:分組寄存器R8-R12:1.FIQ模式分組寄存器R8-R122.FIQ以外的分組寄存器R8-R12分組寄存器R13、R14:1.寄存器R13通常用做堆棧指針SP2.寄存器R14用作子程序鏈接寄存器(Link

Register-LR),也稱為LR,指向函數(shù)的返回地址寄存器R15被用作程序計(jì)數(shù)器,也稱為PC。其值等于當(dāng)前正在執(zhí)行的指令的地址+8(因?yàn)樵谌≈泛蛨?zhí)行之間多了一個(gè)譯碼的階段)。狀態(tài)寄存器:CPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM所有工作模式下都可以訪問程序狀態(tài)寄存器CPSR。CPSR包含條件碼標(biāo)志、中斷禁止位、當(dāng)前處理器模式以及其它狀態(tài)和控制信息。CPSR在每種異常模式下都有一個(gè)對應(yīng)的物理寄存器——程序狀態(tài)保存寄存器SPSR。當(dāng)異常出現(xiàn)時(shí),SPSR用于保存CPSR的值,以便異常返回后恢復(fù)異常發(fā)生時(shí)的工作狀態(tài)。尋址方式:所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。立即尋址:立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方式,操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。這個(gè)操作數(shù)被稱為立即數(shù),對應(yīng)的尋址方式也就叫做立即尋址。例如以下指令:ADDR0,R0,#1;R0←R0+1ADDR0,R0,#0x3f

;R0←R0+0x3f在以上兩條指令中,第二個(gè)源操作數(shù)即為立即數(shù),要求以“?!睘榍熬Y,對于以十六進(jìn)制表示的立即數(shù),還要求在“#”后加上“0x”或“&”。寄存器尋址:寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),這種尋址方式是各類微處理器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。ADD

R0,R1,R2

;R0←R1+R2該指令的執(zhí)行效果是將寄存器R1和R2的內(nèi)容相加,其結(jié)果存放在寄存器R0中。寄存器間接尋址:寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,而操作數(shù)本身存放在存儲器中。例如以下指令:ADDR0,R1,[R2]

;R0←R1+[R2]LDR

R0,[R1]

;R0←[R1]在第一條指令中,以寄存器R2的值作為操作數(shù)的地址,在存儲器中取得一個(gè)操作數(shù)后與R1相加,結(jié)果存入寄存器R0中。第二條指令將以R1的值為地址的存儲器中的數(shù)據(jù)傳送到R0中?;纷冎穼ぶ坊纷冎穼ぶ肪褪菍⒓拇嫫鳎ㄔ摷拇嫫饕话惴Q作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個(gè)操作數(shù)的有效地址:LDRR0,[R1,#4]

;R0←[R1+4]LDRR0,[R1,#4]!

;R0←[R1+4]、R1←R1+4LDRR0,[R1],#4

;R0←[R1]、R1←R1+4LDRR0,[R1,R2]

;R0←[R1+R2]多寄存器尋址采用多寄存器尋址方式,一條指令可以完成多個(gè)寄存器值的傳送。這尋址方式可以用一條指令完成傳送最多16個(gè)通用寄存器的值。以下指令:LDMIA

R0,{R1,R2,R3,R4}

;R1←[R0]

;R2←[R0+4]

;R3←[R0+8]

;R4←[R0+12]該指令的后綴IA表示在每次執(zhí)行完加載/存儲操作后,R0按字長度增加,因此,指令可將連續(xù)存儲單元的值傳送到R1~R4。相對尋址與基址變址尋址方式相類似,相對尋址以程序計(jì)數(shù)器PC的當(dāng)前值為基地址,指令中的地址標(biāo)號作為偏移量,將兩者相加之后得到操作數(shù)的有效地址。以下程序段完成子程序的調(diào)用和返回,跳轉(zhuǎn)指令BL采用了相對尋址方式:BL

NEXT;跳轉(zhuǎn)到子程序NEXT處執(zhí)行……NEXT……MOV

PC,LR

溫馨提示

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

評論

0/150

提交評論