Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "bubble_sort.c"
- .text
- .globl bubble_sort
- .def bubble_sort; .scl 2; .type 32; .endef
- .seh_proc bubble_sort
- bubble_sort: ; initialize stack-fram / variables etc...
- pushq %rsi
- .seh_pushreg %rsi
- pushq %rbx
- .seh_pushreg %rbx
- .seh_endprologue
- movq %rcx, %rsi
- leal -2(%rdx), %eax
- leaq 4(%rcx,%rax,4), %r9
- movl $0, %ebx
- movl $1, %r11d
- jmp .L2
- .L3: ; end of for loop ( i++ )
- addq $4, %rax
- cmpq %r9, %rax
- je .L8
- .L4: ; (for - loop)
- ; for loop condition
- movl (%rax), %ecx
- movl 4(%rax), %r8d
- cmpl %r8d, %ecx
- jle .L3
- ; swap operation
- movl %r8d, (%rax)
- movl %ecx, 4(%rax)
- movl %r11d, %r10d
- jmp .L3
- .L8: ; exits bubble_sort ---goes to--> L1
- testl %r10d, %r10d
- je .L1
- .L2: ; while-loop
- cmpl $1, %edx ; swapped == true?
- jle .L1
- movq %rsi, %rax ; mov swapped, 0
- movl %ebx, %r10d
- jmp .L4
- .L1: ; back to main
- popq %rbx
- popq %rsi
- ret
- .seh_endproc
- .def __main; .scl 2; .type 32; .endef
- .globl main
- .def main; .scl 2; .type 32; .endef
- .seh_proc main
- main:
- subq $72, %rsp
- .seh_stackalloc 72
- .seh_endprologue
- call __main
- movl $5, 32(%rsp)
- movl $3, 36(%rsp)
- movl $2, 40(%rsp)
- movl $65, 44(%rsp)
- movl $3, 48(%rsp)
- movl $21, 52(%rsp)
- movl $-15, 56(%rsp)
- movl $3, 60(%rsp)
- leaq 32(%rsp), %rcx
- movl $8, %edx
- call bubble_sort
- movl $0, %eax
- addq $72, %rsp
- ret
- .seh_endproc
- .ident "GCC: (Rev1, Built by MSYS2 project) 7.2.0"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement