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