2)有條件轉讓
在程序中,微處理器可以通過使用條件碼來決定是否進行傳輸。例如,為了實現循環操作,通常需要分支回到循環的開頭,但是這種轉移應該隻發生在執行所需數量的循環之前,之後應該跳過轉移。這時,通過在傳送指令後添加適當的條件,就可以輕鬆實現該功能。
條件傳輸還可用於控製循環的退出。此時的傳輸與條件碼緊密相連。隻有當條件碼的值滿足條件時,才會執行相應的傳輸。典型的循環控製指令序列如下:
MOV R0,#0;計數器初始化
環形…
添加R0,R0,#1;循環計數器加1
CMP R0,#10;與循環限製比較
BNE LOOP ;如果不相等則返回
……;否則循環中止
示例顯示,條件轉移是BNE,即“不相等則轉移”。有條件轉移有十幾種形式。表中同一列中的一對條件具有相同的含義和相同的二進製代碼,但兩者都有用。因為在某些情況下,每個條件都可能使彙編語言源代碼的編譯變得更容易。表中提到有符號數和無符號數的比較時,並不意味著指令可以區分有符號數和無符號數。知識表明該指令可以比較有符號數的大小,且比較結果正確;當操作數是有符號數時,結果不一定正確。