0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Thumb指令、Thumb-2指令、Thumb-2EE 指令區(qū)別是什么

米爾科技 ? 作者:米爾科技 ? 2019-10-23 09:44 ? 次閱讀

概念

Thumb 指令

為以 Thumb 狀態(tài)運(yùn)行的、基于 ARM 體系結(jié)構(gòu)的處理器的操作進(jìn)行編碼的一個(gè)半字或兩個(gè)半字。 Thumb 指令必須為半字對(duì)齊。

Thumb 狀態(tài)

執(zhí)行 Thumb 指令的處理器工作在 Thumb 狀態(tài)。 當(dāng)直接通過(guò) BX、BLX 等指令完成時(shí),處理器可切換到 ARM 狀態(tài)(以識(shí)別 ARM 指令)。

Thumb-2 指令

Thumb-2 是 Thumb 指令集的一項(xiàng)主要增強(qiáng)功能,并且由 ARMv6T2 和 ARMv7M體系結(jié)構(gòu)定義。 Thumb-2 提供了幾乎與 ARM 指令集完全一樣的功能。 它兼有16 位和 32 位指令,并可檢索與 ARM 類(lèi)似的性能,但其代碼密度與 Thumb 代碼類(lèi)似。
Thumb-2EE 指令

Thumb-2 執(zhí)行環(huán)境 (Thumb-2EE) 由 ARMv7 體系結(jié)構(gòu)定義。 Thumb-2EE 指令集基于 Thumb-2,前者進(jìn)行了一些更改和添加,使得動(dòng)態(tài)生成的代碼具有更好的目標(biāo),也就是說(shuō),就在執(zhí)行之前或在執(zhí)行過(guò)程中即可在該設(shè)備上編譯代碼。
ThumbEE 狀態(tài)

執(zhí)行 Thumb-2EE 指令的處理器正在以 ThumbEE 狀態(tài)運(yùn)行。 在此狀態(tài)下,該指令集幾乎與 Thumb 指令集相同。 不過(guò),有些指令已經(jīng)修改了行為,有些原有的指令已不再提供,另外還新添了一些指令。

說(shuō)明

在ARM體系結(jié)構(gòu)中,ARM指令集中的指令是32位的指令,其執(zhí)行效率非常高。

對(duì)于存儲(chǔ)系統(tǒng)數(shù)據(jù)總線為16位的應(yīng)用系統(tǒng),ARM體系提供了Thumb指令集。

Thumb指令集是對(duì)ARM指令集的一個(gè)子集重新編碼得到的,指令長(zhǎng)度為16位。

通常在處理器執(zhí)行ARM程式時(shí),稱處理器處于ARM狀態(tài);當(dāng)處理器執(zhí)行Thumb程式時(shí),稱處理器處于Thumb狀態(tài)。

Thumb指令集并沒(méi)有改動(dòng)ARM體系地層的程式設(shè)計(jì)模型,只是在該模型上加上了一些限制條件。

Thumb指令集中的數(shù)據(jù)處理指令的操作數(shù)仍然為32位,指令尋址地址也是32位的。

使用

通常,Thumb程式比ARM程式更加緊湊,而且對(duì)于內(nèi)存為8位或16位的系統(tǒng),使用Thumb程式效率更高。不過(guò),在下面一些場(chǎng)合下,程式必須運(yùn)行在ARM狀態(tài),這時(shí)就需要混合使用ARM和Thumb程式。

(1)強(qiáng)調(diào)速度的場(chǎng)合,應(yīng)該使用ARM程式;
(2)有些功能只能由ARM程式完成。如:使用或禁止異常中斷;
(3)當(dāng)處理器進(jìn)入異常中斷處理程式時(shí),程式狀態(tài)轉(zhuǎn)換到ARM狀態(tài),即在異常中斷處理程式入口的一些指令是ARM指令,然后根據(jù)需要程式能轉(zhuǎn)換到Thumb狀態(tài),在異常中斷程式返回前,程式再轉(zhuǎn)換到ARM狀態(tài)。
(4)ARM處理器總是從ARM狀態(tài)開(kāi)始執(zhí)行。因而,如果要在調(diào)試器中運(yùn)行Thumb程式,必須為該Thumb程式添加一個(gè)ARM程式頭,然后再轉(zhuǎn)換到Thumb狀態(tài),執(zhí)行Thumb程式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35344
  • 米爾科技
    +關(guān)注

    關(guān)注

    5

    文章

    227

    瀏覽量

    20970
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM和Thumb-2指令

    ARM和Thumb-2指令
    發(fā)表于 10-26 21:31

    ARM Thumb Thumb-2 Thumb-2EE指令區(qū)別比較

    。 它兼有16 位和 32 位指令,并可檢索與 ARM 類(lèi)似的性能,但其代碼密度與 Thumb 代碼類(lèi)似。Thumb-2EE 指令 Thumb-2
    發(fā)表于 10-13 10:21

    ARM指令Thumb指令有哪些區(qū)別

    ARM處理器有哪幾種工作狀態(tài)?ARM指令Thumb指令有哪些區(qū)別?
    發(fā)表于 12-24 07:36

    ARM狀態(tài)是什么?Thumb狀態(tài)又是什么

    3,thumb-2狀態(tài)這個(gè)狀態(tài)是ARM7版本的ARM處理器所具有的新的狀態(tài),新的thumb-2內(nèi)核技術(shù)兼有16位及32位指令,實(shí)現(xiàn)了更高的性能,更有效的功耗及更少地占用內(nèi)存。總的來(lái)說(shuō),感覺(jué)這個(gè)狀態(tài)除了
    發(fā)表于 04-29 09:16

    Thumb?-2參考手冊(cè)

    本手冊(cè)的目的是描述Thumb?-2,它的指令集架構(gòu)(ISA),以及變化 它引入了程序員的模型。本手冊(cè)還描述了ARM?ISA的擴(kuò)展 同時(shí)介紹。Thumb-2是ARM中描述的ARMv6
    發(fā)表于 08-02 07:34

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

    ARM和Thumb-2指令集快速參考卡,有需要的下來(lái)看看。
    發(fā)表于 01-12 18:07 ?21次下載

    如何使用Thumb-2改善代碼密度和性能

    如何使用Thumb-2改善代碼密度和性能。
    發(fā)表于 01-12 18:07 ?9次下載

    Thumb指令集之Thumb指令應(yīng)用

    11.9 Thumb指令應(yīng)用 11.9.1 Thumb的實(shí)現(xiàn) 對(duì)3級(jí)流水線的ARM處理器來(lái)說(shuō),做相對(duì)較小的改動(dòng)就可以實(shí)現(xiàn)Thumb指令集(5
    發(fā)表于 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>應(yīng)用

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

    11.10 ARM和Thumb的混合編程 11.10.1 互交工作基礎(chǔ) Thumb以其較高的代碼密度和在窄存儲(chǔ)器上的性能,使得它在很多系統(tǒng)中得到廣泛應(yīng)用。但在很多情況下,還是不得不使用ARM指令
    發(fā)表于 10-19 09:34 ?1次下載

    Thumb指令的特點(diǎn)及實(shí)現(xiàn)

    在ARM體系結(jié)構(gòu)中,ARM指令集中的指令是32位指令,其執(zhí)行效率很高。對(duì)于存儲(chǔ)系統(tǒng)數(shù)據(jù)總線為16位的應(yīng)用系統(tǒng),ARM體系提供了Thumb指令
    發(fā)表于 10-19 10:01 ?0次下載

    Thumb指令集之Thumb編程模型

    所有的Thumb指令都是16位的。它們都是ARM指令重新編碼得到的,所以繼承了ARM指令集的許多特點(diǎn)。 ① 有數(shù)據(jù)處理、數(shù)據(jù)傳送和流控制的指令
    發(fā)表于 10-19 10:02 ?0次下載

    Thumb指令集之Thumb跳轉(zhuǎn)指令

    Thumb指令集中的跳轉(zhuǎn)指令分以下6種類(lèi)型。 ① 無(wú)條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為2KB。 ② 條件跳轉(zhuǎn),其跳轉(zhuǎn)空間為256B。 ③ 帶返回的跳轉(zhuǎn)指令
    發(fā)表于 10-19 10:04 ?1次下載
    <b class='flag-5'>Thumb</b><b class='flag-5'>指令</b>集之<b class='flag-5'>Thumb</b>跳轉(zhuǎn)<b class='flag-5'>指令</b>

    Thumb數(shù)據(jù)處理指令

    Thumb數(shù)據(jù)處理指令 數(shù)據(jù)處理指令那些操作寄存器中數(shù)據(jù)的指令。Thumb
    發(fā)表于 10-19 10:04 ?0次下載

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

    ARM和Thumb-2指令集快速參考卡
    發(fā)表于 10-30 09:13 ?21次下載
    ARM和<b class='flag-5'>Thumb-2</b>的<b class='flag-5'>指令</b>集快速參考卡

    thumb指令集是什么_thumb指令集與arm指令集的區(qū)別

    thumb指令集是arm指令集的一個(gè)子集,是針對(duì)代碼密度問(wèn)題而提出的,它具有16位的代碼寬度。與等價(jià)的32位代碼相比較,thumb指令集在保
    發(fā)表于 11-03 17:34 ?1.8w次閱讀
    <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'>區(qū)別</b>