iOS逆向004 循環(huán)&選擇

cmp(Compare)比較指令

CMP 把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行比較。但不存儲結(jié)果,只是正確的更改標志。
???一般CMP做完判斷后會進行跳轉(zhuǎn),后面通常會跟上B指令!

1、BL 標號:跳轉(zhuǎn)到標號處執(zhí)行
2、B.GT 標號:比較結(jié)果是大于(greater than),執(zhí)行標號,否則不跳轉(zhuǎn)
3、B.GE 標號:比較結(jié)果是大于等于(greater than or equal to),執(zhí)行標號,否則不跳轉(zhuǎn)
4、B.EQ 標號:比較結(jié)果是等于,執(zhí)行標號,否則不跳轉(zhuǎn)
5、B.HI 標號:比較結(jié)果是無符號大于,執(zhí)行標號,否則不跳轉(zhuǎn)

Switch

1、假設(shè)switch語句的分支比較少的時候(例如3,少于4的時候沒有意義)沒有必要使用此結(jié)構(gòu),相當于if。
2、各個分支常量的差值較大的時候,編譯器會在效率還是內(nèi)存進行取舍,這個時候編譯器還是會編譯成類似于if,else的結(jié)構(gòu)。
3、在分支比較多的時候:在編譯的時候會生成一個表(跳轉(zhuǎn)表每個地址四個字節(jié))。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容