當運算產生進位標誌時,即CF=1時,跳轉到目標程序處.
例如:
add al,bl
jc carrybit
inc al;如果al+bl產生了進位,這壹句就不執行了.
carrybit:
neg al
這段程序沒有任何意義,僅僅作為示例哈.
相同的指令還有:
JNC,當CF=0時跳轉;
JZ,當ZF=1時跳轉,JNZ,當ZF=0時跳轉;
JO,當OF=1時跳轉,JNO,當OF=0時跳轉;
JP,當PF=1時跳轉……
依此類推,標誌寄存器的各個位基本上都可以用來做“條件跳轉”的條件.
當然,條件跳轉不僅僅是標誌寄存器位,還可以是CX
如:
a_loop:
;do something
dec cx
jcxz
jmp a_loop
可以看出,這壹段相當於壹個loop指令.
還有,用於大小判斷型的:
cmp op1,op2
JXX XXXX
其中JXX有以下幾種:
JA表示op1>op2,JNA表示op1