 18. ᫥

18.1 ।⢠ ணࠬ஢

 ⮩   ᠭ ᫨⥫ ⥩  i486(TM)  ணࠬ⮢, ࠡ  몠 ᮪ ஢   ᥬ ASM386/486.
஢ ⠫樨 ⮩   ணࠬ⠬  ᭮ 몮,    ᯮ짮  ணࠬ஢ ᫥,   ଠ    㬥樥  ᠭ  ⥩ .  㬥 ⠢   ணࠬ த⮬.

18.2 모 ᮪ ஢

讥 ⢮ 몮 ᮪ ஢,   室 ⮬᪨ ᯮ ⢮ ᫨⥫ , ᮧ  ஢  Intel(R).  모  C-386/486  PL/M-386/486.    몮 ᮪ ஢ ⠢ ᨬ묨 ࣠ﬨ, ࠧࠡ뢠騬 ணࠬ ᯥ祭.
  몮 ᮪ ஢  ᯥ樠 ᫮ ⥪, 騥 ணࠬ ᯮ짮 ﬨ  ࠡ⪨ 権  饩 窮.  ணࠬ஢ ᫥ 権     몮  ᯮ짮 ⮣   㦭  ணࠬ .
ணࠬ, ࠡ騥  PL/M-386/486   ᥬ ASM386/486, ⠪  ᯮ짮   ணࠬ, ᮤঠ  ⥪ প 몠.  ⥪   㭪樨, ন 몠 ᮪ ஢,  ࠡ稪 ᪫祭権, ८ࠧ⥫  ASCII  ᫠  饩 窮,   ᫮ ⢮ ࠭業 㭪権, 祬  ⢮ ᫮ 権, ஥ ন  i486.

18.1.2 ணࠬ  몥 

ணࠬ, ࠡ騥  몥 ,  ᯮ짮 ⨯  double  float ⮬᪨ ᯮ  ஢ ᫮ 権 i486   몠 .  float ᮮ⢥ 筮 ⢥ ଠ; ⨯ double ᮮ⢥ ⢥ ଠ  筮.  #include <math.h> 뢠 ⥬᪨ 㭪樨, ⠪  sin, cos  祭 稭 ⨯ double. 㭮 18  ਬ ணࠬ  , 騩 ᯮ짮 ⥩  i486.

Ŀ
                                                               
     /********************************************             
     *                                           *             
     *             ਬ ணࠬ          *             
     *                                           *             
     *********************************************/            
                                                               
   /**  室  /usr/include/stdio.h  **/   
   /**  ࠭業 㭪権  math **/         
                                                               
   #include </usr/include/math.h>                              
   #define Pi 3.1415926535897943                               
                                                               
   main()                                                      
   {                                                           
     double       sin_result, cos_result;                      
     double       angle_deg = 0.0, angle_rad;                  
     int          i, no_of_trail = 4;                          
                                                               
           for ( i = 1; i <= no_of_trail; i++){                
                angle_rad = angle_deg * Pi / 180.0;            
                sin_result = sin (angle_rad);                  
                cos_result = cos(angle_result);                
     printf("ᨭ %f ࠤᮢ ࠢ %f\n",angle_deg,          
             sin_result);                                      
     printf("ᨭ %f ࠤᮢ ࠢ %f\n",angle_deg,        
             cos_result);                                      
                angle_deg = angle_deg + 30.0;                  
               }                                               
      /**  ⠪   **/                                      
   }                                                           
                                                               


 㭮 18-1. ਬ ணࠬ  몥 -386/486.

18.1.3 PL/M-386/486

