004 循環(huán)&選擇
cmp(Compare)比較指令
???CMP 把一個寄存器的內(nèi)容和另一個寄存器的內(nèi)容或立即數(shù)進行比較。但不存儲結(jié)果蝌矛,只是正確的更改標志喉恋。
???一般CMP做完判斷后會進行跳轉(zhuǎn)欠拾,后面通常會跟上B指令先紫!
- BL 標號:跳轉(zhuǎn)到標號處執(zhí)行
- B.GT 標號:比較結(jié)果是大于(greater than),執(zhí)行標號暂幼,否則不跳轉(zhuǎn)
- B.GE 標號:比較結(jié)果是大于等于(greater than or equal to)筏勒,執(zhí)行標號,否則不跳轉(zhuǎn)
- B.EQ 標號:比較結(jié)果是等于旺嬉,執(zhí)行標號管行,否則不跳轉(zhuǎn)
- 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é))。