ARM通用寄存器
發(fā)布時間:2008/12/22 0:00:00 訪問次數(shù):2403
通用寄存器包括r0~r15,可以分為三類:
。1)未分組寄存器r0~r7;
。2)分組寄存器r8~r14;
。3)程序計數(shù)器pc(r15)。
1.未分組寄存器r0~r7
在所有的運行模式下,未分組寄存器都指向同一個物理寄存器,它們未被系統(tǒng)用作特中數(shù)據(jù)的破壞。
2.分組寄存器r8~r14
對于分組寄存器,它們每一次所訪問的物理寄存器與處理器當前的運行模式有關(guān)。對于r8~r12來說,每個寄存器對應2個不同的物理寄存器,當使用fiq模式時,訪問寄存器rs__fiq~r12_fiq;當使用除πq模式以外的其他模式時,訪問寄存器rs_usr~r12_usr。
對于r13、r14來說,每個寄存器對應6個不同的物理寄存器,其中的一個是用戶模式與系統(tǒng)模式共用的,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區(qū)分不同的物理寄存器。
r13_<ode>
r14_<mode>
其中,mode為以下幾種模式之一:usr、fiq、trq、svc、abt、und。
寄存器r13在arm指令中常用作堆棧指針,用戶也可使用其他寄存器作為堆棧指針。而在thumb指令集中,某些指令強制性地要求使用r13作為堆棧指針。
由于處理器的每種運行模式均有自己獨立的物理寄存器r13,所以在用戶應用程序的初始化部分,一般都要初始化每種模式下的r13,使其指向該運行模式的?臻g。這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入r13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發(fā)生后程序的正常執(zhí)行。
r14也稱作子程序鏈接寄存器(subroutine link register)或鏈接寄存器lr(linkregister)。當執(zhí)行子程序調(diào)用指令(bl指令)時,r14中得到r15(程序計數(shù)器pc)的備份。其他情況下,r14用作通用寄存器。與之類似,當發(fā)生中斷或異常時,對應的分組寄存器r14_svc、r14 lrq、r14_fiq、r14_abt和r14_und用來保存r15的返回值。
寄存器r14常用在如下的情況:在每一種運行模式下,都可用r14保存子程序的返回地址,當用bi.或blx指令調(diào)用子程序時,將pc的當前值拷貝給r14,執(zhí)行完子程序后,又將r14的值拷貝回pc,即可完成子程序的調(diào)用返回ρ以上的描述可用指令完成。
首先執(zhí)行以下任意一條指令:
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
通用寄存器包括r0~r15,可以分為三類:
。1)未分組寄存器r0~r7;
。2)分組寄存器r8~r14;
。3)程序計數(shù)器pc(r15)。
1.未分組寄存器r0~r7
在所有的運行模式下,未分組寄存器都指向同一個物理寄存器,它們未被系統(tǒng)用作特中數(shù)據(jù)的破壞。
2.分組寄存器r8~r14
對于分組寄存器,它們每一次所訪問的物理寄存器與處理器當前的運行模式有關(guān)。對于r8~r12來說,每個寄存器對應2個不同的物理寄存器,當使用fiq模式時,訪問寄存器rs__fiq~r12_fiq;當使用除πq模式以外的其他模式時,訪問寄存器rs_usr~r12_usr。
對于r13、r14來說,每個寄存器對應6個不同的物理寄存器,其中的一個是用戶模式與系統(tǒng)模式共用的,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區(qū)分不同的物理寄存器。
r13_<ode>
r14_<mode>
其中,mode為以下幾種模式之一:usr、fiq、trq、svc、abt、und。
寄存器r13在arm指令中常用作堆棧指針,用戶也可使用其他寄存器作為堆棧指針。而在thumb指令集中,某些指令強制性地要求使用r13作為堆棧指針。
由于處理器的每種運行模式均有自己獨立的物理寄存器r13,所以在用戶應用程序的初始化部分,一般都要初始化每種模式下的r13,使其指向該運行模式的?臻g。這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入r13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發(fā)生后程序的正常執(zhí)行。
r14也稱作子程序鏈接寄存器(subroutine link register)或鏈接寄存器lr(linkregister)。當執(zhí)行子程序調(diào)用指令(bl指令)時,r14中得到r15(程序計數(shù)器pc)的備份。其他情況下,r14用作通用寄存器。與之類似,當發(fā)生中斷或異常時,對應的分組寄存器r14_svc、r14 lrq、r14_fiq、r14_abt和r14_und用來保存r15的返回值。
寄存器r14常用在如下的情況:在每一種運行模式下,都可用r14保存子程序的返回地址,當用bi.或blx指令調(diào)用子程序時,將pc的當前值拷貝給r14,執(zhí)行完子程序后,又將r14的值拷貝回pc,即可完成子程序的調(diào)用返回ρ以上的描述可用指令完成。
首先執(zhí)行以下任意一條指令:
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
上一篇:ARM程序狀態(tài)寄存器
熱門點擊
- ARM通用寄存器
- FIQ異常的描述
- Viterbi譯碼
- ARM程序狀態(tài)寄存器
- ARM時序
- ARM乘法指令
- Thumb狀態(tài)下的寄存器
- ARM異常的響應及返回
- ARM狀態(tài)寄存器訪問指令
- 常用自動控制系統(tǒng)設(shè)計的案例要求和應用對象
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點是“靈動”,F(xiàn)QPF12N60C那么... [詳細]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應用研究