ணࠬ, ࠡ騥  몥 PL/M-386/486,     祭   ⥩ i486.   REAL 몠 PL/M-386/486 ᮮ⢥ 筮 ⢥ ଠ (32 ).  ⨯    ᥫ 浪 8.43 x 10**(-37) <= X <= 3.38 x 10**(38)    ᥬ 稬  .  ।⠢ ᥫ ⢥砥  ਬ ப஢. २⢮  ᯮ짮 ⨯  REAL  ⮬,  ஬ १  ᫥ ।⠢ ஬ 몠 PL/M-386/486  ७ ⢥ ଠ.  砥,    ।⠢ ᥫ  筮  ᯮ  ஬ ᫥. ९, ⥫쭮 ९, 訡 㣫    ६ ஬ ᫥, 祬  祭 筮 १. ।⠢ ஬ १⮢  ⢥ ଠ  ७ 筮 㬥蠥 ⭮ ९, ⥫쭮 ९  ᪫砥 訡 㣫,  쥧 訡,  ⨦  ᫥.
    ࠡ⪥ ᥫ  饩 窮  ᫥ ࠦ, ᮤঠ ⨯  REAL   ६  ⠭.  砥,  ᫮, ⠭, 㬭, , ࠢ  ᢠ ᥫ ⨯ REAL ⢫ 㫥 ࠡ⪨   饩 窮.  㣮 ஭, ࠦ ⨯ INTEGER  㫥 ࠡ⪨ 楫᫥ 権.
 ஥ 楤 ( 18-1)  ணࠬ, ࠡ饬  몥 PL/M-386/486    ࠢ 㫥  ࠡ⪥   饩 窮. ।  䬥᪮ 樥 筠 ணࠬ  PL/M-386/486 㤥 樠஢ , ᯮ 楤 INIT$REAL$MATH$ UNIT,  ⥬  ன 䨣樨 ⠭ ० SET$REAL$MODE. 楤 SET$REAL$MODE 㦠 ࠢ饥 ᫮  ࠡ⪨   饩 窮,   16-ࠧ來 ࠬ  ଠ, 㪠  ࠢ饥 ᫮   14. 㥬 稭 ⮣ ࠬ - 033H (㣫  襣, 筮 64 , ஢ ᪫祭 ࠭ 訡 ). 㣨 楤  ᯮ짮  ᬮ७ ணࠬ.
᫨  ᪫祭  ஢,  ࠡ稪 ᪫祭   楤 ࠡ⪨  ଥ 楤 뢠,  뢠 १  뢠  16. ࠡ稪  ᯮ짮 楤 GET$REAL$ERROR  祭 襣  ᫮ ﭨ  ࠡ⪨ 権  饩 窮  ⥬  䫠 ᪨ ᪫祭. , 頥 楤ன GET $REAL $ERROR cন 䫠 ᪨,    ஠஢  ।  ᪫祭.
楤 SAVE$REAL$STATUS  RESTORE$REAL$STATUS ᯥ稢  ० ࠡ,  ஬ 믮塞 , ᯮ  ⪨ 権  饩 窮,   ࢠ 㣮 祩, ⠪ ᯮ饩  ࠡ⪨ 権  饩 窮. 樮 ⥬ ⢥砥  믮 楤 SAVE$REAL$STATUS । 믮  ,      ࠡ⪨ 権  饩 窮.  楤 INIT$REAL$ MATH$UNIT  SET$REAL$MODE,  ⠪ 䬥᪨ . 楤 SAVE$REAL$STATUS ࠭ ﭨ  ࠡ⪨ 権  饩 窮 (ॣ, , ࠢ ᫮  ⠪ )  ⥪ . 楤 RESTORE$ REAL$STATUS ⠭ ଠ  ﭨ; ࢠ   맢  楤  ⠭ ﭨ  ࠡ⪨ 権  饩 窮  ६ 믮.    ࢠ   믮  ⮣ ,   뫠 ࢠ.
 18-1.஥ 楤 몠 PL/M-386/486

Ŀ
                                                      
      楤       ࠢ           ᠭ          
                         FPU                                 
Ĵ
 INIT$REAL$MATH$UNIT    FINIT     樠 FPU         
 STE$REAL$MODE          FLDSW     ⠭ ᪨ ᪫- 
                                  祭,  筮  㣫- 
                                    ࠢ ᪮- 
                                                       
 GET$REAL$ERROR         FNSTSW    ࠭,  ⥬ 頥 
                        &FNCLEX   祭 䫠            
 SAVE$REAL$STATUS       FNSAVE    ࠭ ﭨ FPU    
 RESTORE$REAL$STATUS    FRSTOR    ⠭ ﭨ  
                                            FPU              


18.1.4 ᥬ ASM386/486
 ᥬ ASM386/486  ணࠬ    ᥬ  .

18.1.4.1 । 

४⨢ ᥬ ASM386/486, 㪠  ⠡ 18-2, 뤥   ᫮ ६  ⠭.   㣨 ४⨢  । , ᥬ 뢠 ⨯   ६, ।    ४⨢. 稭 ⨯     - (10  DT, 8  DQ). ᥬ ஢ ᮮ⢥⢨ ⨯ ६, ᯮ㥬  , ᠬ . ਬ,  FIADD ALPHA 㤥 訡筠, ᫨ ⨯ ६ ALPHA  稭,  ࠢ 2  4 ⠬, ⠪  楫᫥ ᫮ । ⮫쪮   ⨯ ᫮  ⪮ 楫 ( ᫮).  ࠭ ⠪ ᮮ頥 ᥬ  設  믮:   ணࠬ  ⮫쪮   FIADD,   ࠭ ࠧ筮 ⨯ ॡ ࠧ 設 .
 ࠧ㬭 ᯮ짮   ࠭, ⨯ ண  . ਬ, ᫨ ॣ BX ᮤন 㪠⥫  ६ ⨯ ⪮ 楫,  ணࠬ   ।  FIADD [BX].    ⨣ ନ஢   ⨯ ࠭  ,   FIADD DWORD PTR [BX]. ⢥騥 ८ࠧ⥫  㣨 ࠯।  - WORD PTR, QWORD PTR  TBYTE PTR.
 ᥬ  ஢ ⨯ ࠭, ᯮ㥬   ࠢ ஬.  FRSTOR [BP] ࠧ㬥,  ணࠬ ⨫  ॣ BP 㪠⥫   (  ⥪),  ஬ ࠭ 뫠 ࠭   ﭨ  ࠧ஬ 94 .
