ARM架构与体系学习(三)——ARM处理器状态
时间:11-21
来源:互联网
点击:
ARM7有两套指令系统,分别为ARM指令集和Thumb指令集。
ARM指令集为32位长,具有最完整的功能;Thumb指令集为16位长度,能实现ARM指令集的大部分功能。
Thumb指令集具有极高的代码密度(平均缩减30%的代码量)。
ARM处理器有两个处理器状态与这2套指令集分别对应。
以“当前程序状态寄存器CPSR”中的控制位T反映处理器正在操作的状态,即哪种指令集正在执行。T=0时,处理器处于ARM状态,执行ARM指令。T=1时,处理器处于Thumb状态,执行Thumb指令。其中处理器在系统上电时默认为ARM状态。
无论处理器处于何种状态,ARM指令集与Thumb指令集不同同时混合使用。
BX指令可以实现将ARM内核的操作状态在ARM和Thumb之间进行切换。
PS:BX用法。
BX:带状态切换的跳转指令,跳转到Rm指定的地址执行程序,若Rm的位[0]为1,则跳转时自动将CPSR的标志T置位,即把目标地址的代码解释为Thumb状态代码;若Rm的位[0]为0,则跳转时自动将CPSR中的标志T复位,即把目标地址的代码解释为ARM代码,指令格式如下,
BX{cond} Rm
为了让用户更好地控制代码量,才会设计了这两套指令系统。
ARM架构体系学习处理器状 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)