0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Thumb指令、Thumb-2指令、Thumb-2EE 指令区别是什么

米尔科技 作者:米尔科技 2019-10-23 09:44 次阅读

概念

Thumb 指令

为以 Thumb 状态运行的、基于 ARM 体系结构的处理器的操作进行编码的一个半字或两个半字。 Thumb 指令必须为半字对齐。

Thumb 状态

执行 Thumb 指令的处理器工作在 Thumb 状态。 当直接通过 BX、BLX 等指令完成时,处理器可切换到 ARM 状态(以识别 ARM 指令)。

Thumb-2 指令

Thumb-2 是 Thumb 指令集的一项主要增强功能,并且由 ARMv6T2 和 ARMv7M体系结构定义。 Thumb-2 提供了几乎与 ARM 指令集完全一样的功能。 它兼有16 位和 32 位指令,并可检索与 ARM 类似的性能,但其代码密度与 Thumb 代码类似。
Thumb-2EE 指令

Thumb-2 执行环境 (Thumb-2EE) 由 ARMv7 体系结构定义。 Thumb-2EE 指令集基于 Thumb-2,前者进行了一些更改和添加,使得动态生成的代码具有更好的目标,也就是说,就在执行之前或在执行过程中即可在该设备上编译代码。
ThumbEE 状态

执行 Thumb-2EE 指令的处理器正在以 ThumbEE 状态运行。 在此状态下,该指令集几乎与 Thumb 指令集相同。 不过,有些指令已经修改了行为,有些原有的指令已不再提供,另外还新添了一些指令。

说明

在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率非常高。

对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。

Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。

通常在处理器执行ARM程式时,称处理器处于ARM状态;当处理器执行Thumb程式时,称处理器处于Thumb状态。

Thumb指令集并没有改动ARM体系地层的程式设计模型,只是在该模型上加上了一些限制条件。

Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。

使用

通常,Thumb程式比ARM程式更加紧凑,而且对于内存为8位或16位的系统,使用Thumb程式效率更高。不过,在下面一些场合下,程式必须运行在ARM状态,这时就需要混合使用ARM和Thumb程式。

(1)强调速度的场合,应该使用ARM程式;
(2)有些功能只能由ARM程式完成。如:使用或禁止异常中断;
(3)当处理器进入异常中断处理程式时,程式状态转换到ARM状态,即在异常中断处理程式入口的一些指令是ARM指令,然后根据需要程式能转换到Thumb状态,在异常中断程式返回前,程式再转换到ARM状态。
(4)ARM处理器总是从ARM状态开始执行。因而,如果要在调试器中运行Thumb程式,必须为该Thumb程式添加一个ARM程式头,然后再转换到Thumb状态,执行Thumb程式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34620
  • 米尔科技
    +关注

    关注

    5

    文章

    227

    浏览量

    20644
收藏 人收藏

    评论

    相关推荐

    ARM和Thumb-2指令

    ARM和Thumb-2指令
    发表于 10-26 21:31

    ARM Thumb Thumb-2 Thumb-2EE指令区别比较

    。 它兼有16 位和 32 位指令,并可检索与 ARM 类似的性能,但其代码密度与 Thumb 代码类似。Thumb-2EE 指令 Thumb-2
    发表于 10-13 10:21

    ARM指令Thumb指令有哪些区别

    ARM处理器有哪几种工作状态?ARM指令Thumb指令有哪些区别
    发表于 12-24 07:36

    ARM状态是什么?Thumb状态又是什么

    3,thumb-2状态这个状态是ARM7版本的ARM处理器所具有的新的状态,新的thumb-2内核技术兼有16位及32位指令,实现了更高的性能,更有效的功耗及更少地占用内存。总的来说,感觉这个状态除了
    发表于 04-29 09:16

    Thumb®-2参考手册

    本手册的目的是描述Thumb®-2,它的指令集架构(ISA),以及变化 它引入了程序员的模型。本手册还描述了ARM®ISA的扩展 同时介绍。Thumb-2是ARM中描述的ARMv6
    发表于 08-02 07:34

    ARM和Thumb-2指令集快速参考卡

    ARM和Thumb-2指令集快速参考卡,有需要的下来看看。
    发表于 01-12 18:07 20次下载

    Thumb指令集之Thumb指令应用

    11.9 Thumb指令应用 11.9.1 Thumb的实现 对3级流水线的ARM处理器来说,做相对较小的改动就可以实现Thumb指令集(5
    发表于 10-19 09:34 0次下载
    <b class='flag-5'>Thumb</b><b class='flag-5'>指令</b>集之<b class='flag-5'>Thumb</b><b class='flag-5'>指令</b>应用

    Thumb指令集之ARM和Thumb的混合编程

    11.10 ARM和Thumb的混合编程 11.10.1 互交工作基础 Thumb以其较高的代码密度和在窄存储器上的性能,使得它在很多系统中得到广泛应用。但在很多情况下,还是不得不使用ARM指令
    发表于 10-19 09:34 1次下载

    Thumb指令的特点及实现

    在ARM体系结构中,ARM指令集中的指令是32位指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令
    发表于 10-19 10:01 0次下载

    Thumb指令集之Thumb编程模型

    所有的Thumb指令都是16位的。它们都是ARM指令重新编码得到的,所以继承了ARM指令集的许多特点。 ① 有数据处理、数据传送和流控制的指令
    发表于 10-19 10:02 0次下载

    Thumb指令集之Thumb跳转指令

    Thumb指令集中的跳转指令分以下6种类型。 ① 无条件跳转,其跳转空间为2KB。 ② 条件跳转,其跳转空间为256B。 ③ 带返回的跳转指令,其跳转空间为4MB。 ④ 带状态切换的跳
    发表于 10-19 10:04 1次下载
    <b class='flag-5'>Thumb</b><b class='flag-5'>指令</b>集之<b class='flag-5'>Thumb</b>跳转<b class='flag-5'>指令</b>

    Thumb数据处理指令

    Thumb数据处理指令 数据处理指令是指那些操作寄存器中数据的指令Thumb指令集中的数据处理
    发表于 10-19 10:04 0次下载

    ARM和Thumb-2指令集快速参考卡

    ARM和Thumb-2指令集快速参考卡
    发表于 10-30 09:13 21次下载
    ARM和<b class='flag-5'>Thumb-2</b>的<b class='flag-5'>指令</b>集快速参考卡

    thumb指令集是什么_thumb指令集与arm指令集的区别

    thumb指令集是arm指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,thumb指令集在保
    发表于 11-03 17:34 1.7w次阅读
    <b class='flag-5'>thumb</b><b class='flag-5'>指令</b>集是什么_<b class='flag-5'>thumb</b><b class='flag-5'>指令</b>集与arm<b class='flag-5'>指令</b>集的<b class='flag-5'>区别</b>

    ARM架构及ARM指令Thumb指令集你了解多少?

    ARM架构及ARM指令集、Thumb指令集你了解多少?
    的头像 发表于 02-26 16:09 6660次阅读