Código
;************************************************************ ;Realiza un ordenamiento de un array con 20 numeros ************************************************************ .MODEL SMALL ; Modelo de memoria para el programa .DATA ; Declaracion de variables Mensaje1 db 'Array sin ordenar',0Ah,24h ;declaracion de mensajes,0AH,24h es un salto de linea Mensaje2 db 'Array ordenado',0Ah,24h Mensaje3 db 'Array con multiplos del 3',0Ah,24h .CODE INICIO: ; Cuerpo del programa mov dx,OFFSET Mensaje1 ; Direccion de la cadena de texto mov ah,9 ; Funcion para imprimir cadenas int 21h ; Llamada al sistema operativo INICIALIZACION: mov si,offset tabla_o mov cx,19 mov cambio,0 mov temp, 0 ciclo: mov ah,[si] ;elemento 1 mov al,[si+1] ;elemento 2 cmp al,ah ;Realiza la comparacion del elemento 1 con el 2 jg mayor ;Salta si es mayor fciclo: inc si loop ciclo ;ciclar hasta 20 elementos cmp cambio,1 je INICIALIZACION salir: mov ah,4ch ; servicio del DOS para regresar int 21h ; el control al procesador de comandos msdos ; Funcion para imprimir cadenas ; el control al procesador de comandos msdos cambio db 0 ; variable de estado 1=mayor 0=menor tabla_o db 2,9,16,1,4,5,6,32,17,10,60,63,90,12,33,45,99,100,80 temp db 0; Variable temporal mayor: mov cambio,1 ;T temp = list[i + 1]; ; list[i + 1] = list[i]; ; list[i] = temp; ; madeChanges = true; mov temp, al mov [si + 1] ,ah mov al, temp mov [si],al jmp fciclo END INICIO CODE ENDS END
Emulador 8086, x86
Tengo ese codigo, me gustaria imprimir lo que ordeno a la salida del array o lo que mal ordeno (porque ni siquiera se si lo ordene bien, pero bueno la idea es hacerlo yo si tienen alguna guia o algo que me ayude pues seria genial pero es adicional!).
Y es que si utilizo el 21h con el 4ch pues me vuelve a tirar el mensaje de arriba!!.
Me ha costado bastante entenderlo, les agradeceria una guia nada mas, GRACIAS POR LEER.