基于ARM9:Thumb指令系統和ARM指令系統
1.首先說說是什么?
是指令集。
是ARM體系結構為了兼容數據總線寬度為16位的應用系統而產生的;
是ARM指令集的自指令集,每個Thumb指令在ARM指令集中都有對應的指令;
2.分析Thumb指令和ARM指令時間效率和空間效率關系如下:
–Thumd代碼所需的存儲空間約為ARM代碼的60%~70%
–Thumb代碼使用的指令數要比ARM代碼多約30%~40%;
使用32位存儲器,ARM代碼比Thumb代碼快約40%
使用16位存儲器,Thumb代碼比ARM指令快約40%~50%
與ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30%
在程序程序設計時,若對系統性能要求比較高,則要使用ARM代碼;若多成本和功耗要求較高,則使用Thumb代碼;但是要ARM指令和Thumb指令混合使用,則效果最好,各自發(fā)揮優(yōu)勢;
3.Thumb狀態(tài)下的特點:
(1)不能直接訪問多有的寄存器,可以訪問R0~R7,寄存器R8~R12只能通過MOV,ADD或CMP指令來訪問;CMP指令和所有操作R0~R7的數據處理指令都會影響CPSR中的條件標志位;
(2)不能直接訪問CPSR 和SPSR,必須先切換到ARM狀態(tài)下,再使用MSR和MRS來實現。
(3)沒有協處理器指令,也要必須先切換到ARM狀態(tài)下;