jueves, 30 de mayo de 2013

Comparación de dos números Mayor o Menor

En esta entrada les dejo un programa que dice si el primer número digitado es mayor o menor que un segundo número digitado.

El programa no tiene mayor dificultad que los anteriores, funciona comparando el primer número con el segundo y asi se activa una bandera (CF) el cual la usamos para hacer un salto si es mayor (ja), menor (jb) o si es igual (je).

a
jmp 160

e 0103 " Son iguales " 0a 0d "$"
e 0120 " Es Menor " 0a 0d "$"
e 0140 " Es Mayor " 0a 0d "$"

a 160
mov ah,01  ;Digita el primer número
int 21
mov bl,al
mov ah,01   ;Digita el segundo número
int 21
cmp al,bl   ;compara el segundo numero con el primero
je 172   ;si son iguales salta
ja 017B  ;si el segundo es mayor
jb 184    ;Si el segundo es menor
mov ah,09
mov dx,0103  ;imprime que son iguales
int 21
int 20
mov ah,09
mov dx,0120  ;imprime que es menor
int 21
int 20
mov ah,09
mov dx,0140   ;imprime que es mayor
int 21
int 20

Programa en ejecución:


Programa en MASM

.model small
.stack 64
.data
mayor1 Db 'Es mayor','$'
menor1 Db 'Es menor','$'
igual1 Db 'Son iguales','$'
.code
  inicio:
   mov ah,01
   int 21h
    mov bl,al
   mov ah,01
   int 21h
   mov cl,al
   cmp bl,cl
   ja mayor
   jb menor
   je igual
   mayor:
   mov ax,@data
   mov ds,ax
   mov ah,09
   mov dx,offset mayor1
   int 21h
   jmp salir
   menor:
   mov ax,@data
   mov ds,ax
   mov ah,09
   mov dx,offset menor1
   int 21h
   jmp salir
   igual:
   mov ax,@data
   mov ds,ax
   mov ah,09
   mov dx,offset igual1
   int 21h
   jmp salir
   salir:
   mov ah,4ch
   int 21h
  end inicio

Captura de ejecución del programa:


De ahora en adelante postearé los programas sólo en el compilador de MASM, suerte y hasta la próxima.

1 comentario: