Advertisement
Guest User

Untitled

a guest
Jun 8th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .data
  2.  
  3. licznik:
  4.     .quad   0
  5.  
  6. bylo:
  7.     .byte   0
  8.    
  9. zero:
  10.     .byte   0
  11.    
  12.     .text
  13.     .type check_tabA, @function
  14.     .global check_tabA 
  15.  
  16. # int* tab  %rdi
  17. # int n     %rsi
  18. # int* max  %rdx
  19.  
  20. check_tabA:
  21.  
  22.     MOV     %rdi,   %r8         # tab*
  23.     XOR     %rax,   %rax        # sum = 0
  24.     MOV     $1,     %r11        # maska
  25.    
  26.     XOR     %r9,    %r9         # i = 0 .. 64
  27.     MOV     $64,    %rcx        # count = 64
  28.    
  29. next:                           # for 64 razy
  30.    
  31.     MOVQ    $0,     licznik     # licznik = 0
  32.     MOVB    $0,     bylo        # bylo = 0
  33.    
  34. # inside loop ---------------------------------
  35.    
  36.         XOR     %r10,   %r10        # j = 0 .. n
  37.        
  38.     nextinside:
  39.    
  40.         ADD     %r10,   %r8         # tab[j]
  41.    
  42.         CMP     (%r8)%r9         # if(tab[j] == i)
  43.         JNE     continueinside
  44.        
  45.         ADDQ    $1,     licznik
  46.    
  47.         CMPB    $0,     bylo        # if(bylo == 0)
  48.         JNE     continueinside
  49.    
  50.         ADD     $1,     bylo        # bylo = 1 
  51.         OR      %r11,   %rax
  52.    
  53.     continueinside:
  54.    
  55.         SUB     %r10,   %r8         # przywroc tab
  56.    
  57.         INC     %r10
  58.         CMP     %r10,   %rsi
  59.         JNE     nextinside
  60.  
  61. # inside loop ---------------------------------
  62.  
  63.     MOV     (%rdx),     %r12        # max
  64.     CMP     licznik,    %r12        # if(licznik > max)
  65.     JGE     continue
  66.    
  67.     MOV     licznik,    %r12
  68.     MOV     %r12,       (%rdx)
  69.    
  70. continue:
  71.  
  72.     SHL     $1,     %r11        # przesun maske
  73.     INC     %r9
  74.     LOOP    next
  75.    
  76.     RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement