• Jueves 14 de Noviembre de 2024, 23:30

Autor Tema:  Neceito Ayuda  (Leído 1508 veces)

holydrake

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Neceito Ayuda
« en: Domingo 5 de Diciembre de 2004, 17:01 »
0
Hola, necesito saber como ordenar numeros en un archivo para luego mostrarlos en pantalla. Necesito su ayuda, estoy trabado en ese problema
gracias

yo intente algo como esto, pero me sigue dando error y no se como hacer que me muestre la lista ordenada :
Código: Text
  1.  
  2. PAGE 50,132
  3. TITLE lee un archivo, lo ordena y lo muestra por pantalla
  4. STACK SEGMENT PARA STACK 'STACK'
  5. STACK ENDS
  6.  
  7. DATA SEGMENT PARA PUBLIC 'DATA'
  8.     handle         DW    0  &#59; handle de control del fichero
  9.     input_txt      DB    13,10,"Nombre del fichero: $"
  10.     fallo_txt      DB    13,10,"*** Error en la carga del archivo ***",13,10,10,"$"
  11.     fichnom        DB    80 DUP (0)  &#59; buffer para leer desde el
  12.     buffer         DB    2048 DUP (0)&#59;   "     "     "     "  el disco
  13.     tabla      DB    0
  14.     numv       DW    08
  15. DATA  ENDS
  16.  
  17. CSEG SEGMENT PARA PUBLIC 'CODE'
  18.  
  19. mira    PROC  FAR
  20.         ASSUME CS:CSEG, DS:DATA, SS:STACK
  21.         PUSH DS
  22.         SUB AX,AX
  23.         PUSH AX
  24.         MOV CL, 3  
  25.     inicio:
  26.                    MOV AX, SEG DATA
  27.                    MOV DS, AX
  28.                    LEA   DX,input_txt    
  29.                    MOV   AH,9            
  30.                    INT   21h              
  31.                    LEA   DX,fichnom      
  32.                    MOV   BYTE PTR [fichnom],60              
  33.                    MOV   AH,10            
  34.                    INT   21h              
  35.                    MOV   BL,[fichnom+1]    
  36.                    MOV   BH,0              
  37.                    ADD   BX,OFFSET fichnom
  38.                    MOV   BYTE PTR [BX+2],0
  39.                    LEA   DX,fichnom+2                                                
  40.                    MOV   AL,0              
  41.                    MOV   AH,3Dh                                                      
  42.                    INT   21h              
  43.                    JC    error1            
  44.                    MOV   handle,AX        
  45.     trocito:       MOV   BX,handle        
  46.                    MOV   CX,2048          
  47.                    LEA   DX,buffer        
  48.                    MOV   AH,3Fh            
  49.                    INT   21h              
  50.                    JC    error1            
  51.                    MOV   CX,AX            
  52.                    JCXZ  cerrar            
  53.                    PUSH  AX                
  54.                    LEA   BX,buffer
  55.        MOV   SI,BX
  56.        MOV   DI,BX
  57.     buc:     MOV   AH, buffer [SI]
  58.     ordena:     ADD   DI,1
  59.        MOV   BH, buffer [DI]
  60.        CMP   AH,BH
  61.        JBE   FIN
  62.        MOV   buffer [SI],BH
  63.        MOV   buffer [DI],AH
  64.        MOV   AH,BH
  65.     fin:     CMP   DI,numv
  66.        JB    ordena
  67.                    ADD   SI,1
  68.        MOV   DI,SI
  69.        CMP   SI,numv
  70.              JB    buc        
  71.     imprime:       LEA   BX,buffer
  72.        MOV   SI,BX
  73.        MOV   DL,buffer[si]
  74.                    MOV   AH,2                
  75.                    INT   21h                
  76.                    ADD   SI,1          
  77.                    LOOP  imprime          
  78.                    POP   AX                
  79.                    CMP   AX,2048          
  80.                    JE    trocito          
  81.     cerrar:        MOV   BX,handle        
  82.                    MOV   AH,3Eh            
  83.                    INT   21h              
  84.                    JC    error1            
  85.                    jmp sale
  86.     error1:        LEA   DX,fallo_txt      
  87.                    MOV   AH,9              
  88.                    INT   21h              
  89.                    CMP   handle,0          
  90.                    JNE   cerrar            
  91.                    jmp sale
  92.   sale:          ret
  93. mira    ENDP
  94. CSEG    ENDS
  95.         END mira
  96.  
  97.  

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Neceito Ayuda
« Respuesta #1 en: Viernes 17 de Diciembre de 2004, 18:16 »
0