         . -,   (  
   +4)         .    
     ? -,  jmp 
     ,   , , 
,        . 
        , ,  
 ,  ,   ,   
,    .    ,    
MySquare()    ,   , 
,       . 
      ,   MySquare()     
  ,      
   .   , 
 ,       
 asm,     17.4. 

     17.4.  INLINE.CPP (  MySquare()   
 asm) 

    1:   #include <stdio.h> 
    2: 
    3:   int MySquare(int n); 
    4: 
    5:   main() 
    6:   { 
    7:     int i; 
    8:     int array[10]; 
    9: 
   10:     for (i = 0;  i < 10;  i++) 
   11:       array[i] = MySquare(i); 
   12:     for (i = 0;   i < 10;  i++) 
   13:        printf("array[%d] == %d\n",  i,  array[i]); 
   14:     return 0; 
   15:   } 
   16: 
   17:   //   "Function should return value" 
   18:  #pragma warn -rvl 
   19: 
   20:   int MySquare(int n) 
   21:   { 
   22:   /* 
   23:     return n * n; 
   24:   */ 
   25:    asm { 
   26:       mov ax, word ptr n 
   27:       imul bx 
   28:     } 
   29:   } 
   30: 
   31:   //     
   32:   #pragma warn +rvl 

      22-24       
.         
 . -       
    , , ,    
 80x86.          
 asm        C++. 
      25-29      . 
       .     
  (       
[+4]).         ,  ASM 
  . 
      28     ,    ( 
  )    dx ( )   ( ). 
,        
,   jmp  . 
     ,    ,    
MySquare()   return.   ,  
  ,         
#pragma warn,     18.  

    #pragma warn -rvl 

 ,   

    #pragma warn +rvl 


     17.         445 
