This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Oct 23rd, 2013  |  syntax: None  |  size: 5.53 KB  |  views: 50  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Disassembly of section .text:
  2.  
  3. 0000000000400410 <main>:
  4. #include <math.h>
  5. #include <stdio.h>
  6.  
  7. int main(int argc, char **argv) {
  8.   400410:       41 56                   push   %r14
  9.   400412:       41 55                   push   %r13
  10.   400414:       41 54                   push   %r12
  11.   400416:       55                      push   %rbp
  12.   400417:       53                      push   %rbx
  13.   400418:       48 83 ec 20             sub    $0x20,%rsp
  14.   40041c:       45 31 ed                xor    %r13d,%r13d
  15.   40041f:       4d 89 ee                mov    %r13,%r14
  16.   400422:       66 49 0f 6e c5          movq   %r13,%xmm0
  17.   for (int i = 0; i < 10000; i++) {
  18.   400427:       31 db                   xor    %ebx,%ebx
  19.   400429:       48 bd 9a 99 99 99 99    movabs $0x3fc999999999999a,%rbp
  20.   400430:       99 c9 3f
  21. #include <math.h>
  22. #include <stdio.h>
  23.  
  24. int main(int argc, char **argv) {
  25.   400433:       49 bc 00 00 00 00 00    movabs $0x4330000000000000,%r12
  26.   40043a:       00 30 43
  27.   40043d:       f2 0f 10 15 2b 03 00    movsd  0x32b(%rip),%xmm2        # 400770 <_IO_stdin_used+0x40>
  28.   400444:       00
  29.   400445:       e9 c4 00 00 00          jmpq   40050e <main+0xfe>
  30.   40044a:       f2 0f 2a cb             cvtsi2sd %ebx,%xmm1
  31.   40044e:       66 48 0f 6e c5          movq   %rbp,%xmm0
  32.   400453:       f2 0f 59 c8             mulsd  %xmm0,%xmm1
  33.   400457:       66 0f 28 c1             movapd %xmm1,%xmm0
  34.   40045b:       66 0f 28 d9             movapd %xmm1,%xmm3
  35.   40045f:       66 0f 54 da             andpd  %xmm2,%xmm3
  36.   400463:       66 49 0f 6e e4          movq   %r12,%xmm4
  37.   400468:       66 0f 2e e3             ucomisd %xmm3,%xmm4
  38.   40046c:       76 23                   jbe    400491 <main+0x81>
  39.   40046e:       f2 48 0f 2c c1          cvttsd2si %xmm1,%rax
  40.   400473:       f2 48 0f 2a d8          cvtsi2sd %rax,%xmm3
  41.   400478:       f2 0f 10 05 00 03 00    movsd  0x300(%rip),%xmm0        # 400780 <_IO_stdin_used+0x50>
  42.   40047f:       00
  43.   400480:       66 0f 28 e1             movapd %xmm1,%xmm4
  44.   400484:       f2 0f c2 e3 06          cmpnlesd %xmm3,%xmm4
  45.   400489:       66 0f 54 c4             andpd  %xmm4,%xmm0
  46.   40048d:       f2 0f 58 c3             addsd  %xmm3,%xmm0
  47.   400491:       66 0f 28 e1             movapd %xmm1,%xmm4
  48.   400495:       66 0f 28 d9             movapd %xmm1,%xmm3
  49.   400499:       66 0f 54 da             andpd  %xmm2,%xmm3
  50.   40049d:       66 49 0f 6e ec          movq   %r12,%xmm5
  51.   4004a2:       66 0f 2e eb             ucomisd %xmm3,%xmm5
  52.   4004a6:       76 27                   jbe    4004cf <main+0xbf>
  53.   4004a8:       f2 48 0f 2c c1          cvttsd2si %xmm1,%rax
  54.   4004ad:       f2 48 0f 2a d8          cvtsi2sd %rax,%xmm3
  55.   4004b2:       66 0f 28 e3             movapd %xmm3,%xmm4
  56.   4004b6:       f2 0f c2 e1 06          cmpnlesd %xmm1,%xmm4
  57.   4004bb:       f2 0f 10 2d bd 02 00    movsd  0x2bd(%rip),%xmm5        # 400780 <_IO_stdin_used+0x50>
  58.   4004c2:       00
  59.   4004c3:       66 0f 54 e5             andpd  %xmm5,%xmm4
  60.   4004c7:       f2 0f 5c dc             subsd  %xmm4,%xmm3
  61.   4004cb:       66 0f 28 e3             movapd %xmm3,%xmm4
  62.   4004cf:       66 49 0f 7e e6          movq   %xmm4,%r14
  63.   4004d4:       66 0f 28 d9             movapd %xmm1,%xmm3
  64.   4004d8:       66 0f 54 da             andpd  %xmm2,%xmm3
  65.   4004dc:       66 49 0f 6e e4          movq   %r12,%xmm4
  66.   4004e1:       66 0f 2e e3             ucomisd %xmm3,%xmm4
  67.   4004e5:       76 22                   jbe    400509 <main+0xf9>
  68.   4004e7:       f2 0f 58 1d 99 02 00    addsd  0x299(%rip),%xmm3        # 400788 <_IO_stdin_used+0x58>
  69.   4004ee:       00
  70.   4004ef:       f2 48 0f 2c c3          cvttsd2si %xmm3,%rax
  71.   4004f4:       f2 48 0f 2a d8          cvtsi2sd %rax,%xmm3
  72.   4004f9:       66 0f 28 ea             movapd %xmm2,%xmm5
  73.   4004fd:       66 0f 55 e9             andnpd %xmm1,%xmm5
  74.   400501:       66 0f 28 cd             movapd %xmm5,%xmm1
  75.   400505:       66 0f 56 cb             orpd   %xmm3,%xmm1
  76.   400509:       66 49 0f 7e cd          movq   %xmm1,%r13
  77.   for (int i = 0; i < 10000; i++) {
  78.     double y = (double)i / 5;
  79.     printf("==== %d/5 = %f ====\n");
  80.   40050e:       bf 34 07 40 00          mov    $0x400734,%edi
  81.   400513:       31 c0                   xor    %eax,%eax
  82.   400515:       f2 0f 11 44 24 10       movsd  %xmm0,0x10(%rsp)
  83.   40051b:       f2 0f 11 14 24          movsd  %xmm2,(%rsp)
  84.   400520:       e8 bb fe ff ff          callq  4003e0 <printf@plt>
  85.     printf("ceil : %f", ceil(y));
  86.   400525:       f2 0f 10 44 24 10       movsd  0x10(%rsp),%xmm0
  87.   40052b:       bf 49 07 40 00          mov    $0x400749,%edi
  88.   400530:       b8 01 00 00 00          mov    $0x1,%eax
  89.   400535:       e8 a6 fe ff ff          callq  4003e0 <printf@plt>
  90.     printf(" floor : %f", floor(y));
  91.   40053a:       66 49 0f 6e c6          movq   %r14,%xmm0
  92.   40053f:       bf 53 07 40 00          mov    $0x400753,%edi
  93.   400544:       b8 01 00 00 00          mov    $0x1,%eax
  94.   400549:       e8 92 fe ff ff          callq  4003e0 <printf@plt>
  95.     printf(" round : %f\n", round(y));
  96.   40054e:       66 49 0f 6e c5          movq   %r13,%xmm0
  97.   400553:       bf 5f 07 40 00          mov    $0x40075f,%edi
  98.   400558:       b8 01 00 00 00          mov    $0x1,%eax
  99.   40055d:       e8 7e fe ff ff          callq  4003e0 <printf@plt>
  100. #include <math.h>
  101. #include <stdio.h>
  102.  
  103. int main(int argc, char **argv) {
  104.   for (int i = 0; i < 10000; i++) {
  105.   400562:       83 c3 01                add    $0x1,%ebx
  106.   400565:       81 fb 10 27 00 00       cmp    $0x2710,%ebx
  107.   40056b:       f2 0f 10 14 24          movsd  (%rsp),%xmm2
  108.   400570:       0f 85 d4 fe ff ff       jne    40044a <main+0x3a>
  109.     printf("ceil : %f", ceil(y));
  110.     printf(" floor : %f", floor(y));
  111.     printf(" round : %f\n", round(y));
  112.   }
  113.   return 0;
  114. }
  115.   400576:       31 c0                   xor    %eax,%eax
  116.   400578:       48 83 c4 20             add    $0x20,%rsp
  117.   40057c:       5b                      pop    %rbx
  118.   40057d:       5d                      pop    %rbp
  119.   40057e:       41 5c                   pop    %r12
  120.   400580:       41 5d                   pop    %r13
  121.   400582:       41 5e                   pop    %r14
  122.   400584:       c3                      retq  
  123.   400585:       66 2e 0f 1f 84 00 00    nopw   %cs:0x0(%rax,%rax,1)
  124.   40058c:       00 00 00
  125.   40058f:       90                      nop
clone this paste RAW Paste Data