循環(huán)&選擇
cmp(Compare)比較指令
???CMP 把一個(gè)寄存器的內(nèi)容和另一個(gè)寄存器的內(nèi)容或立即數(shù)進(jìn)行比較涡真。但不存儲(chǔ)結(jié)果十电,只是正確的更改標(biāo)志懦铺。
???一般CMP做完判斷后會(huì)進(jìn)行跳轉(zhuǎn)信殊,后面通常會(huì)跟上B指令擂找!
- BL 標(biāo)號(hào):跳轉(zhuǎn)到標(biāo)號(hào)處執(zhí)行
- B.GT 標(biāo)號(hào):比較結(jié)果是大于(greater than)母赵,執(zhí)行標(biāo)號(hào)溉瓶,否則不跳轉(zhuǎn)
- B.GE 標(biāo)號(hào):比較結(jié)果是大于等于(greater than or equal to)寝贡,執(zhí)行標(biāo)號(hào)唯竹,否則不跳轉(zhuǎn)
- B.EQ 標(biāo)號(hào):比較結(jié)果是等于唬渗,執(zhí)行標(biāo)號(hào)典阵,否則不跳轉(zhuǎn)
- B.HI 標(biāo)號(hào):比較結(jié)果是無(wú)符號(hào)大于,執(zhí)行標(biāo)號(hào)镊逝,否則不跳轉(zhuǎn)
Switch
1壮啊、假設(shè)switch語(yǔ)句的分支比較少的時(shí)候(例如3,少于4的時(shí)候沒(méi)有意義)沒(méi)有必要使用此結(jié)構(gòu)撑蒜,相當(dāng)于if歹啼。
2玄渗、各個(gè)分支常量的差值較大的時(shí)候,編譯器會(huì)在效率還是內(nèi)存進(jìn)行取舍狸眼,這個(gè)時(shí)候編譯器還是會(huì)編譯成類(lèi)似于if藤树,else的結(jié)構(gòu)。
3份企、在分支比較多的時(shí)候:在編譯的時(shí)候會(huì)生成一個(gè)表(跳轉(zhuǎn)表每個(gè)地址四個(gè)字節(jié))也榄。