砫쭮 祭  ᫮ ⠭   祭 ᪮쪨 ᯮᮡ.  楫 ⠭   ।  ⮢ ப,  楫, 쬥 楫  ⭠ ப.   稭 筮 뢠   楫,  ᥬ 㤥 ਭ  ࠡ뢠  㣨 ।⠢ 楫. ⢥ 稭  뢠   ⢥  ᫠ ( 筮 窮),   ᫠  筮 樨   ⭠ ப. ᯮ짮 ⭠ ப ࢮ砫쭮 뫮 ।祭  । ᯥ樠 稭, ⠪  ᪮筮, NaNs  ଠ ᫠. 設⢮ ணࠬ⮢ ,       ⥩訩 ᯮᮡ 樠樨 ᫮ ⠭.  㭪 18-2  ਬ, 뢠騩 ᪮쪮 ᯮᮡ ᢮  ࠧ ᫮ ⨯   ⮩  砫쭮 稭.
 18-2. ४⨢ ।  ASM386/486.

Ŀ
  ४⨢                           
Ĵ
    DW         । ᫮      ᫮              
    DD         ।    ⪮ 楫, ⪮ 
                  ᫮             ⢥             
    DQ         । ᫮      楫,    
                 4       ⢥             
    DT         । 10 ⮢  筮,  
                                    ६ ⢥   


Ŀ
                                                               
  ;    -126                          
  ;                                                            
  ;EVEN           ; ࠢ ᫮                     
  WORD-INTEGER     DW   111111111000010B ; ⮢ ப      
  SHORT_INTEGER    DD   0FFFFFF82H       ; ⭠筠   
                                         ; ⠭     
                                         ; 稭    
  LONG_INTEGER     DQ   -126             ; 筮 筮  
  SINGLE_REAL      DD   -126.0           ; "筮"           
  DOUBLE_REAL      DD   -1.26E2          ; ।⠢       
  PACKED_DECIMAL   DT   -126             ; 筮 筮  
                                         ; 楫               
  ;                                                            
  ;  ᫥饬 । 'C005' 砥   冷,    
  ; '7E00..00' - , 'R' ନ ᥬ,       
  ;   ।⠢ ப ⢥ ⨯                 
  ;                                                            
  EXTENDED_REAL     DT    0C0057E00000000000000R               
                                                               

 㭮 18-2. ਬ ᫮ ⠭.
 ,  ᫮ ६  ⠭, ᫥騥  ४⨢ EVEN,  㢥७,  ࠭  ।⠢ ࠢ묨 ᫮. 襥 ।⠢ 砥,   ८ࠧ   ᫮, ᯮ .  ᫮ ⨯   楫 ᫮ ᫮, ⠪  ᫨  ६    । ⨢  㪠 ᫮ EVEN,    稢 .

18.1.4.2   

 ணࠬ஢ ᫥  몥 ᥬ ASM386/486  RECORD   STRUC   祭 .   ᯮ짮  । ⮢  ࠢ ᫮, ﭨ, ਧ.  㭪 18-3   । ᫮ ﭨ     ᯮ짮  ணࠬ,  訢 ன⢮ ࠡ⪨ 権  饩 窮   ,   訫 믮 .
   ꥤ ࠧ,  易 ⨯ ,    , 騥 "ॠ ".    ६   ।  ,   .  㭪 18-4  ਬ ⮩ ,    ᯮ짮  ।⠢ .  室  ਬ    ८࣠  楫 ᭮   䥪⨢ 믮. ᫨   ⢥  뫨 ।  楫᫥ , ⮣ (ন  䠪,    ⮫쪮 ᠬ, 騬  8)    ⨬쭮 ࠢ    ᯥ祭 䥪⨢ 㯠  ஢.  ⠪  ᯮ짮  । ଠ樨, ࠭塞  砥    FSTENV  FLDENV.

Ŀ
                                                               
      ; १ࢨ஢   ᫮ ﭨ              
      ; STATUS-WORD                                            
      ; ᯮ  ᫮ ﭨ                     
      STATUS RECORD                                            
      &     BUSY :              1,                             
      &     COND_CODE3 :        1,                             
      &     STACK_TOP :         3,                             
      &     COND_CODE2 :        1,                             
      &     COND_CODE1 :        1,                             
      &     COND_CODE0 :        1,                             
      &     INT_REG :           1,                             
      &     S_FLAG  :           1,                             
      &     P_FLAG  :           1,                             
      &     U_FLAG  :           1,                             
      &     O_FLAG  :           1,                             
      &     Z_FLAG  :           1,                             
      &     D_FLAG  :           1,                             
      &     I_FLAG  :           1                              
      ;                                                        
      REDUCE :  FPREM1                                         
                FNSTSW   STATUS_WORD                           
                TEST     STATUS_WORD, MASK_COND_CODE2          
                JNZ      REDUCE                                
                                                               


 㭮 18-3.।  ᫮ ﭨ. 
Ŀ
                                                               
       SAMPLE       STRUC                                      
           N_OBS     DD    ?     ;                             
           MEAN      DQ    ?     ;                             
           MODE      DW    ?     ;                             
           STD_DEV   DQ    ?     ;                             
           ;                                                   
           TEST_SCORES    DW   1000  DUP (?)                   
        SAMPLE       ENDS                                      
                                                               

 㭮 18-4. । 

18.1.4.3 ⮤ 樨

  ᫮      祭   ⮤ 樨 १  ModR/M  SIB (易⥫쭮).  砥,  ᫮ ⨯    ꥤ  ᮢ㯭 , 騥    ᫮  ᮮ⢥⢨  室 ਬ. ⮤ 樨   ᥬ ASM386/486, ᯮ㥬  । ⮤  , ᯥ稢 אַ  ᫥⥫   ࠬ, ᨢ, ᨢ   㣨 ࣠ .  ⠡ 18-3  ᪮쪮 ਬ஢ ᫮    ࠭, 騥 ࠧ ⮤ 樨.
 18-3. ਬ ⮤ 樨

Ŀ
                                               
Ĵ
  FIADD ALPHA                ALPHA - ⮩ ᪠ (אַ    
                             )                           
  FDIVR ALPHA, BETA          BETA -   , ஥  
                             ४뢠  ALPHA ( אַ    
                              )                          
  FMUL QWORD PTR [BX]        BX ᮤন   -
                              ६ (ᢥ -
                               ॣ)                
  FSUB ALPHA [SI]            ALPHA - ᨢ, SI ᮤন ᬥ-
                              ⭮⥫쭮 砫 ᨢ   
                             ( ⮤ 㯠)         
  FILD [BP], BETA            BP ᮤন    -
                              , BETA -      
                             (஢ ⮤ 㯠)      
  FBLD TBYTE PTR [BX] [DI]   BX ᮤন  㯠 -
                             筮 ᨢ, DI - ᬥ饭  
                              ᨢ ( ⮤ 
                             㯠)                          


18.1.5 ਬ ࠢ⥫쭮 ணࠬ஢

 㭪 18-5  18-6  ਬ ⮩ ᫮ ணࠬ ARRSUM  몠 ᥬ ASM386/486  PL/M386/486.  ணࠬ ᬠਢ ᨢ X$ARRAY, ᮤঠ騩  ⢥ 稭  0  100; 楫 ६ N$OF$X 㪠뢠 ࠧ୮ ᨢ.   㬬:
- SUM$X, 㬬 ⮢ ᨢ
- SUM$INDEXES, 㬬  , 㬭   ,    ᨢ   1, ன - 2  ⠪ 
- SUM$SQUARES, 㬬 ⮢ ⮢ ᨢ
( ணࠬ, 筮, ஬  蠣  ࠭  ᯮ짮 १ ᫥.) ࠢ饥 ᫮ ᢠ   稭: 㣫  襣 楫, 64-ࠧ來 筮, 饭 뢠  ஢  ᪫祭, ஬ ⨬ 権. ।,  ࠡ稪 ᪫祭  ᠭ  ⮬ ⨬ 樨,   砥  㦥  ࠡ뢠  뢠 16.
 ARRSUM  몥 PL/M-386/486 祭 ᫥⥫쭠   ᪮쪮   몥   ᯮ짮 ᫮   i486. ᫥  ६ ணࠬ 뢠 ஥ 楤  樠樨  ࠡ⪨ 権  饩 窮  㧪 ࠢ饣 ᫮. ணࠬ "頥" ६ 㬬  ⥬ 믮 蠣 横 DO. ࠢ 横 ਭ  ,  筮  몥 PL/M-386/486  ࢮ  ᨢ  稭 0.  ᫥ SUM$INDEXES ஥ 楤 FLOAT ८ࠧ 稭 I+1  楫 ⨯  ⢥, ⠪    ন "ᬥ蠭" 䬥᪮ ०.   ⪮  ࠡ⪨ 権  饩 窮  i486,    ন ᫥  ᬥ蠭묨 ⨯  ( 稭 ८ࠧ  80-⮢ ⢥ ଠ ७ 筮)

