Advertisement
homer512

Assembler for coding challenge

May 8th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         .file   "horror1.c"
  2.         .section        .rodata.str1.1,"aMS",@progbits,1
  3. .LC0:
  4.         .string "Fizz"
  5. .LC1:
  6.         .string "Buzz"
  7. .LC2:
  8.         .string "%d"
  9. .LC3:
  10.         .string "\n"
  11.         .section        .text.startup,"ax",@progbits
  12.         .p2align 4,,15
  13.         .globl  main
  14.         .type   main, @function
  15. main:
  16. .LFB13:
  17.         .cfi_startproc
  18.         pushq   %r13
  19.         .cfi_def_cfa_offset 16
  20.         .cfi_offset 13, -16
  21.         movl    $1, %r13d
  22.         pushq   %r12
  23.         .cfi_def_cfa_offset 24
  24.         .cfi_offset 12, -24
  25.         pushq   %rbp
  26.         .cfi_def_cfa_offset 32
  27.         .cfi_offset 6, -32
  28.         movl    $103, %ebp
  29.         pushq   %rbx
  30.         .cfi_def_cfa_offset 40
  31.         .cfi_offset 3, -40
  32.         movl    $1, %ebx
  33.         subq    $8, %rsp
  34.         .cfi_def_cfa_offset 48
  35.         jmp     .L2
  36.         .p2align 4,,10
  37.         .p2align 3
  38. .L4:
  39.         testb   %r13b, %r13b
  40.         je      .L5
  41.         testb   %r12b, %r12b
  42.         jne     .L8
  43. .L5:
  44.         xorl    %eax, %eax
  45.         movl    $.LC3, %esi
  46.         movl    $1, %edi
  47.         call    __printf_chk
  48.         cmpl    $100, %ebx
  49.         leal    1(%rbx), %edx
  50.         je      .L9
  51.         movl    $86, %r13d
  52.         movl    %edx, %eax
  53.         imulb   %r13b
  54.         movl    %eax, %r13d
  55.         movl    %edx, %eax
  56.         shrw    $8, %r13w
  57.         sarb    $7, %al
  58.         subb    %al, %r13b
  59.         leal    0(%r13,%r13,2), %r13d
  60.         subb    %r13b, %dl
  61.         movl    %edx, %r13d
  62.         je      .L10
  63. .L3:
  64.         addl    $1, %ebx
  65. .L2:
  66.         movl    %ebx, %eax
  67.         movl    %ebx, %edx
  68.         imulb   %bpl
  69.         shrw    $8, %ax
  70.         sarb    %al
  71.         movl    %eax, %r12d
  72.         movl    %ebx, %eax
  73.         sarb    $7, %al
  74.         subb    %al, %r12b
  75.         leal    (%r12,%r12,4), %r12d
  76.         subb    %r12b, %dl
  77.         movl    %edx, %r12d
  78.         jne     .L4
  79.         movl    $.LC1, %esi
  80.         movl    $1, %edi
  81.         xorl    %eax, %eax
  82.         call    __printf_chk
  83.         jmp     .L4
  84.         .p2align 4,,10
  85.         .p2align 3
  86. .L10:
  87.         movl    $.LC0, %esi
  88.         movl    $1, %edi
  89.         xorl    %eax, %eax
  90.         call    __printf_chk
  91.         jmp     .L3
  92.         .p2align 4,,10
  93.         .p2align 3
  94. .L8:
  95.         movl    %ebx, %edx
  96.         movl    $.LC2, %esi
  97.         movl    $1, %edi
  98.         xorl    %eax, %eax
  99.         call    __printf_chk
  100.         jmp     .L5
  101.         .p2align 4,,10
  102.         .p2align 3
  103. .L9:
  104.         addq    $8, %rsp
  105.         .cfi_def_cfa_offset 40
  106.         popq    %rbx
  107.         .cfi_def_cfa_offset 32
  108.         popq    %rbp
  109.         .cfi_def_cfa_offset 24
  110.         popq    %r12
  111.         .cfi_def_cfa_offset 16
  112.         popq    %r13
  113.         .cfi_def_cfa_offset 8
  114.         ret
  115.         .cfi_endproc
  116. .LFE13:
  117.         .size   main, .-main
  118.         .ident  "GCC: (Gentoo 4.6.3 p1.11, pie-0.5.2) 4.6.3"
  119.         .section        .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement