miércoles, 15 de abril de 2020

2.5 Saltos


Los saltos son instrucciones que permiten al programador cambiar el orden de ejecución del programa según sea necesario, dentro de ensamblador existen dos tipos de salto principales: condicionales e incondicionales.

Saltos Incondicionales:

Los saltos incondicionales se utilizan mediante la instrucción JMP, la cual transfiere el control a la línea especificada después de la palabra JMP, la cual puede ser un valor directo o una etiqueta.

También se puede contar como un salto incondicional la instrucción CALL, la cual llama un procedimiento y al terminarla devuelve el control a la línea siguiente de donde se inició la llamada a procedimiento.

Ejemplo:

·         Salto: Etiqueta a la que se hará referencia para el salto incondicional.
·         JMP Salto: Instrucción que indica que el flujo del programa continuara desde la ubicación de la etiqueta Salto.

Saltos Condicionales:

Los saltos condicionales transfieren el control del programa a la ubicación que se les dé como parámetro si al hacer una comparación se cumple la condición establecida en el salto, los saltos condicionales son los siguientes:

JA (Jump if Above):
Salta cuando el valor es superior, su condición es equivalente al salto JNBE (Jump if Not Below or Equal).

JAE (Jump if Above or Equal):
Salta cuando el valor es superior o igual, su condición es equivalente al salto JNB (Jump if Not Below).

JB (Jump if Below):
Salta cuando el valor es menor, su condición es equivalente al salto JNAE (Jump if Not Above or Equal).

JBE (Jump if Below or Equal):
Salta cuando el valor es menor o igual, su condición es equivalente al salto JNA (Jump if Not Above).

JE (Jump if Equal):
Salta cuando el valor es igual.

JZ (Jump if Zero):
Salta cuando el valor es cero.

JNE (Jump if Not Equal):
Salta cuando el valor no es igual.

JNZ (Jump if Not Zero):
Salta cuando el valor no es cero.

JG (Jump if Greater):
Salta cuando el valor es mayor, su condición es equivalente al salto JNLE (Jump if Not Less or Equal).

JGE (Jump if Greater or Equal):
Salta cuando el valor es mayor o igual, su condición es equivalente al salto JNL (Jump if Not Less).

JL (Jump if Less):
Salta cuando el valor es menor, su condición es equivalente al salto JNGE (Jump if Not Greater or Equal).

JLE (Jump if Less or Equal):
Salta cuando el valor es menor o igual, su condición es equivalente al salto JNG (Jump if Not Greater).

Ejemplo:
·         Salto:  Etiqueta a la que se hará referencia para el salto condicional.
·         CMP al, bl: Comparación entre el valor almacenado en al y el almacenado en bl.
·         JG Salto: Instrucción que indica que el flujo del programa continuara desde la ubicación de la etiqueta Salto si el valor de la es mayor al de bl.

No hay comentarios.:

Publicar un comentario