arm中的寄存器

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:02:51
我是ARM的初学者,ARM的寄存器在ARM状态下有18个可用,THUMB状态下有13个可用,那是不是后面的十几个寄存器都无法使用啊?

因为ARM有7种处理器模式,(用户usr、中断irq、快中断fiq、管理svc、中止abt、未定义und、系统sys),37个寄存器中是这样分的:
R0~R7是通用的,就是其中模式都可以用;
R8~R12分两组,就是有10个了,快中断模式用一组(R8_fiq~R12_fiq),其余的六种模式用一组(R8~R12);
R13、R14分六组,就是有12个,其中用户模式和系统模式共用一组(R13~R14),其余的5种模式各有一组【R13_irq~R14_irq】【R13_fiq~R14_fiq】【R13_svc~R14_svc】【R13_abt~R14_abt】【R13_und~R14_und】;
R15为七种模式共用;
程序状态寄存器:CPSR是共用的,SPSR也是分了组的,但是只有5个,因为在用户模式和系统模式下不需要SPSR。
所以ARM状态下每种模式是18个可用(用户模式和系统模式是17个)。

Thumb状态类推。因为Thumb状态下没有用到R8-R12寄存器。

我知道的就这些了。应该没错的。可以理解吗?嘿嘿