ARM狀態和Thumb狀態通俗理解

2021-07-28 19:54:39 字數 560 閱讀 1624

email:[email protected]

blog:kangear.blog.chinaunix.net

《嵌入式系統開發與應用教程(第2版)》上介紹說:有兩種狀態arm狀態和thumb狀態,當時初學甚為不解,現在一知半解時再看忽然想到了現實中的例子:

arm核就好比乙個高中學校,那種包含普通高中和職業高中的。普通高中就相當於arm狀態,職業高中就相當於thumb狀態,這樣還不能理解的話:可以認為 泡泡卡丁車 中普通模式和加速模式,,卡丁車加速要等到集氣管加滿,然後「ctrl」一下,就切換到了加速模式,氣放完了就又回來了,不管加速模式還是普通模式都是在跑,只是速度不一樣而已。

而arm狀態和thumb狀態可以直接通過某些指令直接切換,都是在執行程式,只不過指令長度不一樣而已。這個概念對初學者相當重要,因為當arm thumb是什麼還沒弄清楚,怎麼能理解兩種狀態呢?

他們之間的關係清楚了,這樣就可以深入了解arm狀態是什麼,thumb狀態是什麼了。

另外:arm的m系列主要用thumb指令,arm9和a系列主要用arm指令。

s3c2440.s啟動**中根本就沒用thumb指令。

ARM狀態和THUMB狀態

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

ARM指令狀態切換到Thumb指令狀態

注意上面的中的黃色箭頭是我按單步執行後,按了一下後,箭頭所在的位置,這時的r15的值是0x00000004,表示正在執行的指令的位址,當r15的值為0x00000000時,黃色箭頭你說在 呢,當然是在ldr那條指令那裡了,並且表示ldr指令並沒有執行。請大家再看,r0的值為什麼是0x0000000d...

ARM指令狀態切換到Thumb指令狀態

注意上面的中的黃色箭頭是我按單步執行後,按了一下後,箭頭所在的位置,這時的r15的值是0x00000004,表示正在執行的指令的位址,當r15的值為0x00000000時,黃色箭頭你說在 呢,當然是在ldr那條指令那裡了,並且表示ldr指令並沒有執行。請大家再看,r0的值為什麼是0x0000000d...