下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為Word版,下載可任意編輯ARM內(nèi)部寄存器 在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見(jiàn)的寄存器。 在不同的工作模式和處理器狀態(tài)下,程序員可以訪問(wèn)的寄存器也不盡相同. 全部的37個(gè)寄存器,分成兩大類:(1)31個(gè)通用32位寄存器;(2)6個(gè)狀態(tài)寄存器。 在匯編語(yǔ)言中寄存器R0R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特別用途,并且可用于任何使用通用寄存器的指令。 其中R0R7為未分組的寄存器,也就是說(shuō)對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的32位物理寄存器。 寄存器R8R14為分組寄存器。它們所對(duì)應(yīng)的物理寄存器取決于當(dāng)前的處理器模式,幾乎全部
2、允許使用通用寄存器的指令都允許使用分組寄存器 寄存器R8R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所 有寄存器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。 寄存器R13、R14分別有6個(gè)分組的物理寄存器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種特別模式。 寄存器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒(méi)有以特別方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。 R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個(gè)特別功能: 在每種模式下,模式自身的R14版本用于保存子程序返回地址; 當(dāng)發(fā)生特別
3、時(shí),將R14對(duì)應(yīng)的特別模式版本設(shè)置為特別返回地址(有些特別有一個(gè)小的固定偏移量)。 R14寄存器與子程序調(diào)用 操作流程: 1.程序A執(zhí)行過(guò)程中調(diào)用程序B; 2.程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BL Lable”指令的下一條指令所在地址存入R14; 3.程序B執(zhí)行最終,將R14寄存器的內(nèi)容放入PC,返回程序A; R14寄存器與特別發(fā)生 特別發(fā)生時(shí),程序要跳轉(zhuǎn)至特別服務(wù)程序,對(duì)返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)分在于有些特別有一個(gè)小常量的偏移。 R14寄存器留意要點(diǎn) 當(dāng)發(fā)生特別嵌套時(shí),這些特別之間可能會(huì)發(fā)生沖突。 例如:假如用戶在用戶模式下執(zhí)行程序時(shí)發(fā)生了IRQ
4、中斷,用戶模式寄存器不會(huì)被破壞。但是 假如允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時(shí),外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所掩蓋。 解決方法是確保R14的對(duì)應(yīng)版本在發(fā)生中斷嵌套時(shí)不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。 寄存器R15為程序計(jì)數(shù)器(PC),它指向正在取指的地址??梢哉J(rèn) 為它是一個(gè)通用寄存器,但是對(duì)于它的使用有很多與指令相關(guān)的限制或特別狀況。假如R15使用的 方式超出了這些限制,那么結(jié)果將是不行猜測(cè)的。 讀R15的限制 正常操作時(shí),從R15讀取的值是處理器正在取指的地址,即當(dāng)前正在執(zhí)
5、行指令的地址加上8個(gè)字節(jié)(兩條ARM指令的長(zhǎng)度)。由于ARM指令總是以字為單位,所以R15寄存器的最低兩位總是為0。 當(dāng)使用STR或STM指令保存R15時(shí),會(huì)有一個(gè)例外。這些指令可能將當(dāng)前指令地址加8字節(jié)或加12字節(jié)保存(將來(lái)可能還有其它數(shù)字)。偏移量是8還是12取決于詳細(xì)的ARM芯片,但是對(duì)于一個(gè)確定的芯片,這個(gè)值是一個(gè)常量。 所以最好避開(kāi)使用STR和STM指令來(lái)保存R15,假如很難做到,那么應(yīng)當(dāng)在程序中計(jì)算出該芯片的偏移量。 “寫R15的限制” 正常操作時(shí),寫入R15 的值被當(dāng)作一個(gè)指令地址,程序從這個(gè)地址處連續(xù)執(zhí)行(相當(dāng)于執(zhí)行一次無(wú)條件跳轉(zhuǎn))。 由于ARM指令以字節(jié)為邊界,因此寫入R15
6、的值最低兩位通常為0b00。詳細(xì)的規(guī)章取決于內(nèi)核結(jié)構(gòu)的版本: (1)在ARM結(jié)構(gòu)V3版及以下版本中,寫入R15的值的最低兩位被忽視,因此跳轉(zhuǎn)地址由指令的實(shí)際目標(biāo)地址(寫入R15的值)和0xFFFFFFFC相與得到; (2)在ARM結(jié)構(gòu)V4版及以上版本中,寫入R15的值的最低兩位為0,假如不是,結(jié)果將不行猜測(cè)。 寄存器CPSR為程序狀態(tài)寄存器,在特別模式中,另外一個(gè)寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問(wèn)。每種特別都有自己的SPSR,在進(jìn)入特別時(shí)它保存CPSR的當(dāng)前值,特別退出時(shí)可通過(guò)它恢復(fù)CPSR。具體描述參看3.8小節(jié)。 Thumb狀態(tài)寄存器 Thumb狀態(tài)寄存器集是ARM狀態(tài)集的
7、子集,程序員可以直接訪問(wèn)的寄存器為: (1)8個(gè)通用寄存器R0R7;(2)程序計(jì)數(shù)器(PC);(3)堆棧指針(SP);(4)鏈接寄 存器(LR);(5)有條件訪問(wèn)程序狀態(tài)寄存器(CPSR)。 在匯編語(yǔ)言中寄存器R0R7為保存數(shù)據(jù)或地址值的通用寄存器。對(duì)于任何處理器模式,它們中的每一個(gè)都對(duì)應(yīng)于相同的32為物理寄存器。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特別的用途,并且可用于任何使用通用寄存器的指令。 堆棧指針SP對(duì)應(yīng)ARM狀態(tài)的寄存器R13。每個(gè)特別模式都有其自身的SP分組版本,SP通常指向各特別模式所專用的堆棧。 留意:在發(fā)生特別時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。 鏈接寄存器LR對(duì)應(yīng)ARM狀態(tài)寄存器R14,在結(jié)構(gòu)上有兩個(gè)特別功能,詳見(jiàn)“ARM狀態(tài)下的鏈接寄存器LR”。 留意:在發(fā)生特別時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。 ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系 Thumb狀態(tài)寄存器與ARM狀態(tài)寄存器有如下的關(guān)系: (1)Thumb狀態(tài)R0R7與ARM狀態(tài)R0R7相同; (2)Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同; (3)Thumb狀態(tài)SP映射到ARM狀態(tài)R13; (4)Thumb狀態(tài)LR映射到ARM狀態(tài)R14; (5)Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。 下面
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管井房電纜改造合同
- 廣告導(dǎo)演聘用合同
- 合同標(biāo)準(zhǔn)質(zhì)量范文
- 犬耳螨的診斷與治療
- 2024正規(guī)廠房租賃合同書(shū)
- 煤礦安全規(guī)程
- 2024設(shè)備改造的合同范本
- 2024專賣店申請(qǐng)加盟合同模板
- 2024家庭裝修全包合同
- 專題06課文理解與填空-2022-2023學(xué)年四年級(jí)語(yǔ)文上冊(cè)期末復(fù)習(xí)知識(shí)點(diǎn)精講精練(部編版)
- 企業(yè)級(jí)SaaS軟件服務(wù)合同
- 【期中考后反思】《反躬自省,砥礪奮進(jìn)》-2022-2023學(xué)年初中主題班會(huì)課件
- 2019新教材人教版生物必修1教材課后習(xí)題答案
- 2024年中國(guó)白酒行業(yè)數(shù)字化轉(zhuǎn)型研究報(bào)告-36氪-202409
- 《學(xué)校主人公:3 校園廣播站》教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)滬科黔科版
- 外傷急救包扎技術(shù)說(shuō)課課件
- 人教版(2024新版)七年級(jí)上冊(cè)英語(yǔ)全冊(cè)語(yǔ)法知識(shí)點(diǎn)講義
- 全國(guó)青島版信息技術(shù)七年級(jí)下冊(cè)專題一第8課三、《高級(jí)統(tǒng)計(jì)-數(shù)據(jù)透視表》教學(xué)設(shè)計(jì)
- 內(nèi)分泌科品管圈成果匯報(bào)提高糖尿病患者健康教育知曉率
- 2024年秋季新人教版七年級(jí)數(shù)學(xué)上冊(cè)教學(xué)課件 第五章 一元一次方程 5.3實(shí)際問(wèn)題與一元一次方程(第4課時(shí))
- 清淡的晚餐(課件)六年級(jí)上冊(cè)勞動(dòng)北京版
評(píng)論
0/150
提交評(píng)論