viernes, 8 de marzo de 2019

Ciclos condicionales : Programas

En esta entrada dejare varios ejemplos de programas que utilizan ciclos condicionales en su estructura, para recalcar un poco mas de la investigación que antes ya había documentado en una entrada pasada.

Sintaxis 1 



org    100h
include 'emu8086.inc'

mov    al, 25     ; asigna 25 a al 
mov    bl, 10     ; asigna 10 a bl

cmp    al, bl     ; compara al con bl 

je     equal      ; salta si al = bl (zf = 1). 

putc   'n'        ; si llega aqui, entonces bl y al no son iguales 
jmp    stop       ; asi que imprime 'n' y salta a stop 

equal:            ; si llega aqui,
putc   'y'        ; entonces al=bl e imprime y 

stop:

ret               ; llega aqui sin importar nada 



Se asignan los valores a los registros


Como los numeros son diferentes, nos imprime la letra n

En caso de modificar y hacer a ambos numeros iguales

Nos mandara a pantalla la letra "y" 



Sintaxis 2



include 'emu8086.inc'
.model small
.stack
.data
    num1 db 8
    num2 db 8
    msg1 db 'Numeros iguales','$'
    msg2 db 'Numero 1 mayor','$'
    msg3 db 'Numero 2 mayor','$'
    
.code
    main:
    mov ax, @data
    mov ds,ax
    
    mov al,num1
    cmp al,num2
    
    jc Mayor2   ;Brinca si es mayor el numero 2
    jz igual    ;Salta si es igual
    jnz Mayor1  ;Brinca si es mayor el numero 1
    
.exit

igual:
    mov ah,09h
    lea dx ,msg1
    int 21h   
    ;printn 'Los numeros son iguales'
.exit 

Mayor1:
    mov ah,09h
    lea dx, msg2
    int 21h
    ;printn 'El numero 1 es mayor'
.exit

Mayor2:
    mov ah,09h
    lea dx, msg3
    int 21h
    ;print 'El numero 2 es mayor'
.exit
end

En si, lo que realiza este ultimo programa es la comparación de dos números mediante la instrucción cmp, al momento de compararlos tenemos tres lineas de brincos condicionales; jc,jz y jnz. Cada una dará un salto hacia la etiqueta que se le tiene asignada siempre y cuando cumpla con la condición que tiene cada una de ellas.

Finalmente, aqui muestro los tres posibles mensajes que puede darte el programa cuando se cumplan las condiciones de las instrucciones;Si los números son iguales, si el primer numero es mayor que el segundo o si el segundo numero es mayor al primer numero.





No hay comentarios.:

Publicar un comentario