Está en la página 1de 9

REPORTE DE PRACTICA

PARTE 3
“ESTRUCTURA BASICA”
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 al es mayor al de bl.

Tipos de Saltos:

• JMP salta

• JE, JZ salta si es igual a cero


• JNE, JNZ salta si no igual a cero
• JS salta si signo negativo
• JNS salta si signo no negativo
• JP, JPE salta si paridad par
• JNP, JOP salta si paridad impar
• JO salta si hay capacidad excedida
• JNO salta si no hay capacidad excedida
• JB, JNAE salta si por abajo (no encima o igual)
• JNB, JAE salta si no está por abajo (encima o igual)
• JBE, JNA salta si por abajo o igual (no encima)
• JNBE, JA salta si no por abajo o igual (encima)
• JL, JNGE salta si menor que (no mayor o igual)
• JNL, JGE salta si no menor que (mayor o igual)
• JLE, JNG salta si menor que o igual (no mayor)
• JNLE, JG salta si no menor que o igual (mayor)

2.6 Ciclos condicionales


Dentro de la programación existen ocasiones en la que es necesario ejecutar una
misma instrucción un cierto número de veces, el cual no siempre es conocido por el
programador o puede cambiar durante la ejecución del programa, para lo que
existen los ciclos condicionales, los cuales una vez se cumpla la condición que
tienen establecida, dejaran de ejecutarse como ciclo y permitirán que el programa
continúe con su flujo normal.

En ensamblador no existen de forma predefinida estos ciclos, pero pueden crearse


haciendo uso de los saltos incondicionales, generando ciclos que se repetirán hasta
que se cumpla la condición definida por el programador.

Ejemplo:

• mov al, 0: Asigna el valor cero al registro al.


• ciclo: Etiqueta a la que se hará referencia para el ciclo condicional.
• INC al: Aumenta en 1 el valor del registro al.
• CMP al, bl : Comparación entre el valor almacenado en al y el almacenado en bl.
• JL ciclo: Instrucción que indica que el flujo del programa continuara desde la
ubicación de la etiqueta ciclo si el valor de al es menor al de bl.

2.7 Incremento y decremento


En ensamblador existen dos instrucciones que cumplen con el propósito de
aumentar o reducir el valor contenido dentro de un registro.

• INC: Incrementa en uno el valor contenido dentro del registro que se le dé


como parámetro.
INC al: Aumenta en 1 el valor del registro al.

• DEC: Reduce en uno el valor contenido dentro del registro que se le dé como
parámetro.
DEC al: Reduce en 1 el valor del registro al.

2.8 Captura de cadenas con formato


El capturar cadenas con formato permite el movimiento, comparación o búsqueda
rápida entre bloques de datos, las instrucciones son las siguientes:

• MOVC: Esta instrucción permite transferir un carácter de una cadena.


• MOVW: Esta instrucción permite transferir una palabra de una cadena.
• CMPC: Este comando es utilizado para comparar un carácter de una cadena.
• CMPW: Esta instrucción es utilizada para comparar una palabra de una
cadena.
• SCAC: Esta instrucción permite buscar un carácter de una cadena.
• SCAW: Esta instrucción se utiliza para buscar una palabra de una cadena.
• LODC: Esta instrucción permite cargar un carácter de una cadena.
• LODW: Esta instrucción es utilizada para cargar una palabra de una cadena.
• STOC: Esta instrucción permite guardar un carácter de una cadena.
• STOW: Esta instrucción es utilizada para guardar una palabra de una
cadena.
I.- Identificar los Elementos y Funciones Básicos de los Siguientes
Programas de “Saltos” en Lenguaje Ensamblador, ejecutarlo en el
Emulador EMU8086 y Mostrar el Resultado.

• Programa #1 “Verifique si dos cadenas son iguales” ( jne, jz)

• Programa #2 “Cambia a mayúsculas” (jz,ja,jnc,jmp)


• Programa #3 JCXZ: Al utilizar esta instrucción le indicamos al
ensamblador que las líneas deben repetirse mientras cx sea igual y
únicamente igual a cero.

• Programa #4 Uso del salto más sencillo en ensamblador, hablamos del


JMP, el cual es el nemónico de JUMP en inglés, este salta hacia el bloque
de código indicado.
• Programa #5 Uso de loops, en este caso utilizamos el registro CX como
contador y la instrucción PUSH para decrementarlo, siendo asi este
programa deberá imprimir 5 veces la secuencia
1233333233333233333233333233333.

II.- Identificar los Elementos y Funciones Básicos de los Siguientes


Programas de “Incremento” en Lenguaje Ensamblador, ejecutarlo
en el Emulador EMU8086 y Mostrar el Resultado.

• Programa #1 Contador 0 al 9 en ensamblador


• Programa #2
III.- Identificar los Elementos y Funciones Básicos de los
Siguientes Programas de “Captura de Cadenas con Formato” en
Lenguaje Ensamblador, ejecutarlo en el Emulador EMU8086 y
Mostrar el Resultado.

• Programa #1

• Programa #1

También podría gustarte