iOS逆向學習筆記 - 彙編(四) - 迴圈&選擇[cmp 比較指令]
004 迴圈&選擇
cmp(Compare)比較指令
CMP 把一個暫存器的內容和另一個暫存器的內容或立即數進行比較。但不儲存結果,只是正確的更改標誌。
一般CMP做完判斷後會進行跳轉,後面通常會跟上B指令!
- BL 標號:跳轉到標號處執行
- B.GT 標號:比較結果是大於(greater than),執行標號,否則不跳轉
- B.GE 標號:比較結果是大於等於(greater than or equal to),執行標號,否則不跳轉
- B.EQ 標號:比較結果是等於,執行標號,否則不跳轉
- B.HI 標號:比較結果是無符號大於,執行標號,否則不跳轉
Switch
1、假設switch語句的分支比較少的時候(例如3,少於4的時候沒有意義)沒有必要使用此結構,相當於if。
2、各個分支常量的差值較大的時候,編譯器會在效率還是記憶體進行取捨,這個時候編譯器還是會編譯成類似於if,else的結構。
3、在分支比較多的時候:在編譯的時候會生成一個表(跳轉表每個地址四個位元組)。
相關文章
- iOS逆向學習筆記 - 彙編(一) - 初識彙編iOS筆記
- 逆向學習筆記3——暫存器與彙編指令筆記
- Jack對分支迴圈語句偽指令反彙編前後的比較
- 彙編學習筆記之轉移指令筆記
- 學習筆記分享之彙編---2.彙編指令/語法筆記
- 逆向之彙編筆記筆記
- 彙編學習筆記筆記
- 「學習筆記」迴圈、列表筆記
- Python學習筆記-基礎篇(10)-選擇結構與迴圈結構Python筆記
- 彙編學習筆記07——BCD碼及調整指令筆記
- iOS逆向之旅(基礎篇) — 彙編(四) — 彙編下的函式iOS函式
- node事件迴圈學習筆記事件筆記
- 彙編基礎學習筆記筆記
- cmp是可選的自定義比較函式函式
- iOS逆向-彙編基礎(一)iOS
- 學習筆記之事件迴圈-Event loop筆記事件OOP
- iOS逆向之旅(基礎篇) — 彙編(一)— 彙編基礎iOS
- iOS逆向之旅(基礎篇) — 彙編(五) — 彙編下的BlockiOSBloC
- Solidity語言學習筆記————38、Solidity彙編Solid筆記
- 彙編實驗小記(五)-迴圈程式設計程式設計
- css樣式選擇器學習筆記CSS筆記
- Python3學習筆記4 , 迴圈、模組Python筆記
- 逆向與安全學習筆記筆記
- iOS逆向之旅(基礎篇) — 彙編(二) — 彙編下的 IF語句iOS
- Solidity語言學習筆記————39、獨立彙編Solid筆記
- Vue學習筆記(三)條件渲染和迴圈渲染Vue筆記
- 基礎排序(冒泡、選擇、插入)學習筆記排序筆記
- iOS逆向之旅(基礎篇) — 彙編(三) — 彙編下的 Switch語句iOS
- 【自用】彙編初學筆記 #1筆記
- Angularjs學習筆記指令AngularJS筆記
- Vue 學習筆記——指令Vue筆記
- iOS彙編教程(六)CPU 指令重排與記憶體屏障iOS記憶體
- 機器學習-學習筆記(二) --> 模型評估與選擇機器學習筆記模型
- 程式流程 (順序,選擇,迴圈)
- JavaScript(二):選擇、迴圈結構JavaScript
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- iOS Block學習筆記iOSBloC筆記
- 4月10日學習筆記——jQuery選擇器筆記jQuery