Facebook
From Paltry Water Vole, 9 Years ago, written in Microchip Assembler.
Embed
Download Paste or View Raw
Hits: 573
  1. .686
  2. .model flat
  3. public _sortuj
  4.  
  5. .code
  6. ; void sortuj(int tablica[], unsigned n);
  7. _sortuj PROC
  8.         push ebp;
  9.         mov ebp,esp;
  10.         push ebx
  11.         push esi;
  12.         push edi;
  13.        
  14.         ;init:
  15.         mov esi,[ebp+8] ; pobranie adresu tablicy
  16.         mov ebx,[ebp+12] ; pobranie wielkości tablicy
  17.         mov edx,ebx;
  18.         mov ecx,0                       ;i=0
  19.        
  20. glowna_petla:
  21.                 push ecx;
  22.                 push ebx;
  23.                 sub ebx,ecx; dokąd= n-i
  24.                 mov ecx,0;
  25. wewnetrzna:
  26.                 mov edx,[esi+ecx*4]; pobranie t[j]
  27.                 mov edi,[esi+4+ecx*4]; t[j+1]
  28.                 cmp edx,edi;
  29.                 jb koncz_wewnetrzna
  30.                 ; zamiana
  31.                 mov [esi+ecx*4],edi;
  32.                 mov [esi+4+ecx*4],edx;
  33. koncz_wewnetrzna:
  34.                 inc ecx;
  35.                 cmp ecx,ebx;
  36.                 jb wewnetrzna;
  37.                
  38.                 pop ebx;
  39.                 pop ecx;
  40.         inc ecx
  41.         cmp ecx,ebx;
  42.         jb glowna_petla;
  43.        
  44.         pop edi
  45.         pop esi
  46.         pop ebx
  47.         pop ebp;
  48.         ret
  49. _sortuj ENDP
  50.  
  51. ;for(int i=0;i<n;i++)
  52. ;       for(int j=0;j<n-i;j++) {
  53. ;               if(tab[j]>tab[j+1])
  54. ;                       swap(tab[j],tab[j+1]);
  55. ;       }
  56.  
  57. END