thumb 点击:2049 | 回复:0



蓝海儿

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 14回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2006年3月21日
发表于:2006-04-18 16:06:00
楼主
thumb指令集介绍 

Thumb指令可以看作ARM指令压缩形式的子集,是针对代码密度问题而提出的,它具有16位的代码问题。Thumb不是一个完整的体系结构,不能指望处理只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能。
thumb没有协处理器指令,信号量指令,访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令,
且指令的第二操作数受到限制,除了跳转指令B有条件执行功能外,其他指令均为无条件执行。
Thumb 与arm 指令的区别:
1.跳转指令:
   条件跳转在范围上有更多的限制
2.数据处理指令
  对通用寄存器进行操作,操作结果须放入其中一个操作数寄存器
3.单寄存器加载和存储指令
  thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7
4.批量寄存器加载和存储指令
  LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储
  PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈,除R0~R7外,PUSH
  指令还可以存储链接寄存器R14,并且POP指令可以加载程序指令PC

  Thumb VS  arm
1.更好的代码密度
2.在执行外部存储器时,Thumb代码比ARM代码省40%的功耗
3.当性能是设计考虑重点时,选arm指令集和32bit的memory
4.当功耗是设计考虑重点时,选Thumb令集和16bit的memory


热门招聘
相关主题

官方公众号

智造工程师