反对一下脑残

sb数学系小学期。。非要把O(n^3)的矩阵乘法写成这个鸟样,有意义么?还不能写O(n^{2.807})的。。。

08048690 :
 8048690:       55                      push   %ebp
 8048691:       57                      push   %edi
 8048692:       56                      push   %esi
 8048693:       53                      push   %ebx
 8048694:       83 ec 14                sub    $0x14,%esp
 8048697:       8b 35 10 9e 05 0a       mov    0xa059e10,%esi
 804869d:       85 f6                   test   %esi,%esi
 804869f:       0f 8e d9 00 00 00       jle    804877e 
 80486a5:       8b 4c 24 2c             mov    0x2c(%esp),%ecx
 80486a9:       31 ed                   xor    %ebp,%ebp
 80486ab:       8b 44 24 2c             mov    0x2c(%esp),%eax
 80486af:       8d 14 a8                lea    (%eax,%ebp,4),%edx
 80486b2:       31 c0                   xor    %eax,%eax
 80486b4:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
 80486b8:       8b 1c 81                mov    (%ecx,%eax,4),%ebx
 80486bb:       8b 3a                   mov    (%edx),%edi
 80486bd:       89 3c 81                mov    %edi,(%ecx,%eax,4)
 80486c0:       89 1a                   mov    %ebx,(%edx)
 80486c2:       40                      inc    %eax
 80486c3:       81 c2 08 20 00 00       add    $0x2008,%edx
 80486c9:       39 f0                   cmp    %esi,%eax
 80486cb:       7c eb                   jl     80486b8 
 80486cd:       45                      inc    %ebp
 80486ce:       81 c1 08 20 00 00       add    $0x2008,%ecx
 80486d4:       39 f5                   cmp    %esi,%ebp
 80486d6:       7c d3                   jl     80486ab 
 80486d8:       8b 54 24 28             mov    0x28(%esp),%edx
 80486dc:       a1 10 9e 05 0a          mov    0xa059e10,%eax
 80486e1:       89 54 24 08             mov    %edx,0x8(%esp)
 80486e5:       89 44 24 04             mov    %eax,0x4(%esp)
 80486e9:       8b 54 24 30             mov    0x30(%esp),%edx
 80486ed:       c7 44 24 10 00 00 00    movl   $0x0,0x10(%esp)
 80486f4:       00 
 80486f5:       89 54 24 0c             mov    %edx,0xc(%esp)
 80486f9:       85 f6                   test   %esi,%esi
 80486fb:       0f 8e 0b 01 00 00       jle    804880c 
 8048701:       8b 6c 24 2c             mov    0x2c(%esp),%ebp
 8048705:       c7 04 24 00 00 00 00    movl   $0x0,(%esp)
 804870c:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
 8048710:       31 ff                   xor    %edi,%edi
 8048712:       85 f6                   test   %esi,%esi
 8048714:       7e 44                   jle    804875a 
 8048716:       89 f1                   mov    %esi,%ecx
 8048718:       c1 e9 02                shr    $0x2,%ecx
 804871b:       83 fe 04                cmp    $0x4,%esi
 804871e:       8d 1c 8d 00 00 00 00    lea    0x0(,%ecx,4),%ebx
 8048725:       77 69                   ja     8048790 
 8048727:       31 ff                   xor    %edi,%edi
 8048729:       31 d2                   xor    %edx,%edx
 804872b:       90                      nop    
 804872c:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
 8048730:       8d 0c 95 00 00 00 00    lea    0x0(,%edx,4),%ecx
 8048737:       8b 5c 24 08             mov    0x8(%esp),%ebx
 804873b:       01 cb                   add    %ecx,%ebx
 804873d:       8d 4c 0d 00             lea    0x0(%ebp,%ecx,1),%ecx
 8048741:       8d b4 26 00 00 00 00    lea    0x0(%esi,%eiz,1),%esi
 8048748:       8b 01                   mov    (%ecx),%eax
 804874a:       42                      inc    %edx
 804874b:       0f af 03                imul   (%ebx),%eax
 804874e:       83 c1 04                add    $0x4,%ecx
 8048751:       01 c7                   add    %eax,%edi
 8048753:       83 c3 04                add    $0x4,%ebx
 8048756:       39 d6                   cmp    %edx,%esi
 8048758:       7f ee                   jg     8048748 
 804875a:       8b 04 24                mov    (%esp),%eax
 804875d:       8b 54 24 0c             mov    0xc(%esp),%edx
 8048761:       89 3c 82                mov    %edi,(%edx,%eax,4)
 8048764:       40                      inc    %eax
 8048765:       89 04 24                mov    %eax,(%esp)
 8048768:       39 44 24 04             cmp    %eax,0x4(%esp)
 804876c:       0f 8e 96 00 00 00       jle    8048808 
 8048772:       81 c5 08 20 00 00       add    $0x2008,%ebp
 8048778:       8b 74 24 04             mov    0x4(%esp),%esi
 804877c:       eb 92                   jmp    8048710 
 804877e:       83 c4 14                add    $0x14,%esp
 8048781:       5b                      pop    %ebx
 8048782:       5e                      pop    %esi
 8048783:       5f                      pop    %edi
 8048784:       5d                      pop    %ebp
 8048785:       c3                      ret    
 8048786:       8d 76 00                lea    0x0(%esi),%esi
 8048789:       8d bc 27 00 00 00 00    lea    0x0(%edi,%eiz,1),%edi
 8048790:       85 db                   test   %ebx,%ebx
 8048792:       74 93                   je     8048727 
 8048794:       31 c0                   xor    %eax,%eax
 8048796:       31 d2                   xor    %edx,%edx
 8048798:       66 0f ef d2             pxor   %xmm2,%xmm2
 804879c:       8b 7c 24 08             mov    0x8(%esp),%edi
 80487a0:       f3 0f 6f 4c 05 00       movdqu 0x0(%ebp,%eax,1),%xmm1
 80487a6:       f3 0f 6f 04 07          movdqu (%edi,%eax,1),%xmm0
 80487ab:       66 0f 6f d9             movdqa %xmm1,%xmm3
 80487af:       42                      inc    %edx
 80487b0:       66 0f f4 d8             pmuludq %xmm0,%xmm3
 80487b4:       66 0f 73 d9 04          psrldq $0x4,%xmm1
 80487b9:       66 0f 73 d8 04          psrldq $0x4,%xmm0
 80487be:       83 c0 10                add    $0x10,%eax
 80487c1:       66 0f f4 c8             pmuludq %xmm0,%xmm1
 80487c5:       39 ca                   cmp    %ecx,%edx
 80487c7:       66 0f 70 c3 08          pshufd $0x8,%xmm3,%xmm0
 80487cc:       66 0f 70 c9 08          pshufd $0x8,%xmm1,%xmm1
 80487d1:       66 0f 62 c1             punpckldq %xmm1,%xmm0
 80487d5:       66 0f fe d0             paddd  %xmm0,%xmm2
 80487d9:       72 c5                   jb     80487a0 
 80487db:       66 0f 6f c2             movdqa %xmm2,%xmm0
 80487df:       89 da                   mov    %ebx,%edx
 80487e1:       66 0f 73 d8 08          psrldq $0x8,%xmm0
 80487e6:       39 f3                   cmp    %esi,%ebx
 80487e8:       66 0f fe d0             paddd  %xmm0,%xmm2
 80487ec:       66 0f 6f c2             movdqa %xmm2,%xmm0
 80487f0:       66 0f 73 d8 04          psrldq $0x4,%xmm0
 80487f5:       66 0f fe d0             paddd  %xmm0,%xmm2
 80487f9:       66 0f 7e d7             movd   %xmm2,%edi
 80487fd:       0f 85 2d ff ff ff       jne    8048730 
 8048803:       e9 52 ff ff ff          jmp    804875a 
 8048808:       8b 74 24 04             mov    0x4(%esp),%esi
 804880c:       ff 44 24 10             incl   0x10(%esp)
 8048810:       81 44 24 0c 08 20 00    addl   $0x2008,0xc(%esp)
 8048817:       00 
 8048818:       39 74 24 10             cmp    %esi,0x10(%esp)
 804881c:       0f 8d 5c ff ff ff       jge    804877e 
 8048822:       81 44 24 08 08 20 00    addl   $0x2008,0x8(%esp)
 8048829:       00 
 804882a:       e9 ca fe ff ff          jmp    80486f9 
 804882f:       90                      nop    

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

%d 博主赞过: