Este documento describe los saltos condicionales en programación, los cuales alteran el flujo de un programa basado en una condición. Explica que hay dos tipos principales de instrucciones de salto: saltos condicionales que ocurren dependiendo del contenido de un registro, y saltos incondicionales que siempre ocurren. Luego proporciona un ejemplo de código que usa saltos condicionales para determinar si un número ingresado por el usuario es cero, positivo o negativo.
2. SALTO CONDICIONAL
ES UN PUNTO DE UN PROGRAMA INFORMÁTICO DONDE EL FLUJO DEL PROGRAMA SE VE
ALTERADO. LOS TÉRMINOS DE SALTO SUELEN UTILIZARSE PARA REFERIRSE A PROGRAMAS
ESCRITOS EN LENGUAJE ENSAMBLADOR; EN LOS LENGUAJES DE ALTO NIVEL, LOS SALTOS
NORMALMENTE TOMAN LA FORMA DE SENTENCIAS CONDICIONALES, LLAMADAS A
SUBRUTINAS O SENTENCIAS GOTO. UNA INSTRUCCIÓN QUE CAUSA UN SALTO (LLAMADA
EVIDENTEMENTE INSTRUCCIÓN DE SALTO), PUEDE SER EFECTIVA O NO EFECTIVA: SI EL
SALTO NO ES EFECTIVO, EL FLUJO DE PROGRAMA NO CAMBIA Y LA SIGUIENTE INSTRUCCIÓN
EN SER EJECUTADA ES LA INMEDIATAMENTE POSTERIOR EN EL CÓDIGO; SI RESULTA
EFECTIVO, LA SIGUIENTE INSTRUCCIÓN EJECUTADA SERÁ AQUELLA MARCADA COMO
DESTINO DEL SALTO. PRINCIPALMENTE HAY DOS FORMAS DE INSTRUCCIÓN DE SALTO: EL
SALTO CONDICIONAL QUE PUEDE SER EFECTIVO O NO SEGÚN UNA DETERMINADA
CONDICIÓN, COMO POR EJEMPLO EL CONTENIDO DE ALGÚN REGISTRO DE LA CPU; Y EL
SALTO INCONDICIONAL QUE SIEMPRE SE REALIZA.
3. INSTRUCCIONES DE SALTO:
HAY MÁS DE 30 INSTRUCCIONES DE SALTO, VAMOS A NOMBRAR LAS MÁS USADAS:
INSTRUCCIÓN DESCRIPCIÓN
jmp etiqueta Salto incondicional directo
je etiqueta Salto por igual
jne etiqueta Salto por no igual
jg etiqueta Salto por mayor
jng etiqueta Salto por no mayor
jge etiqueta Salto por mayor igual
jnge etiqueta Salto por no mayor igual
jl etiqueta Salto por menor
jnl etiqueta Salto por no menor
jle etiqueta Salto por menor igual
jnle etiqueta Salto por no menor igual
js etiqueta Salto negativo
4. EJEMPLO:
PERMITE DETERMINAR SI UN NUMERO INGRESADO POR TECLADO ES CERO, POSITIVO O NEGATIVO:
; INICIO:
.MODEL SMALL
.STACK 64
.DATA
; DECLARACIÓN DE VARIABLES:
NUM DB 0
; DEFINIR MENSAJES:
MSG1 DB 10,13, “INGRESE UN NUMERO ::”, ‘S’
MSG2 DB 10,13, “<<EL NUMERO ES CERO>>”, ‘S’
MSG3 DB 10,13, “<<EL NUMERO ES POSITIVO>>”, ‘S’
MSG4 DB 10,13, “<<EL NUMERO ES NEGATIVO>>”, ‘S’
5. .CODE
BEGIN PROD FAR
MOV AX,@DATA
MOV DS,AX
; INGRESO DE DATOS:
MOV AH,09
LEA DX,MSG1
INT 21H
MOV AH,01
INT 21H
SUB AL.30H
MOV NUM,AL