Advertisement
rana01645

Array sort assembly

Jun 23rd, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; MULTI-SEGMENT EXECUTABLE FILE TEMPLATE.
  2.  
  3. DATA SEGMENT
  4.     ; ADD YOUR DATA HERE!
  5.     PKEY DB "PRESS ANY KEY...$"  
  6.     ARR DB 5 DUP(?)
  7. ENDS
  8.  
  9. STACK SEGMENT
  10.     DW   128  DUP(0)
  11. ENDS
  12.  
  13. CODE SEGMENT
  14. START:
  15. ; SET SEGMENT REGISTERS:
  16.     MOV AX, DATA
  17.     MOV DS, AX
  18.     MOV ES, AX
  19.  
  20.     ; ADD YOUR CODE HERE
  21.    
  22.     MOV CX,5
  23.      MOV SI,0
  24.     MYARRAY:
  25.     MOV AH,1
  26.     INT 21H      
  27.     SUB AL,'0'
  28.     MOV ARR[SI],AL
  29.     INC SI
  30.     LOOP MYARRAY
  31.    
  32.     MOV CX,5
  33.     SUB CX,1
  34.     MOV SI,0
  35.                
  36.                
  37.     BUBBLESORT:
  38.         CMP CX,SI          
  39.         JZ NEXT                    
  40.         MOV AL,ARR[SI]  
  41.         MOV BL,ARR[SI+1]  
  42.         CMP AL,BL          
  43.         JA EXCHANGE
  44.         ADD SI,1          
  45.         JMP BUBBLESORT
  46.     EXCHANGE:
  47.         MOV ARR[SI+1],AL
  48.         MOV ARR[SI],BL
  49.         ADD SI,1
  50.         JMP BUBBLESORT        
  51.     NEXT:                  
  52.         MOV SI,0            
  53.         SUB CX,1            
  54.         CMP CX,0
  55.         JNZ BUBBLESORT
  56.    
  57.    
  58.     ;NEW LINE    
  59.     MOV AH,2
  60.     MOV DL,0DH
  61.     INT 21H
  62.     MOV DL,0AH
  63.     INT 21H                                                                 0
  64.                
  65.     MOV CX,5
  66.     MOV SI,0    
  67.     MYARR:
  68.     MOV DL,ARR[SI]
  69.     ADD DL,'0'
  70.     MOV AH,2
  71.     INT 21H
  72.     MOV AH,2
  73.     MOV DL,0DH
  74.     INT 21H
  75.     MOV DL,0AH
  76.     INT 21H
  77.     INC SI
  78.     LOOP MYARR          
  79.            
  80.     LEA DX, PKEY
  81.     MOV AH, 9
  82.     INT 21H        ; OUTPUT STRING AT DS:DX
  83.    
  84.     ; WAIT FOR ANY KEY....    
  85.     MOV AH, 1
  86.     INT 21H
  87.    
  88.     MOV AX, 4C00H ; EXIT TO OPERATING SYSTEM.
  89.     INT 21H    
  90. ENDS
  91.  
  92. END START ; SET ENTRY POINT AND STOP THE ASSEMBLER.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement