método de ordenación de burbuja en ensamblador ayuda?

ojala y alguien me pueda decir en donde esta la falla en mi código en lenguaje ensamblador, ya intenté ensamblar con MASM 6.11, lo ensambla, pero cuando lo ejecuto, aparecen caracteres sin ninguna lógica, estoy intentando realizar el método de ordenación de burbuja.

.dosseg

.model small

.stack 100h

.data

num db 10 dup (0)

salto db cr,lf,'$'

cr equ 10

lf equ 13

.code

mov dx,@data

mov ds,dx

lea si,num

mov si,0

mov cx,10

inicio:

mov ah,01h

int 21h

mov num[si],al

mov ah,09

mov dx,offset salto

int 21h

inc si

loop inicio

mov si,0

mov cx,10

imprime:

mov ah,02h

mov dl,num[si]

int 21h

mov ah,02h

mov dl,' '

int 21h

inc si

loop imprime

lea di,num

mov di,0

mov si,0

mov cx,10

ciclo1:

push cx

; mov al,num[si]

mov cx,10

ciclo2:

; mov ah,num[di]

cmp num[si],num[di]

ja intercambio

jmp sigue

intercambio:

mov al,num[si]

mov num[si],num[di]

mov num[di],al

;mov num[si],ah

;mov num[di],al

;mov al,ah

sigue:

inc di

loop ciclo2

inc si

pop cx

loop ciclo1

mov si,0

mov cx,10

print:

mov ah,02h

mov dl,num[si]

int 21h

mov ah,02h

mov dl,' '

int 21h

inc si

loop print

mov ah,4ch

int 21h

end

2 respuestas

Calificación
  • hace 1 década
    Respuesta preferida

    Hola, pues de entrada no se mucho de lenguaje ensamblador, entonces de lo poco que le entiendo a tu codigo creo que esta bien, ahora a mi me ha pasado que cuando lo ensamblo, me manda caracteres sin sentido, porque me equivoco en la asignacion de los ciclos, y entonces me manda solo la direccion del espacio en memoria, mas no del dato, osea me da algun numero en hexadecimal y todo eso, yo te recomiendo que cheques bien tu ciclo del bubble, puedes darte una idea si esta bien, haciendo primero el programa en c o cualquier otro lenguaje que manejes y de esta forma checar bien la logica del ensamblador, tambien te recomiendo buscar ayuda en foros especializados, aqui en yahoo es muy dificil que alguien te de una buena respuesta o que te saquen al 100% de tu duda.

    Espero te sirva esta informacion.

    Fuente(s): Estudiante ingenieria en informatica.
  • tusito
    Lv 4
    hace 1 década
¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.