2)條件轉(zhuǎn)移
在程序中可通過(guò)條件碼的使用讓微處理器決定是否進(jìn)行轉(zhuǎn)移,。例如,,為了實(shí)現(xiàn)循環(huán)操作,往往需要轉(zhuǎn)移回到循環(huán)的開(kāi)始,,但是這種轉(zhuǎn)移應(yīng)該僅發(fā)生在執(zhí)行到所需的循環(huán)次數(shù)之前,,這以后轉(zhuǎn)移應(yīng)被跳過(guò)。這時(shí),,在轉(zhuǎn)移指令后加上合適的條件,,就可恨容易地實(shí)現(xiàn)該功能。
條件轉(zhuǎn)移還可用來(lái)控制循環(huán)的退出,。這時(shí),,轉(zhuǎn)移與條件碼緊密相連,只有當(dāng)條件碼的值滿足條件時(shí),,相應(yīng)的轉(zhuǎn)移才被執(zhí)行,。一種典型的循環(huán)控制指令序如下所示:
MOV R0,#0 ,;計(jì)數(shù)器初始化
LOOP …
ADD R0,,R0,,#1 ,;循環(huán)計(jì)數(shù)器加1
CMP R0,#10 ,;與循環(huán)的限制比較
BNE LOOP ,;如果不相等則返回
… ;否則循環(huán)中止
例中給出了條件轉(zhuǎn)移是BNE,,即“不等則轉(zhuǎn)移”條件轉(zhuǎn)移的形式共有十幾種,,表中同一欄內(nèi)的一對(duì)條件的涵義相同,二進(jìn)制代碼也相同,,但兩者都是有用的,,因?yàn)樵谔囟ǖ沫h(huán)境中每一種條件都可能使得匯編語(yǔ)言源代碼的編譯更加容易。在表中提到有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的比較時(shí),,并不是說(shuō)指令可區(qū)分有符號(hào)數(shù)和無(wú)符號(hào)數(shù),,知識(shí)說(shuō)明本條指令可對(duì)有符號(hào)數(shù)進(jìn)行大小比較,比較的結(jié)果是正確的,;當(dāng)操作數(shù)是有符號(hào)數(shù)時(shí),,結(jié)果不一定正確,。