兩種工作狀態
1、ARM狀態:32位,ARM狀態執行字對齊的32位ARM指令。
2、Thumb狀態,16位,執行半字對齊的16位指令。
3、用Bx Rn指令來進行兩種狀態的切換:
其中Bx是跳轉指令,而Rn是寄存器(1個字,32位),如果Rn的位0為1,則進入Thumb狀態;如果Rn的位為0,這進入ARM狀態。(原 因:ARM指令的后兩位始終為0,沒有用,而Thumb指令的后一位始終為0,沒有用,因此采用位0來表示ARM指令與Thumb指令的切換標志位。)
注:1、ARM和Thumb兩種狀態之間的切換不影響處理器的工作模式和寄存器的內容。
2、ARM處理器在處理異常時,不管處理器處於什么狀態,則都將切換到ARM狀態。(**********)
另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令
S3C2440.S啟動代碼中根本就沒用Thumb指令