感謝俊翔的補充,這就是所謂的 banked register,可參考以下:
ARM registers
http://www.keil.com/support/man/docs/armasm/armasm_CEGIBCCG.htm
"The banked registers give rapid context switching for dealing with
processor exceptions and privileged operations.
The additional registers in ARM processors, with the exception of
ARMv6-M and ARMv7-M, are:
2 supervisor mode registers for banked SP and LR
2 abort mode registers for banked SP and LR
2 undefined mode registers for banked SP and LR
2 interrupt mode registers for banked SP and LR
7 FIQ mode registers for banked R8-R12, SP and LR
2 monitor mode registers for banked SP and LR
6 Saved Program Status Register (SPSRs), one for each exception mode."
Cheers,
-jserv
在 2013年4月24日下午3:47, <
feat...@gmail.com> 寫道:
>
> 昨天在同學demo的時候 jserv有問到register備份的問題
>
> 我在wiki找到了下圖 我猜可能是因為有些mode有專屬自己的register
>
> 在mode切換的時候,這些專屬的register就自己切去對應mode的值
>
> 就不用另外備份這register的值
>
> 不過我也不清楚v6或是不同版本間的設計是不是都這樣
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> from
http://en.wikipedia.org/wiki/ARM_architecture
>
> --
> 您已訂閱「Google 網上論壇」的「embedded2013」群組,因此我們特別傳送這封郵件通知您。
> 如要取消訂閱這個群組並停止接收來自這個群組的郵件,請傳送電子郵件到
embedded2013...@googlegroups.com。
> 如需更多選項,請前往:
https://groups.google.com/groups/opt_out。
>
>