Ŀ
                                                               
       /**************************************************     
        *                                                *     
        *          _                   *     
        *                                                *     
        **************************************************/    
                                                               
        array$sum:       do;                                   
                                                               
            declare (sum$x, sum$indexes, sum$squares) real;    
            declare x$array(100) real;                         
            declare (n$of$x, i) integer;                       
            declare control $ FPU literally '033eh';           
                                                               
            /* 樠 ᨢ x$array  n$of$x */       
            call init$real$math$unit;                          
            call set$real$mode(control $ FPU);                 
                                                               
            /*  㬬 */                               
            sum$x, sum$indexes, sum$squares = 0.0;             
                                                               
            /*   ᨢ  ⮬ 㬬 */             
            do i = 0 to n$of$x - 1;                            
                 sum$x = sum$x + x$array(i);                   
                 sum$indexes = sum$indexes + (x$array(i)*      
                 float(i+1));                                  
                 sum$squares = sum$squares + (x$array(i)*      
                 x$array(i));                                  
            end;                                               
                                                               
            /*  ⠪  */                                  
                                                               
      end array$sum;                                           
                                                               


 㭮 18-5. ਬ ணࠬ  몥 PL/M-386/486
 ணࠬ  ᥬ ASM386/486 (㭮 18-6) ।  楤 INITFPU,  ந 樠     ᨬ  ⥪ 室 ணࠬ. ᫥ । , ன ᥣ ॣ஢  㪠⥫ ⥪ ணࠬ 뢠 楤 INITFPU  㦠 ࠢ饥 ᫮. ᫥ 稭  ᫥  ,    ॣ 㧪 0  ⥪.    1㭪 18-7  ॣ ࠭ 祭 設 ⥪  ६ ᫥,  ६ 稭   㤠  ⥪.
 ࠢ 樥  ᨢ XARRAY ணࠬ ᯮ 横 LOOP;  ॣ EX, ᮤন ண LOOP ⮬᪨ 㬥蠥, 頥 ६ N_OF_X, ᫮ 㬬㥬 ⮢ ᨢ.  ESI ᯮ  롮ન (஢) ⮢ ᨢ. ணࠬ 믮  ᨢ    砫, ⠪  ॣ ESI 樠 㪠⥫  ,   ࠡ뢠.  TYPE ᯮ  । ᫠ ⮢    ᨢ.  ।⠢   ⨯ ᨢ  ⢥  筮   । (DD  DQ)    室 ᥬ.
㭮 18-6 ਬ ணࠬ  몥 ᥬ ASM386/486

Ŀ
                                                               
           name         arraysum                               
                                                               
           ; । 楤 樠樨                
                                                               
           extrn        initFPU:far                            
                                                               
           ; 뤥                           
                                                               
           data         segment  rw  public                    
           control_FPU           dw  033eh                     
           n_of_x                dd  ?                         
           x_array               dd  100 dup (?)               
                                                               
           sum_squares           dd  ?                         
           sum_indexes           dd  ?                         
           sum_x                 dd  ?                         
           data         ends                                   
                                                               
           ; 뤥   ⥪                       
                                                               
           stack        stackseg     400                       
                                                               
           ; 砫 ⥫ ணࠬ                             
                                                               
           code         segment  er  public                    
                                                               
           assume  ds:data, ss:stack                           
                                                               
           start:                                              
               mov      ax, data                               
               mov      ds, ax                                 
               mov      ax, stack                              
               mov      eax, ax                                
               mov      esp, stackstart stack                  
                                                               
           ; ந樠஠ ᨢ x_array              
           ; ६ n_of_x                                 
                                                               
           ; ⮢  ࠡ⪨ 権             
           ;  饩 窮                  
                                                               
               call     initFPU                                
               fldsw    control_FPU                            
                                                               
           ;   ॣ  ࠭                
           ; १⮢ 㬬஢                          
                                                               
               fldz                                            
               fldz                                            
               fldz                                            
                                                               
                                                               
           ; ⠭ ECX  稪 横                 
           ; ES   ᨢ x_array                     
                                                               
               mov      ecx, n_of_x                            
               imul     ecx                                    
               mov      esi, eax                               
                                                               
           ; ESI ᮤন  ᫥            
           ; ᨢ  1                                    
           ;   ᨢ  ⮬ 㬬                 
                                                               
           sum_next:                                           
           ; 饭                     
           ;  饭  ⥪                                
                                                               
               sub      esi, type x_array                      
               fld      x_array[esi]                           
                                                               
           ; ਡ  㬬  ஢ x               
           ;  ⥪                                            
                                                               
               fadd     st(3), st                              
               fld      st                                     
                                                               
           ;     ᫮  㬬          
           ; (index+1)                                         
                                                               
               fmul     st, st                                 
               faddp    st(2), st                              
                                                               
           ; 㬥襭   ᫥饩 樨         
                                                               
               dec      n_of_x                                 
               loop     sum_next                               
                                                               
           ; ६饭 x                              
                                                               
           pop_results:                                        
                fstp    sum_squares                            
                fstp    sum_indexes                            
                fstp    sum_x                                  
                fwait                                          
                                                               
           ;                                                   
           ;  ⠪ .                                      
           ;                                                   
           code         ends                                   
           end    start, ds:data, ss:stack                     
                                                               
                                                               



