[25385] 2016-08-17_GCC内联汇编HOWTO

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2016-08-17_GCC内联汇编HOWTO G C C     H O W T O   c p o s t u r e   L i n u x   2 0 1 6 - 0 8 - 1 7 v 0 . 1 ,   0 1   M a r c h   2 0 0 3 .   H O W T O     G C C     x 8 6     C   1 .   1 . 1   C o p y r i g h t   ( C )   2 0 0 3   S a n d e e p   S . /   G N U     2 G N U   1 . 2     S a n d e e p . S [ 1 ]   1 . 3     G N U     M r . P r a m o d e   C   E     G o v t   E n g i n e e r i n g   C o l l e g e     T r i c h u r     N i s h a   K u r u r     S a k e e b   S       G v o t   E n g i n e e r i n g   C o l l e g e     T r i c h u r     P h i l l i p   ,   B r e n n a n   U n d e r w o o d     c o l i n @ n y x . n e t [ 2 ]   西 2 .  
  G C C   i n l i n e 使     便 G C C 使   使   C     " a s m "     C 3 .   G C C   L i n u x   G N U   C     G C C   使   A T & T   /   U N I X   使   A T & T       A T & T   A T & T     I n t e l   1 .   A T & T     I n t e l   I n t e l   A T & T   I n t e l         A T & T     2 .       使     3 .   A T & T         " C "   使       I n t e l     i n l i n e a s m O p - c o d e   d s t   s r c O p - c o d e   s r c   d s t % e a x % e a x $ $ h
    A T & T   使       4 .     A T & T     b   w l   b y t e 8 w o r d 1 6 l o n g 3 2 I n t e l             I n t e l       A T & T     5 .     I n t e l             A T & T           I n t e l       A T & T     d i s p     s c a l e       I n t e l     A T & T     G N U   0 x $ 0 x b y t e   p t r w o r d   p t r d w o r d   p t r m o v   a l ,   b y t e   p t r   f o o m o v b   f o o ,   % a l [ ] ( ) s e c t i o n : [ b a s e   +   i n d e x * s c a l e   +   d i s p ] s e c t i o n : d i s p ( b a s e ,   i n d e x ,   s c a l e ) $ 1 .   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 2 .   |               I n t e l   C o d e                           |             A T & T   C o d e                                           | 3 .   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 4 .   |   m o v           e a x , 1                                 |     m o v l         $ 1 , % e a x                                       |      
