(精)第3章 ARM9指令系统.ppt

3.2.7 ARM 软件中断指令 指令示例: SWI 0x02 ;实现中断,指明调用2号功能段。 执行SWI指令,软件中断进入的是管理模式,中断后会改变程序状态寄存器中的相关位。中断后ARM处理器把0给PC,并把中断处地址保存在LR中,同时把CPSR保存在SPSR中。 3.3 Thumb指令集 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。 Thumb指令集是ARM指令集的一个子集,允许指令编码为16位的长度。 与等价的32位代码相比较,Thumb指令集在保留32代码优势的同时,大大的节省了系统的存储空间。 3.3 Thumb指令集 Thumb指令集与ARM指令集在以下几个方面有区别: 跳转指令。条件跳转在范围上有更多的限制,转向子程序只具有无条件转移。 数据处理指令。对通用寄存器进行操作,操作结果需放入其中一个操作数寄存器,而不是第三个寄存器。 单寄存器加载和存储指令。Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。 批量寄存器加载和存储指令。LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储,PUSH和POP指令使用堆栈指针R13作为基址实现满递减堆栈,除R0~R7外,PUSH指令还可以存储链接寄存

文档评论(0)

1亿VIP精品文档

相关文档