8. System registers

ARMv8-A相关历史文章:

  • 1. Fundamentals of ARMv8-A
  • 2. Execute states
  • 3. Changing Exception Levels
  • 4. Changing Execution state
  • 5. Registers
  • 6. Processor state
  • 7. The Saved Process Status Register

在AArch64中,系统配置是通过使用MSR/MRS来操作系统寄存器来完成。而在ARMv7-A中,系统寄存器是通过协处理器(CP15)的操作来完成。
寄存器的名字标识了能被访问的最低Exception Level,比如:

  • TTBR0_EL1,能被EL1、EL2、EL3访问;
  • TTBR0_EL2,能被EL2、EL3访问;

寄存器名字后缀_ELn表明在不同的Exception Level有单独的副本,很少的系统寄存器能被EL0访问,CTR_EL0(Cache Type Register)就是其中的一个例子。
访问一个系统寄存器通常以下边这种形式:

MRS  X0,  TTBR0_EL1        // Move TTBR0_EL1 into X0
MSR  TTBR0_EL1,  X0        // Move X0 inot TTBR0_EL1

之前版本的ARM体系结构中 ,使用协处理器来进行系统配置,但是在AArch64中不支持协处理器。
以下的图片将展示不同Exception Level的系统寄存器:


8. System registers_第1张图片

8. System registers_第2张图片

8. System registers_第3张图片

8. System registers_第4张图片

你可能感兴趣的:(8. System registers)