ARM 的指令結(jié)構(gòu)和寄存器結(jié)構(gòu)
ARM 微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集: ARM 指令集和 Thumb 指令集。其中,ARM 指令為 32 位的長度, Thumb 指令為 16 位長度。 Thumb 指令集為 ARM 指令集的功能子集,但與等價的 ARM 代碼相比較,可節(jié)省 30 %~ 40 %以上的存儲空間,同時具備 32 位代碼的所有優(yōu)點
ARM 處理器共有 37 個寄存器,被分為若干個組( BANK ),這些寄存器包括:
- 31 個通用寄存器,包括程序計數(shù)器( PC 指針),均為 32 位的寄存器。
- 6 個狀態(tài)寄存器,用以標識 CPU 的工作狀態(tài)及程序的運行狀態(tài),均為 32 位,目前只使用了其中的一部分。
同時, ARM 處理器又有 7 種不同的處理器模式,在每一種處理器模式下均有一組相應的寄存器與之對應。即在任意一種處理器模式下,可訪問的寄存器包括 15 個通用寄存器( R0 ~ R14 )、一至二個狀態(tài)寄存器和程序計數(shù)器。在所有的寄存器中,有些是在 7 種處理器模式下共用的同一個物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。