Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  2.     include \masm32\include\masm32rt.inc
  3. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  4.  
  5.  
  6.     bubble_sort PROTO :DWORD,:DWORD
  7.  
  8.     printarr MACRO parr,cnt
  9.       LOCAL lbl
  10.       push ebx
  11.       push esi
  12.       mov esi, parr
  13.       mov ebx, cnt
  14.     lbl:
  15.       print str$([esi]),13,10
  16.       add esi, 4
  17.       sub ebx, 1
  18.       jnz lbl
  19.       pop esi
  20.       pop ebx
  21.     ENDM
  22.  
  23.     .data?
  24.       value dd ?
  25.  
  26.     .data
  27.       narr dd 4,3,2,6,7,5,0,1,8,4   ; 10 unsorted numbers
  28.  
  29.     .code
  30.  
  31. start:
  32.  
  33. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  34.  
  35.     call main
  36.     inkey
  37.     exit
  38.  
  39. ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
  40.  
  41. main proc
  42.  
  43.     print "Nieposortowane",13,10
  44.  
  45.     printarr OFFSET narr,LENGTHOF narr
  46.  
  47.     invoke bubble_sort,OFFSET narr,LENGTHOF narr
  48.  
  49.     print chr$(13,10)
  50.     print "Posortowane",13,10
  51.  
  52.     printarr OFFSET narr,LENGTHOF narr
  53.  
  54.     ret
  55.  
  56. main endp
  57.  
  58.  
  59. bubble_sort proc parr:DWORD,cnt:DWORD
  60.  
  61.     push ebx
  62.     push esi
  63.  
  64.     sub cnt, 1                
  65.  
  66.   lbl0:
  67.     mov esi, parr              
  68.     xor edx, edx              
  69.     mov ebx, cnt          
  70.  
  71.   lbl1:
  72.     mov eax, [esi]                
  73.     mov ecx, [esi+4]
  74.     cmp eax, ecx                
  75.     jl lbl2
  76.     jle lbl2                    
  77.  
  78.     mov [esi], ecx              
  79.     mov [esi+4], eax
  80.     mov edx, 1                  
  81.  
  82.   lbl2:
  83.     add esi, 4                
  84.     sub ebx, 1                  
  85.     jnz lbl1
  86.  
  87.     test edx, edx              
  88.     jnz lbl0                    
  89.  
  90.     pop esi
  91.     pop ebx
  92.  
  93.     ret
  94.  
  95. bubble_sort endp
  96.  
  97. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement