ARM指令和Thumb指令區別

2022-04-07 05:24:45 字數 1146 閱讀 5979

thumb指令集

thumb

指令可以看做是arm指令壓縮形式的子集,是針對**密度【

1】的問題而提出的,它具有16為的**密度。thumb不是乙個完整的體系結構,不能指望處理程式只執行thumb指令而不支援arm指令集。因此,thumb指令只需要支援通用功能,必要時,可借助完善的arm指令集,例如:所有異常自動進入arm狀態。

在編寫thumb指令時,先要使用偽指令code16宣告,而且在arm指令中要使用bx指令跳轉到thumb指令,以切換處理器狀態。編寫arm指令時,可使用偽指令code32宣告。

【1】.**密度:單位儲存空間中包含的指令的個數。例如

arm指令是32位的,而thumb指令時16位的,如果在1k的儲存空間中,可以放32條arm指令,就可以放64條thumb指令,因此在存放thunb指令時,**密度高。

thumb指令集與arm指令集的區別

thumb指令集沒有協處理器指令、訊號量指令以及訪問cpsr或spsr的指令,沒有乘加指令及64位乘法指令等,且指令的第二運算元受到限制;除了跳轉指令b有條件執行功能外,其他指令均為無條件執行;大多數thumb資料處理指令採用2位址格式。thumb指令集與arm指令集的區別一般有如下幾點:

ø跳轉指令

程式相對轉移,特別是條件跳轉與arm**下的跳轉相比,在範圍上有更多的限制,轉向子程式是無條件的轉移。

ø資料處理指令

資料處理指令是對通用暫存器進行操作,在大多數情況下,操作的結果須放入其中乙個運算元暫存器中,而不是第三個暫存器中。

資料處理操作比arm狀態的更少,訪問暫存器r8—r15受到一定限制。

(除mov和add指令訪問暫存器r8—r15外,其他資料處理指令總是更新cpsr中alu狀態標誌)

訪問暫存器r8—r15的thumb資料處理指令不能更新cpsr中的alu狀態標誌

ø單暫存器載入和儲存指令

在thumb狀態下,單暫存器載入和儲存指令只能訪問暫存器r0—r7

ø批量暫存器載入和儲存指令

ldm和stm指令可以將任何範圍為r0——r7的暫存器子集載入或儲存

ARM指令和THUMB指令的區別

arm處理器的工作狀態 在arm的體系結構中,可以工作在三種不同的狀態,一是arm狀態,二是thumb狀態及thumb 2狀態,三是除錯狀態。嵌入式系統開發與應用教程 第2版 上介紹說 有兩種狀態arm狀態和thumb狀態,當時初學甚為不解,現在一知半解時再看忽然想到了顯示中的例子 arm核就好比乙...

thumb指令和arm指令

參考 一 為什麼乙個晶元需要thumb和arm兩套指令集 許多複雜的功能在複雜指令集 cisc 處理器上執行只需要單一的一條指令,即可,雖然可能有點慢,在精簡指令集處理器上可能需要多條指令,所以在精簡指令集 risc cpu上為了減少額外的指令對記憶體的消耗,考慮引入thumb指令集到處理器。現在最...

ARM指令與thumb 指令

1 thumb指令集概述 為相容資料匯流排寬度為16位的應用系統,arm體系結構除了支援執行效率很高的32位arm指令集以外,同時支援16位的thumb指令集。thumb指令集是arm指令集的乙個子集,是針對 密度問題而提出的,它具有16位的 寬度。與等價的32位 相比較,thumb指令集在保留32...