⚙️CONDICIONALES
La ejecucion coondicional se logra mediante varias instrucciones de bucle bifurcacion. Estas instrucciones pueden cambiar el flujo del programa. La ejecucion condicional se observa en dos escenarios:
Sr.No.
Instrucciones condicionales
1
Salto Incondicional
Esto lo realiza la instrucción JMP. La ejecución condicional a menudo implica una transferencia de control a la dirección de una instrucción que no sigue a la instrucción que se está ejecutando actualmente. La transferencia de control puede ser hacia adelante, para ejecutar un nuevo conjunto de instrucciones o hacia atrás, para volver a ejecutar los mismos pasos.
2
Salto Condicional
Esto se realiza mediante un conjunto de instrucciones de salto j <condición> dependiendo de la condición. Las instrucciones condicionales transfieren el control rompiendo el flujo secuencial y lo hacen cambiando el valor de compensación en IP.
Analicemos la instruccion CMP antes de analizar las instruccines condicionales.
Instruccion CMP:
Esta compara dos operandos. Basicamente resta un operando del otro para comparar si son iguales o no. No perturba los operandos de origen o destino. Se utiliza junto con la instruccion de salto condicional para tomar desiciones.
cmp destinaction, sourceCMP compara dos campos numericos. El operando de destino podria estar en el registro o en la memoria. El operando source posria ser un dato constante (inmediato), un registro o una memoria.
EJEMPLO:
cmp dx, 00 ; Comparacion
je L7 ; Se hace la condicion, si dx = 00 pasa a L7
L7: ; El codigo que seguiria segun la condicion.CMP se usa a menudo para comparar si un valor de contador ha alcanzado la cantidad de veces que se debe ejecutar un ciclo.
inc edx ; Incrememtamos edx
cmp edx, 10 ; Comparamos que edx sea igual a 10
jle lp1 ; Si es menor o igual a 10, salta a lp1Salto Incondicional
Esto lo realiza la instruccion JMP. La ejecucion condicional a menudo implica una trasferencia de control a la direccion de una instruccion que se esta ejecutando actualmente. La transferencia de control puede ser hacia adelante, para ejecutar un nuevo conjunto de instrucciones o hacia atras.
SINTAXIS:
La instruccion JMP proporciona un nombre de etiqueta donde el flujo de control se transfiere inmediatamente:
EJEMPLO:
El siguiente fragmento de codigo ilustra la instruccion JMP:
Salto Condicional
si se cumple una condicion especifica , el flujo de control se transfiere a una instruccion de destino. existen numerosas instrucciones de salto condicional, segun la condicion y los datos.
Estas son las instrucciones de salto condicionla utilizadas en dtaos firmados utilizados en la aritmetica:
JE/JZ
Jump Equal or Jump Zero
ZF
JNE/JNZ
Jump not Equal or Jump Not Zero
ZF
JG/JNLE
Jump Greater or Jump Not Less/Equal
OF, SF, ZF
JGE/JNL
Jump Greater/Equal or Jump Not Less
OF, SF
JL/JNGE
Jump Less or Jump Not Greater/Equal
OF, SF
JLE/JNG
Jump Less/Equal or Jump Not Greater
OF, SF, ZF
Estas son las instruccines de salto condicional utilizadas en datos sin firmar de operaciones logicas:
JNE/JNZ
Jump not Equal or Jump Not Zero
ZF
JA/JNBE
Jump Above or Jump Not Below/Equal
CF, ZF
JAE/JNB
Jump Above/Equal or Jump Not Below
CF
JB/JNAE
Jump Below or Jump Not Above/Equal
CF
JBE/JNA
Jump Below/Equal or Jump Not Above
AF, CF
Estas instrucciones de salto condicional tienen usos especiales y verifican el valor de las flags:
JXCZ
Jump if CX is Zero
none
JC
Jump If Carry
CF
JNC
Jump If No Carry
CF
JO
Jump If Overflow
OF
JNO
Jump If No Overflow
OF
JP/JPE
Jump Parity or Jump Parity Even
PF
JNP/JPO
Jump No Parity or Jump Parity Odd
PF
JS
Jump Sign (negative value)
SF
JNS
Jump No Sign (positive value)
SF
La sintaxis para el conjunto de instrucciones J <condition>
EJEMPLO:
El siguiente programa muestra la mayor de tres variables. Las variables son variables de dos digitos. Las tres num1, num2 y num3 tienen valores 47, 22 y 31:
Última actualización