Ayuda comparacion y ordenamiento de numeros

Iniciado por ivanto534, 7 Julio 2016, 02:03 AM

0 Miembros y 1 Visitante están viendo este tema.

ivanto534

hola buenas tardes tengo que hacer una programa que ingreses tres numero del teclado y los compare y acomode de menor a mayor pero no me sale les dejo mi codigo espero me puedan ayudar no e avanzado de hay por que al momento de ejecutar no me imprime nada y no puedo avanzar con las demas comparaciones

model small
.stack
.data

    txtresultado  db  'El orden correcto es: $'
      txtvalor1 db 'Ingrese el primer valor:$'
   txtvalor2 db 'Ingrese el segundo valor:$'
    txtvalor3 db 'Ingrese el tercer valor:$'
    newline   db  10,13,'$'
   valor1  db ?
    valor2  db ?
   valor3  db ?

.code
    ; directiva que indica el inicio de
    ; código a ser procesado
.startup

    ; Se imprime el texto de apoyo
    ; para el ingreso del número

    lea dx, txtvalor1
    mov ah, 09h
    int 21h

    ; Se lee el valor numérico en formato
    ; de caracter.
    mov ah, 01h
    int 21h

    ; Se coloca el valor en la variable de
    ; apoyo.
    mov valor1, al
    sub valor1, 30h; Se convierte el valor de caracter en valor numérico.

    ; Se imprime un salto de linea
    lea dx, newline
    mov ah, 09h
    int 21h

   mov bl, al

   lea dx, txtvalor2
    mov ah, 09h
    int 21h

    ; Se lee el valor numérico en formato
    ; de caracter.
    mov ah, 01h
    int 21h

    ; Se coloca el valor en la variable de
    ; apoyo.
    mov valor2, al
    sub valor2, 30h

    lea dx, newline
    mov ah, 09h
    int 21h

   mov valor2, al




    ; Se coloca el valor en la variable de
    ; apoyo.
   
   

   ;*************************************************



    ; Se compara
    cmp valor2, al
    jmp Imp_Op1

    ;

   
   
    int 21h

    jmp salir

Imp_Op1:
   lea dx, txtresultado
    mov ah, 09h
    int 21h

   lea dx, valor1
   int 21h

   lea dx, valor2
   int 21h

   jmp salir

salir:

.exit
end

AlbertoBSD

He visto el codigo y no me queda claro que algoritmo de ordenamientl estas usando.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

ivanto534

leo tres numero y aqui comparo numero uno con el numero 2

; Se compara
    cmp valor2, al
    jmp Imp_Op1

y depende de la comparaciom se salta aqui

Imp_Op1:
   lea dx, txtresultado
    mov ah, 09h
    int 21h

   lea dx, valor1
   int 21h

   lea dx, valor2
   int 21h

y debe imprimir el orden correcto

cpu2

Cita de: ivanto534 en  7 Julio 2016, 02:19 AM
leo tres numero y aqui comparo numero uno con el numero 2

; Se compara
   cmp valor2, al
   jmp Imp_Op1

y depende de la comparaciom se salta aqui

Imp_Op1:
  lea dx, txtresultado
   mov ah, 09h
   int 21h

  lea dx, valor1
  int 21h

  lea dx, valor2
  int 21h

y debe imprimir el orden correcto


A simple vista, haces un cmp y luego un jmp, no lo entiendo eso saltara sin mas pasando de las flags.

Un saludo.