冯诺依曼结构:
哈佛结构:
ARM处理器状态
设计了两套指令系统:ARM指令集和Thumb指令集。前者为32位(字)长度具有完整的功能,后者为16位(半字长)长度,能够实现ARM指令集大部分功能。
为什么会有Thumb状态:
从功能上,将Thumb指令集视作是ARM指令集的子集。但却具有极高的代码密度(平均缩减30%的代码量)。
也就是说,设计两套指令集是能够让用户更好地控制代码量,从而控制存储空间。
何时执行ARM指令集,何时执行Thumb?
ARM处理器中会有两个处理器状态与这两套指令集对应。当前程序状态寄存器CPSR中的控制位T反映处理器正在操作的状态,即哪种指令集正在执行。T=0处于ARM,执行ARM状态指令,否则执行Thumb指令。
ARM状态,处理器执行字方式的ARM指令,并且处理器上电后默认处于ARM状态。Thumb状态下,处理器执行半字方式的Thumb指令集。两种指令集绝对不能混合使用。
ARM状态的切换并不会影响处理器的模式或寄存器的内容。
网友评论