8. System registers

ARMv8-A相关历史文章:

在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的系统寄存器:






©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容