Advertisement
Guest User

bubble_sort_c_export

a guest
Jan 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .file   "bubble_sort.c"
  2.     .text
  3.     .globl  bubble_sort
  4.     .def    bubble_sort;    .scl    2;  .type   32; .endef
  5.     .seh_proc   bubble_sort
  6. bubble_sort: ; initialize stack-fram / variables etc...
  7.     pushq   %rsi
  8.     .seh_pushreg    %rsi
  9.     pushq   %rbx
  10.     .seh_pushreg    %rbx
  11.     .seh_endprologue
  12.     movq    %rcx, %rsi
  13.     leal    -2(%rdx), %eax
  14.     leaq    4(%rcx,%rax,4), %r9
  15.     movl    $0, %ebx
  16.     movl    $1, %r11d
  17.     jmp .L2
  18. .L3: ; end of for loop ( i++ )
  19.     addq    $4, %rax
  20.     cmpq    %r9, %rax
  21.     je  .L8
  22. .L4: ; (for - loop)
  23.     ; for loop condition
  24.     movl    (%rax), %ecx
  25.     movl    4(%rax), %r8d
  26.     cmpl    %r8d, %ecx
  27.     jle .L3
  28.     ; swap operation
  29.     movl    %r8d, (%rax)
  30.     movl    %ecx, 4(%rax)
  31.     movl    %r11d, %r10d
  32.     jmp .L3
  33. .L8: ; exits bubble_sort ---goes to--> L1
  34.     testl   %r10d, %r10d
  35.     je  .L1
  36. .L2: ; while-loop
  37.     cmpl    $1, %edx ; swapped == true?
  38.     jle .L1
  39.     movq    %rsi, %rax ; mov swapped, 0
  40.     movl    %ebx, %r10d
  41.     jmp .L4
  42. .L1: ; back to main
  43.     popq    %rbx
  44.     popq    %rsi
  45.     ret
  46.     .seh_endproc
  47.     .def    __main; .scl    2;  .type   32; .endef
  48.     .globl  main
  49.     .def    main;   .scl    2;  .type   32; .endef
  50.     .seh_proc   main
  51. main:
  52.     subq    $72, %rsp
  53.     .seh_stackalloc 72
  54.     .seh_endprologue
  55.     call    __main
  56.     movl    $5, 32(%rsp)
  57.     movl    $3, 36(%rsp)
  58.     movl    $2, 40(%rsp)
  59.     movl    $65, 44(%rsp)
  60.     movl    $3, 48(%rsp)
  61.     movl    $21, 52(%rsp)
  62.     movl    $-15, 56(%rsp)
  63.     movl    $3, 60(%rsp)
  64.     leaq    32(%rsp), %rcx
  65.     movl    $8, %edx
  66.     call    bubble_sort
  67.     movl    $0, %eax
  68.     addq    $72, %rsp
  69.     ret
  70.     .seh_endproc
  71.     .ident  "GCC: (Rev1, Built by MSYS2 project) 7.2.0"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement