基于ARM9:Thumb指令系统和ARM指令系统
扫描二维码
随时随地手机看文章
1.首先说说是什么?
是指令集。
是ARM体系结构为了兼容数据总线宽度为16位的应用系统而产生的;
是ARM指令集的自指令集,每个Thumb指令在ARM指令集中都有对应的指令;
2.分析Thumb指令和ARM指令时间效率和空间效率关系如下:
–Thumd代码所需的存储空间约为ARM代码的60%~70%
–Thumb代码使用的指令数要比ARM代码多约30%~40%;
使用32位存储器,ARM代码比Thumb代码快约40%
使用16位存储器,Thumb代码比ARM指令快约40%~50%
与ARM代码相比较,使用Thumb代码,存储器的功耗会降低约30%
在程序程序设计时,若对系统性能要求比较高,则要使用ARM代码;若多成本和功耗要求较高,则使用Thumb代码;但是要ARM指令和Thumb指令混合使用,则效果最好,各自发挥优势;
3.Thumb状态下的特点:
(1)不能直接访问多有的寄存器,可以访问R0~R7,寄存器R8~R12只能通过MOV,ADD或CMP指令来访问;CMP指令和所有操作R0~R7的数据处理指令都会影响CPSR中的条件标志位;
(2)不能直接访问CPSR 和SPSR,必须先切换到ARM状态下,再使用MSR和MRS来实现。
(3)没有协处理器指令,也要必须先切换到ARM状态下;