Ejemplos de programas usando ciclos y saltos condicionales.
El día de hoy veremos datos interesantes acerca de los saltos y ciclos condicionales junto con algunos programas que nos podrán servir como ejemplos para que nos pueda ser mas fácil la comprensión de estos problemas.

Saltos que hacen uso de una sola bandera
Ciclos
Ejemplo de JMP
Este programa lo que realiza es la suma de dos numeros pero usando un salto llamado "calc" que nos lleva a un metodo llamado "calc" donde se realiza la suma.
org 100h
mov ax, 5 ; set ax to 5.
mov bx, 2 ; set bx to 2.
jmp calc ; go to 'calc'.
back: jmp stop ; go to 'stop'.
calc:
add ax, bx ; add bx to ax.
jmp back ; go 'back'.
stop:
ret ; return to operating system.
Numero mayor con JMP usando emu8086.inc
Lo que este programa realiza es la comparación de dos números usando los saltos jc, jz, y jnz. Ademas, este programa utiliza macros de la librería emu8086.inc para solicitar la entrada de datos y mostrar la salida de datos en una terminal.
include 'emu8086.inc'
.model small
.stack
.data
num1 db 2
num2 db 8
.code
main:
mov ax, @data
mov ds, ax
mov al, num1
cmp al, num2
jc mayor2
jz igual
jnz mayor1
.exit
igual:
printn 'LOS NUMEROS SON IGUALES'
jmp fin
mayor2:
printn 'NUMERO 2 ES MAYOR'
jmp fin
mayor1:
printn 'numero 1 es mayor'
jmp fin
fin:
.exit
He aquí la salida de datos en la terminal.
Numero mayor usando JMP con interrupciones
Este programa es identico al anterior pero la mayor diferencia reside en que no estamos haciendo uso de las macros de la libreria, sino que estamos usando interrupciones para desplegar mensajes de entradas de de datos como para mostrar las salida de estos.
.model small
.stack
.data
num1 db 8
num2 db 8
msg1 db 'numeros iguales', '$'
msg2 db 'NUMERO 1 ES MAYOR', '$'
msg3 db 'numero 2 es mayor', '$'
.code
main:
mov ax, @data
mov ds, ax
mov al, num1
cmp al, num2
jc mayor2
jz igual
jnz mayor1
.exit
igual:
mov ah, 09h
lea dx, msg1
int 21h
jmp fin
mayor2:
mov ah, 09h
lea dx, msg3
int 21h
jmp fin
mayor1:
mov ah, 09h
lea dx, msg2
int 21h
jmp fin
fin:
.exit
Aquí esta la salida del programa al realizar la ejecución.
Comentarios
Publicar un comentario