Ŀ
                                                               
                                                               
 FLDZ, FLDZ,FLDZ                   FLD X_ARRAY[SI]             
       Ŀ----------------------Ŀ             
 ST(0)   0.0    SUM_SQUARES     ST(0)   2.5    X_ARRAY     
       Ĵ                       Ĵ             
 ST(1)   0.0    SUM_INDEXES     ST(1)          SUM_SQUARES 
       Ĵ                       Ĵ             
 ST(2)   0.0    SUM_X           ST(2)   0.0    SUM_INDEXES 
                              Ĵ             
                                  ST(3)   0.0    SUM_X       
                                                     
           _________________________________|                  
                                                              
  FIADD ST(3), ST                             FLD ST           
       Ŀ----------------------Ŀ             
 ST(0)   2.5    X_ARRAY(19)     ST(0)   2.5    X_ARRAY(19) 
       Ĵ                       Ĵ             
 ST(1)   0.0    SUM_SQUARES     ST(1)   2.5    X_ARRAY(19) 
       Ĵ                       Ĵ             
 ST(2)   0.0    SUM_INDEXES     ST(2)   0.0    SUM_SQUARES 
       Ĵ                       Ĵ             
 ST(3)   2.5    SUM_X           ST(3)   0.0    SUM_INDEXES 
                              Ĵ             
                                  ST(4)   2.5    SUM_X       
                                                     
           _________________________________|                  
                                                              
      FMUL ST, ST                  FADDP ST(2), ST             
       Ŀ----------------------Ŀ             
 ST(0)   6.25   X_ARRAY(19)(2)  ST(0)   2.5    X_ARRAY(19) 
       Ĵ                       Ĵ             
 ST(1)   2.5    X_ARRAY(19)     ST(1)   6.25   SUM_SQUARES 
       Ĵ                       Ĵ             
 ST(2)   0.0    SUM_SQUARES     ST(2)   0.0    SUM_INDEXES 
       Ĵ                       Ĵ             
 ST(3)   0.0    SUM_INDEXES     ST(3)   2.5    SUM_X       
       Ĵ                                    
 ST(4)   2.5    SUM_X                     |                  
                                  |                  
           _________________________________|                  
                                                              
     FIMUL N_of_X                  FADDP ST(2), ST             
       Ŀ----------------------Ŀ             
 ST(0)   50.0   X_ARRAY(19)     ST(0)   6.25   SUM_SQUARES 
       Ĵ                       Ĵ             
 ST(1)   6.25   SUM_SQUARES     ST(1)   50.0   SUM_INDEXES 
       Ĵ                       Ĵ             
 ST(2)   0.0    SUM_INDEXES     ST(2)   2.5    SUM_X       
       Ĵ                                    
 ST(3)   2.5    SUM_X                                        
                                                     
                                                               
                                                               


 㭮 18-7   ॣ஢ ⥪

 㭪 18-7  ᮤন ॣ஢ ⥪  ࠡ⪨ 権  饩 窮  ६ 믮   横 ணࠬ. ।,  ணࠬ 室   ࢮ 樨, 稭 ६ N_OF_X ࠢ 20,  20-  ᨢ XARRAY(19)  稭 2.5.  砭 横 㬬   設 ⥪,  ணࠬ 稢  ६饭 㬬  ६ .

