CJNE比較跳轉(zhuǎn)指令以及檢測(cè)P0口狀態(tài)程序舉例
功能:比較二個(gè)字節(jié)中的值,若不等,則轉(zhuǎn)移。
CINEA,#data,rel
CJNEA,direct,rel
CJNE@Ri,#data,rel
CJNERn,#data,rel
該類指令具有比較和判斷雙重功能,比較的本質(zhì)是做減法運(yùn)算,用第一操作數(shù)內(nèi)容減去第二操作數(shù)內(nèi)容,但差值不回存。
轉(zhuǎn)移目的地址=(PC)+ 3 + rel
若第一操作數(shù)內(nèi)容小于第二操作數(shù)內(nèi)容,則(C)= 1,否則(C)= 0。
該類指令可產(chǎn)生三分支程序:即,相等分支;大于分支;小于分支。
例、設(shè)P1口的P1.0 ~ P1.3為準(zhǔn)備就緒信號(hào)輸入端,當(dāng)該四位為全1時(shí),說明各項(xiàng)工作已準(zhǔn)備好,單片機(jī)可順序執(zhí)行,否則,循環(huán)等待。
答案:
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,WAIT;P1.0 ~ P1.3不為全1時(shí),返回WAIT
MOVA,R2