编程语言及工具
thumb指令集是arm指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。thumb不是一个完整的体系结构,不能指望处理器只执行thumb指令集而不支持arm指令集。
thumb指令集分为:分支指令、数据传送指令、单寄存器加载和存储指令以及多寄存器加载和存储指令。thumb指令集没有协处理器指令、信号量(semaphore)指令以及访问cpsr或spsr的指令。
1、thumb指令继承了arm指令集的许多特点
thumb指令也是采用load/store结构,有数据处理、数据传送及流控制指令等。
2、thumb指令集丢弃了arm指令集一些特性
大多数thumb指令是无条件执行的(除了转移指令b),而所有arm指令都是条件执行的。许多thumb数据处理指令采用2地址格式,即目的寄存器与一个源寄存器相同,而大多数arm数据处理指令采用的是3地址格式(除了64位乘法指令外)。
3、thumb异常时表现的一些特点
所有异常都会使微处理器返回到arm模式状态,并在arm的编程模式中处理。由于arm微处理器字传送地址必须可被4整除(即字对准),半字传送地址必须可被2整除(即半字对准)。而thumb指令是2个字节长,而不是4个字节,所以,由thumb执行状态进入异常时其自然偏移与arm不同。
全部0条评论
快来发表一下你的评论吧 !