18.2 ࠫ쭠 ࠡ⪠

   ࠡ⪨ 楫᫥ 権   ࠡ⪨ 権  饩 窮  ᨬ묨 ன⢠,   믮 ⥬᪨  㫥 ࠡ⪨ 権  饩 窮 ࠫ쭮  ࠡ⮩  ࠡ⪨ 楫᫥ 権.  ६ 믮 ࠧ  뢠 ࠫ쭮.
 ᯥ樠 ਥ ணࠬ஢, 室  ࠫ쭮 믮:   ࠡ⪨ 権  饩 窮  ࠧ  ⮩  ப,     ࠡ⪨ 楫᫥ 権. ᫥  ⢥  樠  ⮬  浪,     ⮪ .   ᨫ ⮣,  ⢥ 樨, 믮塞 㫥 ࠡ⪨ 権  饩 窮,  饬 ॡ  ६, 祬 楫᫥ 樨,   ࠡ⪨ 楫᫥ 権   믮 ᪮쪮 ᢮   ⮣,   ࠡ⪨ 権  饩 窮   ⢥ .
ࠫ쭮  । 祢 २⢠  ६ 믮,  ⠪  । ࠢ,    ᮡ  ⨦ ᨭ஭樨 ࠡ  ࠡ⪨ 権  饩 窮   ࠡ⪨ 楫᫥ 権.
 모 ᮪ ஢, ਥ㥬    Intel, ⮬᪨   ࠢ ࠫ쭮  ࠡ⪨ 権  饩 窮. ணࠬ, ࠡ騥  ᥬ,     ࠢ 묨 ﬨ ࠫ쭮  ⨦   䥪⨢ ணࠬ.    ணࠬ⮢, ࠡ  ᥬ,  ணࠬ⮢-ᨮ,  ணࠬ  몠 ᮪ ஢.

18.2.1 ࠢ ࠫ쭮

ࠡ⪠ ᫨⥫ ணࠬ   ࠧ   : ࠢ ணࠬ  䬥⨪.   ࠢ ணࠬ 믮 ⠪ ⢨  襭 -  㭪樨 믮, ᫥ ᮢ ᫮ ࠭  ࠢ 横. 䬥᪠   믮 ᫮, ⠭, 㬭  㣨 樨  ᫮묨 ࠭.  i486 ।祭  ࠡ⪨  ⥩ ࠧ쭮  䥪⨢.
ࠢ ࠫ쭮 ॡ ஢ન  ᪫祭 । ࠧ襭   祭, ⮫쪮  ᯮ㥬 㫥 ࠡ⪨ 権  饩 窮.   ᫮    砥 饭 樨 ᮧ ᫮ ᪫祭.  ணࠬ⮢, ࠡ  몠 ᮪ ஢,  ॡ㥬 ᨭ஭ ⮬᪨ 믮 ᮮ⢥騬 ஬.  ࠡ  ᥬ ᨭ஭ ᪫祭 ⠥  ᮢ ணࠬ.
  ⮬,  ணࠬ   ,   ᫨⥫쭠 ணࠬ  뢠 ᪫祭,    ⥬   ॣ୮ .  襣  ⠪ ࠧ㬥 ᬮਬ,   ,   ࠡ⪨ 権  饩 窮 㦨 ᪫祭.
 ᨬ  権, । ஥஢騪 ணࠬ ᯥ祭,  砥 ᪫祭  i486  믮   ᫥ ᮢ㯭⥩ ⢨:
*  ࠡ⪨ 権  饩 窮  㬮砭  ࠡ뢠 । ᪫祭. ணࠬ      ⨯ ᪫祭  㪠  ࠡ⪨ 権  饩 窮,  㦭 , ⮡  砥 ᪫⥫쭮 樨  ࠧ㬭 १. ࠡ⪠ ᪫祭  㬮砭 믮 㫥 ࠡ⪨ 権  饩 窮   , 맢襩 ᪫祭;  譨 㪠  ᪫祭  .  㦥 ᪫⥫쭮 樨 祭 䫠   ॣ ﭨ,  ଠ  ⮬,     ந諠,  㯭. ᫨  ࠡ⪨ 権  饩 窮 ࠡ뢠  ᪫祭  㬮砭, ⮣ 室 ᨭ஭樨 ᪫⥫ 樨   . ,  㤥  ,   ⢥ 稭, ⮡  ᨭ஭樨  ࠧࠡ⪥ ணࠬ, ᯮ  ࠡ⪨ 権  饩 窮.
* ୠ⨢ ࠡ⪥ ᪫祭  㬮砭  ନ஢  ࠡ⪨ 楫᫥ 権  稢襩 ᪫⥫쭮 樨. ᫨   ᪨஢ ᪫祭,   ࠡ⪨ 権  饩 窮 ਮ⠭ 쭥襥 믮 ᫮   ᨣ  稢襬.  㦥  ESC  WAIT ࠢ । ࠡ稪 ᪫祭. ࠡ稪 ᪫祭 ᠬ 롨ࠥ 楤 ࠡ⪨  ᪫祭, 㦥 㫥 ࠡ⪨ 権  饩 窮.   ESC  ⢫ ஢ન  ᪫祭.  FNINIT, FNSTENV, FNSAVE, FNSTCW  FNCLEX.
  ࠡ⪨ 権  饩 窮 ᨣ  ᪨஢ ᪫祭,   砥,   ॡ .  䠪,  ᪫祭  뫮 ᪨஢, 㪠뢠,  쭥襥 믮 ணࠬ 㫥 ࠡ⪨ 権  饩 窮 ࠧ㬭.
