勵志

勵志人生知識庫

cjne指令

CJNE指令是一種條件轉移指令,用於比較累加器A、輔助暫存器Rn(n=0-7)或輔助暫存器Ri(i=0-1)中的內容與立即數[#data](){"sa":"re_dqa_zy","icon":1}或直接地址中的內容是否相等。如果相等,則程式順序執行;如果不相等,則轉移至指定的標號處。此外,CJNE指令還能反映出比較後的結果,即哪個數大,哪個數小,這通過進位位CY來實現。如果前一個數(A中的)不小於後一個數,則CY=0,否則CY=1。因此,在程式轉移後,再次利用CY可以判斷A中的數與data的大小關係。

指令格式為:

CJNE A,direct,rel

CJNE A,#data,rel

CJNE Rn,#data,rel

CJNE @Ri,#data,rel

其中,A、Rn或Ri是累加器、輔助暫存器或間址定址得到的數,direct或#data是地址或立即數,rel是轉移地址。由於這是一條3位元組指令,程式的轉移範圍應以PC+3為起始地址,加上127~-128共256位元組單元地址。

例如,指令`CJNE A,#10H,L1`將累加器A中的內容與立即數10H比較,如果相等,則程式順序執行至L1標號處;如果不相等,則轉移至L1標號處執行。在L1處,再次進行比較,並根據比較結果執行相應的操作。