arm指令和thumb指令的區別
1樓:櫻空釋小謝
arm指令是32位的, thumb 指令是16位的。
thumb 指令能完成arm指令大部分的功能此雀,使用 thumb 指令可以節約儲存空間,賀扒巨集提高效率。
arm指令與處理禪冊器32位的處理能力相適應,能發揮arm處理器全部的功能。
如果不是特殊需要不建議arm和thumb 指令混用。
2樓:段幹桂枝莫媚
thumb指令集與。
arm指令的區別一般有如下幾點:
跳轉指令。程式相對轉移,特別是條件跳轉與。
資料處理指令。
資料處理指令是對通用暫存器進行操作,在大多數情況下,操作的結果須放入其中乙個運算元暫存器中,而不寬配是第。
個暫存器中。資料處理操作比。
arm狀態的更少,訪問暫存器。
r8~r15
受到一定限制。除。mov和。
add指令訪問器。
r8~r15
外,其它資料處理指令總是更新。
cpsr中的。
alu狀態標誌。訪問暫存器。
r8~r15
的。thumb
資料處理指令不能更新。
cpsr中的。
alu狀態標誌。
單暫存器載入和儲存指令。
在。thumb
狀態下,單暫存器載入和儲存指令跡慶只能訪問暫存器。
r0~r7批量暫存器載入和儲存指令。ldm和。
stm指令可以將任何範圍為。
r0~r7的暫存器子集載入或儲存。
push和。
pop指令使用堆疊指令。
r13作為基址實現滿遞減堆疊。除。
r0~r7外,push
指令還可以儲存鏈結暫存器。
r14,並且。
pop指令可以載入程式指令pc
3樓:
arm32位虧明的彙編指令,t是16位的匯行毀編指令,t指令比arm指令功能小一些,但編出來的空間小一銷帶告些;
為什麼要使用thumb模式,與arm相比較,thumb**的兩大優勢是什麼?
4樓:mono教育
thumb模式是採集16位的編碼方式,這在有些場合下很有應用,相比32位模式,thumb雖然僅有16位,在**精簡的同時,效能上並沒有減少多少。
thumb指令集不是完整的指令集,它是arm指令集的子集。但是thumb指令具有更高的**密度,即佔用儲存空間小,僅為arm**規格的65%,但其效能卻下降的很少。所以,thumb指令集使arm處理器能應用到有限的儲存頻寬,並且,**密度要求很高的嵌入式系統中去。
5樓:芝麻無語
使arm使用更加靈活,完善了軟體中斷指令的功能和把一些未使用的指令空間捕捉未未定義指令。
6樓:繁仁尉緞
arm模式和thumb模式是指指令的長度不同。前者是32位的,後者是16位的,更高效一些,不過指令的使用功能也有限。
arm指令和thumb指令有什麼區別
7樓:用u戶名
thumb指令集與 arm 指令的區別一般有如下幾點:
資料處理指令。
資料處理指令是對通用暫存器進行操作,在大多數情況下,操作的結果須放入其中乙個運算元暫存器中,而不是第 3 個暫存器中。資料處理操作比 arm 狀態的更少,訪問暫存器 r8~r15 受到一定限制。除 mov 和 add 指令訪問器 r8~r15 外,其它資料處理指令總是更新 cpsr 中的 alu 狀態標誌。
訪問暫存器 r8~r15 的 thumb 資料處理指令不能更新 cpsr 中的 alu 狀態標誌。
單暫存器載入和儲存指令。
在 thumb 狀態下,單暫存器載入和儲存指令只能訪問暫存器 r0~r7
批量暫存器載入和儲存指令。
ldm 和 stm 指令可以將任何範圍為 r0~r7 的暫存器子集載入或儲存。 push 和 pop 指令使用堆疊指令 r13 作為基址實現滿遞減堆疊。除 r0~r7 外,push 指令還可以儲存鏈結暫存器 r14,並且 pop 指令可以載入程式指令pc
8樓:網友
回答thumb 指令可以看作是 arm 指令壓縮形式的子集,是針對**密度的問題而提出的,它具有 16 位的**密度但是它不如arm指令的效率高 .thumb 不是乙個完整的體系結構,不能指望處理只執行thumb 指令而不支援 arm 指令集。因此,thumb 指令只需要支援通用功能,必要。
因此,thumb 指令只需要支援通用功能,必要時可以藉助於完善的 arm 指令集,比如,所有異常自動進入 arm 狀態。在編寫 thumb 指令時,先要使用偽指令 code16 宣告,而且在 arm 指令中要使用 bx指令跳轉到 thumb 指令,以切換處理器狀態。編寫 arm 指令時,則可使用偽指令 code32宣告。
arm指令集和thumb-2指令集有什麼區別?
9樓:匿名使用者
thumb-2指令集是相容32位與16位指令的;arm指令集不相容,如需用到16位,得需要告訴編譯器,我要用16位的了。
10樓:
反駁我的話。thumb-2指令集是16位和32位共存的。之所以擴充32位指令是為了解決thumb指令集不能訪問協處理器,特權指令和特殊功能指令的侷限。放棄相容arm指令集也是因為如此。
11樓:匿名使用者
thumb是16/32位指令,arm是32位,二者不相容。
12樓:匿名使用者
兩者應該不相容 這是我的猜測 樓主 最好驗證一下 先頂乙個。
關於嵌入式arm與thumb指令的問題
13樓:匿名使用者
第二個問題一定對嗎?功耗不一定吧,個人覺得你不能用你自己的經歷就下定論說thumb的功耗一定會小。
arm指令集是32位的,所以運算元,位址都是32位的。當使用32位儲存器,一次讀取就讀出了一條指令或者資料。如果使用16位儲存器,需要讀取兩次。
當然32位的指令集在32位匯流排寬度的系統下會快。thumb指令集是16位的,照理說在32位系統下速度一樣。但是要考慮到的是,對於32位的加減法,32位指令集一次完成,16位指令集卻需要2次,更別提乘法,4次以上。
所以16位指令集計算32位資料會出現問題。
具體的應用的功耗,和所需要的計算,匯流排頻寬,編碼效率,指令集使用,編譯器優化都有關係。所以單說thumb的功耗一定低,肯定是錯的。如果說往往比較低,倒可信一點。
現在的儲存器一般還是16位的。
為什麼說arm指令集是乙個完善的指令集,而thumb指令集並不完善
14樓:網友
thumb指令集可以看作是arm指令壓縮形式的子集,是為減小**量而提出,以16bit為主。thumb指令只支援通用功能,一些必要其他的特殊功能,如mmu的呼叫等等,仍需要使用arm指令,所以說thumb指令集並不完善。
thumb是arm體系結構中一種16位的指令集。thumb指令集可以看作是arm指令壓縮形式的子集,它是為減小**量而提出,具有16bit的**密度。
thumb指令體系並不完整,只支援通用功能,必要時仍需要使用arm指令,如進入異常時。其指令的格式與使用方式與arm指令集類似,而且使用並不頻繁,thumb指令集作一般瞭解。
如何使用arm彙編指令實現結構化程式設計
arm彙編程式特點 l 所有運算處理都是發生通用暫存器 一般是r0 r14 的之中.所有儲存器空間 如c語言變數的本質就是一個儲存器空間上的幾個byte 的值的處理,都是要傳送到通用暫存器來完成.因此 中大量看到ldr,str指令來傳送值.l arm彙編語句中.當前語句很多時候要隱含的使用上一句的執...
在8086CPU中,取指令和執行指令的過程是什麼
直接mov al想要的資料,不需要他去讀io的資料多的空使用nop來 對齊 一般你這指令,下面還有判斷指令,不相等就跳轉之類的,改為nop空操作或強制跳轉jmp 沒提交就不能用request物件了。用js 把。寫個函式。然後 在下拉框onchange的時候呼叫。函式裡這樣取下拉框的值document...
Rcall指令與call的指令區別?
一般來說,rcall指令屬於rom空間的相對定址範疇,call屬於rom空間的直接定址範疇。call和rcall的區別 1 指令長度不同 2 指令執行所需機器週期不同 3 定址範圍不同。其他知識點普及 rom read only memory 的全名為唯讀記憶體,它相當於復pc機上的硬碟,用來儲存和...