
Programa que ordene cadenas por longitud
Publicado por anonymous (2 intervenciones) el 29/10/2015 01:41:31
Hola que tal antes que nada mucho gusto y un placer estar en esta comunidad como verán soy nuevo en este foro y también soy un novato en programar en ensamblador y sin más preámbulo les explico mi problema:
Tengo que realizar un programa en ensamblador que dada una frase introducida por el teclado me devuelva la frase de tal manera que las palabras aparezcan ordenadas por número de carácteres sin importar el orden alfabético no se si me explique, por ejemplo se introduce la frase: "hola que tal como estan todos" y devuelve como resultado: "tal que hola como todos estan".
Hasta ahora se cómo introducir carácteres por teclado pero se me complica el crear la función para que realice el proceso de ordenamiento esto es lo que llevo hasta ahora:
.model small
.stack
.data
cad1 DB 'Escribe la oracion a ordenar:',13,10,'$'
cadena1 db 10 dup(' '),'$'
.code
inicio:
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset cad1
int 21h
lea si,cadena1
pedir:
mov ah,01h
int 21h
mov [si],al
inc si
cmp al,0dh
ja pedir
jb pedir
mov cx,10
mov ax,ds
mov es,ax
end
Como pueden ver no es mucho y me he ayudado de otros programas que he visto pero no hay nada similar a lo que yo necesito, les agradecería de antemano si pudieran ayudarme.
Sin más que decir reitero mis agradecimientos por su atención y su valioso tiempo.
Saludos!
Tengo que realizar un programa en ensamblador que dada una frase introducida por el teclado me devuelva la frase de tal manera que las palabras aparezcan ordenadas por número de carácteres sin importar el orden alfabético no se si me explique, por ejemplo se introduce la frase: "hola que tal como estan todos" y devuelve como resultado: "tal que hola como todos estan".
Hasta ahora se cómo introducir carácteres por teclado pero se me complica el crear la función para que realice el proceso de ordenamiento esto es lo que llevo hasta ahora:
.model small
.stack
.data
cad1 DB 'Escribe la oracion a ordenar:',13,10,'$'
cadena1 db 10 dup(' '),'$'
.code
inicio:
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset cad1
int 21h
lea si,cadena1
pedir:
mov ah,01h
int 21h
mov [si],al
inc si
cmp al,0dh
ja pedir
jb pedir
mov cx,10
mov ax,ds
mov es,ax
end
Como pueden ver no es mucho y me he ayudado de otros programas que he visto pero no hay nada similar a lo que yo necesito, les agradecería de antemano si pudieran ayudarme.
Sin más que decir reitero mis agradecimientos por su atención y su valioso tiempo.
Saludos!
Valora esta pregunta


0