¿Qué significa la instrucción jc en lenguaje ensamblador?
Cuando la operación genera un indicador de acarreo (es decir, CF=1), salte al programa de destino.
Por ejemplo:
add al,bl
jc carrybit
inc al; sentencia no ejecutada.
carrybit:
neg al
Este programa no tiene ningún sentido, es sólo un ejemplo.
Las mismas instrucciones:
JNC, salta cuando CF=0
JZ, salta cuando ZF=1, JNZ, salta cuando ZF= Salta cuando 0; ;
JO, salta cuando OF=1, JNO, salta cuando OF=0
JP, salta cuando PF=1.. ....
Las mismas instrucciones:
JO, salta cuando PF=1;
JP, salta cuando PF=1;
JO, salta cuando PF=0;
JP, salta cuando PF=0
JO, salta cuando PF=1
JP, salta cuando PF=0; p> JP, salta cuando PF=1...
Y así sucesivamente. Básicamente, cada bit del registro de bandera se puede utilizar como condición para el "salto condicional".
Por supuesto, el salto condicional no es solo un bit de registro de bandera, también puede ser un CX
Por ejemplo:
a_loop:
;hacer algo
dec cx
jcxz
jmp a_loop
Como puedes ver, esto es equivalente a un bucle instrucción. Esto es equivalente a la instrucción de bucle.
Además, para determinar el tamaño:
cmp op1,op2
JXX XXXX
JXX tiene lo siguiente:
JA representa el operador 1>operador 2, JNA representa el operador 1
JA representa el operador 1>operador 2, JNA representa el operador 1