由于Thumb指令在某些特殊情況下可能比ARM指令更有效,所以它在很多方面得到了廣泛的應(yīng)用。但是Thumb知識(shí)ARM指令集的一個(gè)子集,它不能獨(dú)立組成一個(gè)應(yīng)用系統(tǒng),所以在很多情況下應(yīng)用程序需要二者的混合
ARM支持16個(gè)協(xié)處理器,在程序執(zhí)行過(guò)程中,每個(gè)協(xié)處理器忽略屬于ARM處理器和其他協(xié)處理器指令,當(dāng)一個(gè)協(xié)處理器硬件不能執(zhí)行屬于她的協(xié)處理器指令時(shí),就會(huì)產(chǎn)生一個(gè)未定義的異常中斷,在異常中斷處理程序中,可以通過(guò)軟
所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來(lái)尋找物理地址的方式。目前 ARM 指令系統(tǒng)支持如下幾種常見的尋址方式。立即尋址立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方式,操作數(shù)本身就在指令中給出,只要取
ARM微處理器的指令集是加載/存儲(chǔ)型的,也即指令集僅能處理寄存器中的數(shù)據(jù),而且處理結(jié)果都要放回寄存器中,而對(duì)系統(tǒng)存儲(chǔ)器的訪問(wèn)則需要通過(guò)專門的加載/存儲(chǔ)指令來(lái)完成。ARM微處理器的指令集可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處
ARM是RISC結(jié)構(gòu),數(shù)據(jù)從內(nèi)存到CPU之間的移動(dòng)只能通過(guò)L/S指令來(lái)完成,也就是ldr/str指令。比如想把數(shù)據(jù)從內(nèi)存中某處讀取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678這個(gè)地址中的值存放到r0中。而