᫨ ࠧ蠥 ࠫ쭮 ᫥,  ﭨ   㦥 ᪫祭 ।.  ६ ᪫祭     ७ ॣ  믮 ᮢ襭 ࠧ ணࠬ.  ࠡ⪨ ⠪ 樨  ࠡ⪨ 権  饩 窮  ᯥ樠 ॣ, 塞  砫  ᫮ ,   । ﭨ ணࠬ, ⮡  ७ 㤠 .
 ᨭ஭樨 ᪫祭   㢥७,   ࠡ⪨ 権  饩 窮 室   । ﭨ ᫥ 稢襣 ᪨஢ ᪫祭.  ⠪ । ﭨ ணࠬ ࠡ⪨ ᪫祭    । 稭 ᪫⥫쭮 樨  ᯥ譮 ⠭ ࠡ.
 ᫥    室 ᬮ७ ᨭ஭樨 ᪫祭  ᠭ ᫮ ணࠬ,  ᫨ ࢮ砫쭮 । 믮  ᪨஢ ᪫祭. ᫨ ணࠬ 㤥  饭,  ᪫祭  ᪨஢,    ࠡ ࠢ쭮. ਬ,  ᪮쪮  , ᠭ  ᨭ஭樨 ᪫祭, 㤥 ࠡ ࠢ쭮,  ஢  ७ᥭ   ।, ਢ  㭪 18-8.

18.2.1.1 ४⭠ ᨭ஭ ᪫祭

 㭪 18-8    㧪 楫, ᫥  ⭮   㬥襭 楫  1. ஭ ࠡ  ࠡ⪨ 権  饩 窮 ࠧ ⮩ ணࠬ ࠡ ࠢ쭮   ,   FILD  ᣥ ᪫祭.

Ŀ
                                                               
                                      
                                                               
          FIELD     COUNT  ;  FPU                       
          INC       COUNT  ; 楫᫥     
                           ; ࠭                          
          FSQRT            ; 訡  ।饩  FPU  
                           ; 㦥                   
                                                               
                                        
                                                               
          FIELD     COUNT  ;  FPU                       
          FSQRT            ; 訡  ।饩  FPU  
                           ; 㦥                   
          INC       COUNT  ; 楫᫥     
                           ; ࠭                          
                                                               
                                                               


 㭮 18-8. ਬ ᨭ஭樨 ᪫祭.

 , ᫨  ॣ஢ ⥪  .  ⮬ 砥 ⨬ ᪫祭  ᪨஢. ⪠ 祭  ⮣ ⥪  饭   뢥 ⨬ ᪫祭.
ࠬ ࠡ⪨ ᪫祭  ᯮ  , ࠢ 祭 ⥪  믮 ࢮ砫 .  ਬ,   㭪, ணࠬ ࠡ⪨ 㤥 ࠡ ୮. ஡  ⮬,  祭 ६ COUNT 㢥稢  맮 ࠡ稪 ᪫祭, ⮬ ணࠬ ࠡ⪨  ࠢ쭮 祭 ६ COUNT,  ਢ  ।᪠㥬  ணࠬ.

18.2.1.2 ४⭠ ᨭ஭ ᪫祭

 WAIT ⢥砥  ᨭ஭ ᪫祭.  砥 ᪨஢ ᪫祭  ࠡ⪨ 権  饩 窮 ᨣ   訡.  㦥  WAIT ( ࠢ饩  ESC) ᨣ  訡 ⢥ত  뢠 ணࠬ ࠡ稪 ᪫祭. (  ⠫쭮 ଠ樨  ࠧ 堭 㦥 訡    饩 窮 ᬮ  16.) ᫨  WAIT  ESC ᯮ ࠢ쭮,  ଠ, 室   ࠡ⪨ ᪫祭,   㤥 襭.
