ARM处理器寄存器
++++++++++++++++++++++++++++++++++++++++++
?????? 本文系本站原創(chuàng),歡迎轉(zhuǎn)載! 轉(zhuǎn)載請注明出處:
??? http://blog.csdn.net/mr_raptor/article/details/6556163
++++++++++++++++++++++++++++++++++++++++++++++++
?
????????? 處理器不同模式下寄存器
CPU的模式不同,在其對應(yīng)模式下可以使用的寄存器也不相同,如下表所示:
其中R0~R7在所有模式下都可以使用的共有寄存器,R8~R12是快速中斷模式下私有的寄存器,其它模式下不能使用,之所以叫其快速中斷,是因為快速中斷模式下,這幾個私有寄存器里數(shù)據(jù)在模式切換時可以不用入棧保存。
除了用戶模式和系統(tǒng)模式共用一組R13,R14,其余每種模式都私有自己的R13,R14,因為在每種模式下都有自己的棧空間用于執(zhí)行程序,在執(zhí)行程序過程中還要保存返回地址,這樣可以保證在進入不同模式時,當前模式下??臻g不被破壞。比如:網(wǎng)卡因為數(shù)據(jù)到達,產(chǎn)生了中斷進入中斷模式,在中斷模式下有自己的中斷處理例程(ISR),ISR在執(zhí)行時要用到棧空間,因此要使用R13,R14。中斷處理完成后,返回用戶模式下,要繼續(xù)執(zhí)行被網(wǎng)卡中斷信號中斷的執(zhí)行程序。
用戶模式和系統(tǒng)模式為什么要共用一組R13,R14呢?這是因為,在特權(quán)模式下可以自由切換工作模式,但是如果切換到用戶模式下,就不能再切換到特權(quán)模式了,這是CPU為操作系統(tǒng)提供的保護機制,但是有的時候就需要切換到用戶模式下去使用其R13,R14寄存器,比如當操作系統(tǒng)的進程進行上下文切換時,如果用戶模式和系統(tǒng)模式共用一組寄存器,那么可以切換到系統(tǒng)模式下(系統(tǒng)模式是特權(quán)模式)進行操作。
所有R15和CPU同時只能處理一條指令,在取指時,有一個CPSR表示當前<FONT face=""">CPU的狀態(tài)即可。
?
?
總結(jié)
- 上一篇: ARM处理器中“8位位图”
- 下一篇: ADS错误(Fatal)L6002U解决