4 .   使           使     n     t     g c c     a s G A S L C T T     G A S     G N U   使 / 5 .   |   m o v           e b x , 0 f f h                           |     m o v l         $ 0 x f f , % e b x                                 |       6 .   |   i n t           8 0 h                                     |     i n t           $ 0 x 8 0                                           |       7 .   |   m o v           e b x ,   e a x                           |     m o v l         % e a x ,   % e b x                                 | 8 .   |   m o v           e a x , [ e c x ]                         |     m o v l         ( % e c x ) , % e a x                               | 9 .   |   m o v           e a x , [ e b x + 3 ]                     |     m o v l         3 ( % e b x ) , % e a x                             |   1 0 .   |   m o v           e a x , [ e b x + 2 0 h ]                 |     m o v l         0 x 2 0 ( % e b x ) , % e a x                       | 1 1 .   |   a d d           e a x , [ e b x + e c x * 2 h ]           |     a d d l         ( % e b x , % e c x , 0 x 2 ) , % e a x             | 1 2 .   |   l e a           e a x , [ e b x + e c x ]                 |     l e a l         ( % e b x , % e c x ) , % e a x                     | 1 3 .   |   s u b           e a x , [ e b x + e c x * 4 h - 2 0 h ]   |     s u b l         - 0 x 2 0 ( % e b x , % e c x , 0 x 4 ) , % e a x   | 1 4 .   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + a s m ( " " ) ; 1 .   a s m ( " m o v l   % e c x   % e a x " ) ;   / *     e c x     e a x     * / 2 .   _ _ a s m _ _ ( " m o v b   % b h   ( % e a x ) " ) ;   / *     b h       e a x     * / a s m _ _ a s m _ _ a s m _ _ a s m _ _ 1 .   _ _ a s m _ _   ( " m o v l   % e a x ,   % e b x n t " 2 .                     " m o v l   $ 5 6 ,   % e s i n t " 3 .                     " m o v l   % e c x ,   $ l a b e l ( % e d x , % e b x , $ 4 ) n t "
  G C C     G C C     G C C L C T T   G C C 退 使 退 5 .   G C C   使   G C C     G C C     C     1 0   4 .                     " m o v b   % a h ,   ( % e b x ) " ) ; 1 .   a s m   (     2 .           :                                         / *     * / 3 .           :                                       / *     * / 4 .           :                             / *     * / 5 .           ) ; 1 .   a s m   ( " c l d n t " 2 .             " r e p n t " 3 .             " s t o s l " 4 .             :   / *     * / 5 .             :   " c "   ( c o u n t ) ,   " a "   ( f i l l _ v a l u e ) ,   " D "   ( d e s t ) 6 .             :   " % e c x " ,   " % e d i "   7 .             ) ;
            L C T T     s t o s l     e d i     d i r e c t i o n       g c c           L C T T     e a x     e c x 使 使   b     a   " b "     % 0     " a "     % 1   " r "   " r "     G C C   使   " = "     %     G C C     %     % e a x     G C C   % e a x     " a s m "     G C C   使   a s m     " b "     a s m     " b "     a s m 5 . 1     C   f i l l _ v a l u e c o u n t e d i e c x e d i 1 .   i n t   a = 1 0 ,   b ; 2 .   a s m   ( " m o v l   % 1 ,   % % e a x ;   3 .               m o v l   % % e a x ,   % 0 ; " 4 .             : " = r " ( b )                 / *     * / 5 .             : " r " ( a )                   / *     * / 6 .             : " % e a x "                   / *     * / 7 .             ) ;               n ;
  使 L C T T     C   使   % 0 % 1   . . .   5 . 2   C     a s m     C   C   使 使   n     0     n   -   1     ; - ) G C C   使   G C C   - - 5 使       x 使   G C C     G C C   使 - ; n t l e a 1 .   a s m   ( " l e a l   ( % 1 , % 1 , 4 ) ,   % 0 " 2 .             :   " = r "   ( f i v e _ t i m e s _ x ) 3 .             :   " r "   ( x )   4 .             ) ; 1 .   a s m   ( " l e a l   ( % 0 , % 0 , 4 ) ,   % 0 " 2 .             :   " = r "   ( f i v e _ t i m e s _ x ) 3 .             :   " 0 "   ( x )   4 .             ) ;
  G C C     ' e c x '   L C T T     g c c     x     5 . 3     :     g c c   使   g c c     g c c     a s m   使 使 c c   " c c "     " m e m o r y "   使   G C C     v o l a t i l e     _ f o o         4 .             ) ; 1 .   a s m   ( " l e a l   ( % % e c x , % % e c x , 4 ) ,   % % e c x " 2 .             :   " = c "   ( x ) 3 .             :   " c "   ( x )   4 .             ) ; e c x e a x e c x 1 .   a s m   ( " m o v l   % 0 , % % e a x ; 2 .               m o v l   % 1 , % % e c x ; 3 .               c a l l   _ f o o " 4 .             :   / *   n o   o u t p u t s   * / 5 .             :   " g "   ( f r o m ) ,   " g "   ( t o ) 6 .             :   " e a x " ,   " e c x "
5 . 4   V o l a t i l e   . . . ?                             a s m   ( )   使   使     使       g c c   使 6 .   6 . 1   1 .   r 使 G P R 7 .             ) ; v o l a t i l e _ _ v o l a t i l e _ _ a s m _ _ a s m _ _ a s m _ _ a s m _ _ v o l a t i l e v o l a t i l e a s m   v o l a t i l e   (   . . .   :   . . .   :   . . .   :   . . . ) ; _ _ v o l a t i l e _ _ v o l a t i l e v o l a t i l e a s m   ( " m o v l   % % e a x ,   % 0 n "   : " = r " ( m y v a l ) ) ;
  m y v a l     e a x     m y v a l     " r "     g c c     G P R   使   + - - - + - - - - - - - - - - - - - - - - - - - - +   |   r   |         R e g i s t e r ( s )           |   + - - - + - - - - - - - - - - - - - - - - - - - - +   |   a   |       % e a x ,   % a x ,   % a l       |   |   b   |       % e b x ,   % b x ,   % b l       |   |   c   |       % e c x ,   % c x ,   % c l       |   |   d   |       % e d x ,   % d x ,   % d l       |   |   S   |       % e s i ,   % s i                 |   |   D   |       % e d i ,   % d i                 |   + - - - + - - - - - - - - - - - - - - - - - - - - + 2 .   m 使   a s m   C   使 使 I D T R     l o c   3 .   使   " a s m "     " % e a x "     v a r     % e a x   % e a x     v a r   " 0 "     0     v a r     " % e a x "   使 使 1 .   " m "   :   使 2 .   " o "   :   3 .   " V "   :     " m "     " o "   4 .   " i "   :   5 .   " n "   :   使   ' n '   ' i ' 6 .   " g "   :     x 8 6   1 .   " r "   :   2 .   " q "   :     a b c     d a s m   ( " m o v l   % % e a x ,   % 0 n "   : " = r " ( m y v a l ) ) ; a s m ( " s i d t   % 0 n "   :   : " m " ( l o c ) ) ; a s m   ( " i n c l   % 0 "   : " = a " ( v a r ) : " 0 " ( v a r ) ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则