ARM指令集Thumb指令集Thumb-2指令集

Posted 流水灯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM指令集Thumb指令集Thumb-2指令集相关的知识,希望对你有一定的参考价值。

MCU使用什么指令集主要由内核决定的,比如Cortex-M3使用的是Thumb-2指令集

 

 

ARM指令集:

编代码全部是 32bits 的,每条指令能承载更多的信息,因此使用最少的指令完成功能, 所以在相同频率下运行速度也是最快的, 但也因为每条指令是32bits 的而占用了最多的程序空间。

 

Thumb指令集:

编代码全部是 16bits 的,每条指令所能承载的信息少,因此它需要使用更多的指令才能完成功能, 因此运行速度慢, 但它也占用了最少的程序空间

 

Thumb-2指令集:
在前面两者之间取了一个平衡, 兼有二者的优势, 当一个 操作可以使用一条 32bits指令完成时就使用 32bits 的指令, 加快运行速度, 而当一次操作只需要一条16bits 指令完成时就使用16bits 的指令,节约存储空间。

 

以上是关于ARM指令集Thumb指令集Thumb-2指令集的主要内容,如果未能解决你的问题,请参考以下文章

Thumb指令集与ARM指令集的差别

ida Pro ARM指令集和Thumb指令集的切换

android ndk 编译的时候指令集的选取

Thumb指令集程序示例

为啥要使用thumb模式,与ARM相比较,Thumb代码的两大优势是啥?

ARM指令集——跳转指令