www.pudn.com > ASM11.rar > ex5ord.asm


        DATA  SEGMENT 
 
       INFON  DB        'Enter Word:$' 
      INFON1  DB        13,10,'Sort Order:$' 
      INFON2  DB        13,10,'Swap Times:$' 
 
      STRING  DB        50,?,50 DUP(?) 
 
        DATA  ENDS 
 
        CODE  SEGMENT 
              ASSUME    DS:DATA,CS:CODE 
 
      START:  MOV       AX,DATA 
              MOV       DS,AX 
              XOR       SI,SI 
 
    MESSAGE:  LEA       DX,INFON 
              MOV       AH,9 
              INT       21H 
 
   INPUTSTR:  LEA       DX,STRING 
              MOV       AH,0AH 
              INT       21H 
 
              MOV       DI,DX 
 
 
 
 
              MOV       CL,DI[1] 
 
              ADD       DI,1 
 
              PUSH      DI 
 
 
       INIT:  MOV       BX,1 
              DEC       CX 
              PUSH      CX 
              JZ        PRINT 
 
              XOR       AX,AX 
 
              XOR       DI,DI 
 
       NEXT: 
              MOV       AL,STRING[DI+2] 
 
 
 
              CMP       STRING[DI+3],AL 
 
              JAE       CONT 
 
              INC       SI 
 
              XCHG      STRING[DI+3],AL 
 
              MOV       STRING[DI+2],AL 
 
 
 
              SUB       BX,BX 
 
       CONT:  INC       DI 
              LOOP      NEXT 
 
              POP       CX 
              CMP       BX,0 
              JE        INIT 
 
      PRINT:  LEA       DX,INFON1 
              MOV       AH,9 
              INT       21H 
 
              XOR       BX,BX 
              MOV       BL,STRING[1] 
              ADD       BX,2 
              MOV       STRING[BX],'$' 
 
              LEA       DI,STRING 
              INC       DI 
              INC       DI 
 
              MOV       DX,DI 
              MOV       AH,9 
              INT       21H 
 
              LEA       DX,INFON2 
              MOV       AH,9 
              INT       21H 
 
              MOV       DX,SI 
              MOV       AH,9 
              INT       21H 
 
 
 
 
 
       EXIT:  MOV       AH,4CH 
              INT       21H 
 
        CODE  ENDS 
              END       START