• Domingo 22 de Diciembre de 2024, 09:50

Autor Tema:  Ordenar Alfabeticamente Una Lista  (Leído 4463 veces)

R2D2

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ordenar Alfabeticamente Una Lista
« en: Lunes 11 de Abril de 2005, 23:28 »
0
Saludos a todos, por favor alguien me podría ayudar con un programa para organizar en orden alfabetico una lista de n bytes almacenados en memoria? Gracias Mil de antemano.  :lol:

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ordenar Alfabeticamente Una Lista
« Respuesta #1 en: Miércoles 13 de Abril de 2005, 02:30 »
0
comparando:
si tu lista es de este tipo

cadena db 'fkjklsuionajkk'

Código: Text
  1.  
  2.           mov si,offset cadena
  3.           mov di,si+1
  4. ciclo:  mov al,[di]  
  5.           cmp  [si],al
  6.           jb      next1&#59;;hacendente o descendente
  7.           mov ah,[si]          
  8.           mov [si],al
  9.           mov [di],ah
  10. next1: inc si
  11.           inc di
  12.           jmp ciclo
  13.  
  14.  

algo asi....Falta el control para el ciclo.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Ordenar Alfabeticamente Una Lista
« Respuesta #2 en: Miércoles 13 de Abril de 2005, 17:31 »
0
Pregunta Super_G, cuando sabes que una cadena debe ser movida a si o a dx, ya que yo he aprendido que siempre se mueven a dx?

Gracias Chao.
El pasado son solo recuerdos, el futuro son solo sueños

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ordenar Alfabeticamente Una Lista
« Respuesta #3 en: Jueves 14 de Abril de 2005, 18:42 »
0
en si el movimiento es a la direcion de memoria apuntada por SI (u otro apuntador como DI,BX) y de "tamaño" fijo como un byte, en DX normalmente para usar instrucciones epeciales o interrupciones que usan por defecto a DX y no otro registro y asi deberia ser para esos casos ya que DX es el "registro de datos" pero para trabajar con elementos de una cadena se usa SI o DI.

crist

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Ordenar Alfabeticamente Una Lista
« Respuesta #4 en: Viernes 15 de Abril de 2005, 15:23 »
0
Hola, y si la lista no está en memoria sino que el usuario debe meter el Nro "n" de caracteres que tendrá la lista y almacenarla y luego ordenarla en las mismas posiciones de memoria como se haría?

Mil gracias.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ordenar Alfabeticamente Una Lista
« Respuesta #5 en: Domingo 17 de Abril de 2005, 03:32 »
0
para lo del ciclo con "n" puedes usar a la instruccion LOOP y poner en CX el numero de ciclos o letras
Código: Text
  1.  
  2.        mov cx,n
  3. ciclo:
  4.  
  5.          .
  6.          .
  7.          loop ciclo
  8.      
  9.  
  10.  
ahora el ejemplo anterior trabaja sobre memoria y el resultado se queda en la misma direccion de memoria.