
 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 ᯮ
ࠢ쭮,  ଠ, 室   ࠡ⪨
᪫祭,   㤥 襭.
