# Jak odpovidaji registry promenym v programu: # n je v rdi # i je v rsi # j je v rax # m je v r8 selectsort: testq %rdi, %rdi # registr rdi obsahuje n. Otestuj jestli je 0 jle .L1 # pokud ano, tak skoc na konec xorl %esi, %esi # snuluj i v registru rsi .L6: # zacatek vnejsi smycky movq p(,%rsi,8), %r9 # nacti p[i] do r9 movq %rsi, %rax # j=i movq %rsi, %r8 # m=i movq %r9, %rcx # p[i] dej take to rcx .L3: # zacatek vnitrni smycky incq %rax # j = j+1 cmpq %rax, %rdi # porovnej j a n jle .L4 # pokud j >= n ukonci vnitrni smycku .L9: movq p(,%rax,8), %rdx# nacti p[j] do rdx cmpq %rdx, %rcx # provnej rdx s rcx, tedy p[j] s p[m] jle .L3 # pokud p[m]<=p[j] tak skoc iteruj vnitrni smycku movq %rax, %r8 # uloz m incq %rax # j = j+1 movq %rdx, %rcx cmpq %rax, %rdi # porovnej j a n jg .L9 # pokud j < n iteruj vnitrni smycku. .L4: movq %rcx, p(,%rsi,8)# zacni prohazovat p[i] a p[m] addq $1, %rsi # i=i+1 movq %r9, p(,%r8,8) # dokonci prohazovani cmpq %rsi, %rdi # provnej i a n jne .L6 # pokud i