单片机 > 单片机程序设计 > 详情

ARM架构与体系学习(三)——ARM处理器状态

发布时间:2020-08-27 发布时间:
|
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架构  体系学习  处理器状态

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二