Tema 10. Dinámica y funciones de la Atmosfera 2024
Condicional
1. 2.2.2 CONDICIONAL
A veces un programa debe cambiar el flujo del programa en forma incondicional o
bajo una condición (Para tomar una decisión), por lo tanto debe haber
instrucciones que permitan cambiar el flujo de un programa sin ningún requisito, o
en caso de que una condición se cumpla. Existen instrucciones para éste propósito.
Son las instrucciones de saltos incondicionales y condicionales, que saltan a un
determinado punto si se cumpla la condición.
Las instrucciones son las siguientes:
JE o JZ: Salta si está prendido el bit Zero del registro de banderas.
Objetivo: Saltar si la última comparación realizada da igual.
JA o JNBE: Salta si el bit carry (CF) o el bit zero (ZF) del registro de banderas
está desactivado.
Objetivo: Saltar si la última comparación realizada con números naturales da
mayor.
JB o JNAE: Salta si CF está activada.
Objetivo: Saltar si la última comparación realizada con números naturales da
menor.
JG o JNLE: Salta si ZF es cero o si OF y SF son iguales.
Objetivo: Saltar si la última comparación realizada con números enteros da mayor.
JL o JNGE: Saltar si SF es diferente a OF
Objetivo: Saltar si la última comparación realizada con números enteros da menor.
JC: Saltar si CF está prendida
Objetivo: Saltar si hay acarreo
JO: Saltar si OF está prendido
Objetivo: Saltar si hay desbordamiento
JP: Saltar si PF está prendido
Objetivo: Saltar si hay paridad
JS: Saltar si SF está prendido
Objetivo: Saltar si es negativo
2. JNE o JNZ: Comportamiento inverso a JE o JZ
JNA o JBE: Comportamiento inverso a JA o JNBE
JNB o JAE: Comportamiento inverso a JB o JNAE
JNG o JLE: Comportamiento inverso a JG o JNLE
JNL o JGE: Comportamiento inverso a JL o JNGE
JNC: Comportamiento inverso a JC
JNO: Comportamiento inverso a JO
JNP o JPO: Comportamiento inverso a JP
JNS: Comportamiento inverso a JS
Hay otras instrucciones que hacen saltos condicionales, pero que no necesitan la
instrucción CMP, son las siguientes:
JCXZ: Salta si el registro CX es cero.
LOOP: Decrementa CX, restándole 1 y salta si CX es distinto de cero.
Objetivo: Hacer un bucle, utilizando como contador CX
LOOPE: Decrementa CX en 1 y salta si CX es distinto de cero y ZF está prendido.
Objetivo: Hacer un bucle, utilizando como contador CX y terminar si el contador
llega a cero, o se apaga el bit Zero.
LOOPNE: Decrementa CX en 1 y salta si ZF está prendido
Objetivo: Hacer un bucle que siga funcionando hasta que se apague el bit Zero.
La sintaxis de éstas instrucciones son similares a la instrucción JMP, lo único que
cambia es el nombre.
3. BIBLIOGRAFIA
Libros de Wikipedia: Programación en lenguaje ensamblador/Primeros
conceptos
Página web:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_lenguaje_ensamblador/Pri
meros_conceptos#Saltos_incondicionales_y_condicionales