閱碼場第5期:ARM架構(gòu)與調(diào)試調(diào)優(yōu)
Thumb2指令的分支結(jié)構(gòu)
csel這樣的指令需要32位的長度才放得下.
Thumb2本著能省則省的原則,改用16位的條件mov指令來實(shí)現(xiàn),可以節(jié)省2個(gè)字節(jié)指令空間
Thumb指令的分支結(jié)構(gòu)
Thumb指令沒有帶條件的mov操作,更不可能有csel這樣復(fù)雜的指令了。
那也沒問題,返璞歸真,我們直接跳轉(zhuǎn)就是了唄?
bge.n,是說大于或等于,也就是不小于的時(shí)候直接跳到12aa,就是bx lr返回這條指令上去。
adds r0, r1, #0其實(shí)也可以翻譯成movs r0,r1。前面我們講過,movs r0,r1其實(shí)是adds r0, r1, #0的別名。本質(zhì)上是一回事。
標(biāo)簽: