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
为了让用户更好地操控代码量,才会规划了这两套指令体系。