Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

はじめてのひき - FizzBuzzAsm_x86 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! Version

% gcc -m32 -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.3-5' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.3 (Debian 4.3.3-5)

! Optimized


fizzbuzz.o:     file format elf32-i386


Disassembly of section .text:

00000000 <main>:
    0: 8d 4c 24 04           lea    0x4(%esp),%ecx
    4: 83 e4 f0             and    $0xfffffff0,%esp
    7: ff 71 fc             pushl  -0x4(%ecx)
    a: 55                   push   %ebp
    b: 89 e5                 mov    %esp,%ebp
    d: 57                   push   %edi
    e: 56                   push   %esi
    f: 53                   push   %ebx
   10: 51                   push   %ecx
   11: 83 ec 08             sub    $0x8,%esp
   14: bb 01 00 00 00       mov    $0x1,%ebx
   19: be 89 88 88 88       mov    $0x88888889,%esi
   1e: bf 67 66 66 66       mov    $0x66666667,%edi
   23: 89 d8                 mov    %ebx,%eax
   25: f7 ee                 imul   %esi
   27: 01 da                 add    %ebx,%edx
   29: c1 fa 03             sar    $0x3,%edx
   2c: 89 d8                 mov    %ebx,%eax
   2e: c1 f8 1f             sar    $0x1f,%eax
   31: 29 c2                 sub    %eax,%edx
   33: 89 d0                 mov    %edx,%eax
   35: c1 e0 04             shl    $0x4,%eax
   38: 29 d0                 sub    %edx,%eax
   3a: 39 c3                 cmp    %eax,%ebx
   3c: 75 0e                 jne    4c <main+0x4c>
   3e: c7 04 24 00 00 00 00 movl   $0x0,(%esp)
41: R_386_32 .rodata.str1.1
   45: e8 fc ff ff ff       call   46 <main+0x46>
46: R_386_PC32 puts
   4a: eb 57                 jmp    a3 <main+0xa3>
   4c: 89 d8                 mov    %ebx,%eax
   4e: f7 ef                 imul   %edi
   50: d1 fa                 sar    %edx
   52: 89 d8                 mov    %ebx,%eax
   54: c1 f8 1f             sar    $0x1f,%eax
   57: 29 c2                 sub    %eax,%edx
   59: 8d 14 92             lea    (%edx,%edx,4),%edx
   5c: 39 d3                 cmp    %edx,%ebx
   5e: 75 0e                 jne    6e <main+0x6e>
   60: c7 04 24 09 00 00 00 movl   $0x9,(%esp)
63: R_386_32 .rodata.str1.1
   67: e8 fc ff ff ff       call   68 <main+0x68>
68: R_386_PC32 puts
   6c: eb 35                 jmp    a3 <main+0xa3>
   6e: ba 56 55 55 55       mov    $0x55555556,%edx
   73: 89 d8                 mov    %ebx,%eax
   75: f7 ea                 imul   %edx
   77: 89 d8                 mov    %ebx,%eax
   79: c1 f8 1f             sar    $0x1f,%eax
   7c: 29 c2                 sub    %eax,%edx
   7e: 8d 14 52             lea    (%edx,%edx,2),%edx
   81: 39 d3                 cmp    %edx,%ebx
   83: 75 0e                 jne    93 <main+0x93>
   85: c7 04 24 0e 00 00 00 movl   $0xe,(%esp)
88: R_386_32 .rodata.str1.1
   8c: e8 fc ff ff ff       call   8d <main+0x8d>
8d: R_386_PC32 puts
   91: eb 10                 jmp    a3 <main+0xa3>
   93: 89 5c 24 04           mov    %ebx,0x4(%esp)
   97: c7 04 24 13 00 00 00 movl   $0x13,(%esp)
9a: R_386_32 .rodata.str1.1
   9e: e8 fc ff ff ff       call   9f <main+0x9f>
9f: R_386_PC32 printf
   a3: 83 c3 01             add    $0x1,%ebx
   a6: 83 fb 65             cmp    $0x65,%ebx
   a9: 0f 85 74 ff ff ff     jne    23 <main+0x23>
   af: 83 c4 08             add    $0x8,%esp
   b2: 59                   pop    %ecx
   b3: 5b                   pop    %ebx
   b4: 5e                   pop    %esi
   b5: 5f                   pop    %edi
   b6: 5d                   pop    %ebp
   b7: 8d 61 fc             lea    -0x4(%ecx),%esp
   ba: c3                   ret    

! Normal


fizzbuzz.o:     file format elf32-i386


Disassembly of section .text:

00000000 <main>:
    0: 8d 4c 24 04           lea    0x4(%esp),%ecx
    4: 83 e4 f0             and    $0xfffffff0,%esp
    7: ff 71 fc             pushl  -0x4(%ecx)
    a: 55                   push   %ebp
    b: 89 e5                 mov    %esp,%ebp
    d: 53                   push   %ebx
    e: 51                   push   %ecx
    f: 83 ec 30             sub    $0x30,%esp
   12: c7 45 f4 01 00 00 00 movl   $0x1,-0xc(%ebp)
   19: e9 e8 00 00 00       jmp    106 <main+0x106>
   1e: 8b 4d f4             mov    -0xc(%ebp),%ecx
   21: c7 45 d4 89 88 88 88 movl   $0x88888889,-0x2c(%ebp)
   28: 8b 45 d4             mov    -0x2c(%ebp),%eax
   2b: f7 e9                 imul   %ecx
   2d: 8d 04 0a             lea    (%edx,%ecx,1),%eax
   30: 89 c2                 mov    %eax,%edx
   32: c1 fa 03             sar    $0x3,%edx
   35: 89 c8                 mov    %ecx,%eax
   37: c1 f8 1f             sar    $0x1f,%eax
   3a: 89 d3                 mov    %edx,%ebx
   3c: 29 c3                 sub    %eax,%ebx
   3e: 89 5d dc             mov    %ebx,-0x24(%ebp)
   41: 8b 45 dc             mov    -0x24(%ebp),%eax
   44: c1 e0 04             shl    $0x4,%eax
   47: 2b 45 dc             sub    -0x24(%ebp),%eax
   4a: 89 ca                 mov    %ecx,%edx
   4c: 29 c2                 sub    %eax,%edx
   4e: 89 55 dc             mov    %edx,-0x24(%ebp)
   51: 83 7d dc 00           cmpl   $0x0,-0x24(%ebp)
   55: 75 11                 jne    68 <main+0x68>
   57: c7 04 24 00 00 00 00 movl   $0x0,(%esp)
5a: R_386_32 .rodata
   5e: e8 fc ff ff ff       call   5f <main+0x5f>
5f: R_386_PC32 puts
   63: e9 9a 00 00 00       jmp    102 <main+0x102>
   68: 8b 4d f4             mov    -0xc(%ebp),%ecx
   6b: c7 45 d4 67 66 66 66 movl   $0x66666667,-0x2c(%ebp)
   72: 8b 45 d4             mov    -0x2c(%ebp),%eax
   75: f7 e9                 imul   %ecx
   77: d1 fa                 sar    %edx
   79: 89 c8                 mov    %ecx,%eax
   7b: c1 f8 1f             sar    $0x1f,%eax
   7e: 89 d3                 mov    %edx,%ebx
   80: 29 c3                 sub    %eax,%ebx
   82: 89 5d e0             mov    %ebx,-0x20(%ebp)
   85: 8b 45 e0             mov    -0x20(%ebp),%eax
   88: c1 e0 02             shl    $0x2,%eax
   8b: 03 45 e0             add    -0x20(%ebp),%eax
   8e: 89 ca                 mov    %ecx,%edx
   90: 29 c2                 sub    %eax,%edx
   92: 89 55 e0             mov    %edx,-0x20(%ebp)
   95: 83 7d e0 00           cmpl   $0x0,-0x20(%ebp)
   99: 75 0e                 jne    a9 <main+0xa9>
   9b: c7 04 24 09 00 00 00 movl   $0x9,(%esp)
9e: R_386_32 .rodata
   a2: e8 fc ff ff ff       call   a3 <main+0xa3>
a3: R_386_PC32 puts
   a7: eb 59                 jmp    102 <main+0x102>
   a9: 8b 5d f4             mov    -0xc(%ebp),%ebx
   ac: 89 5d d0             mov    %ebx,-0x30(%ebp)
   af: c7 45 d4 56 55 55 55 movl   $0x55555556,-0x2c(%ebp)
   b6: 8b 45 d4             mov    -0x2c(%ebp),%eax
   b9: f7 6d d0             imull  -0x30(%ebp)
   bc: 89 d1                 mov    %edx,%ecx
   be: 8b 45 d0             mov    -0x30(%ebp),%eax
   c1: c1 f8 1f             sar    $0x1f,%eax
   c4: 89 cb                 mov    %ecx,%ebx
   c6: 29 c3                 sub    %eax,%ebx
   c8: 89 5d e4             mov    %ebx,-0x1c(%ebp)
   cb: 8b 45 e4             mov    -0x1c(%ebp),%eax
   ce: 01 c0                 add    %eax,%eax
   d0: 03 45 e4             add    -0x1c(%ebp),%eax
   d3: 8b 55 d0             mov    -0x30(%ebp),%edx
   d6: 29 c2                 sub    %eax,%edx
   d8: 89 55 e4             mov    %edx,-0x1c(%ebp)
   db: 83 7d e4 00           cmpl   $0x0,-0x1c(%ebp)
   df: 75 0e                 jne    ef <main+0xef>
   e1: c7 04 24 0e 00 00 00 movl   $0xe,(%esp)
e4: R_386_32 .rodata
   e8: e8 fc ff ff ff       call   e9 <main+0xe9>
e9: R_386_PC32 puts
   ed: eb 13                 jmp    102 <main+0x102>
   ef: 8b 45 f4             mov    -0xc(%ebp),%eax
   f2: 89 44 24 04           mov    %eax,0x4(%esp)
   f6: c7 04 24 13 00 00 00 movl   $0x13,(%esp)
f9: R_386_32 .rodata
   fd: e8 fc ff ff ff       call   fe <main+0xfe>
fe: R_386_PC32 printf
  102: 83 45 f4 01           addl   $0x1,-0xc(%ebp)
  106: 83 7d f4 64           cmpl   $0x64,-0xc(%ebp)
  10a: 0f 8e 0e ff ff ff     jle    1e <main+0x1e>
  110: 83 c4 30             add    $0x30,%esp
  113: 59                   pop    %ecx
  114: 5b                   pop    %ebx
  115: 5d                   pop    %ebp
  116: 8d 61 fc             lea    -0x4(%ecx),%esp
  119: c3                   ret    
[[visite|http://telefon-internet-komplettpacket-wechseln.de/Nordrhein-Westfalen-NRW/Maerkischer-Kreis/Luedenscheid]]