
              । ⠭   ६
     -----------------------------------------------------------------

          롮    ⠪  ᯮᮡ । -
     ⠭ ,  㪠⥫ﬨ  ணࠬ,    -
       㣮 ࠧ. .12.5 뢠,   룫拉,
     㪠⥫.   - , 騩 㪠⥫.

             ,    㪠⥫ ᯮ  -
       DW (१ࢨ஢ ᫮),    ६  㣨 - DD (-
     ࢨ஢  ᫮),  । ࠧ १饣
     㪠⥫.  ᫮  ⥪⮢ ⠭ ।  -
     .

          ६ । ⠪ ,  ⠭. ᫨  -
       ६,   樠஢ ।묨
     祭ﬨ,       _BSS-ᥣ, ⠢ -
     ⥫  (?) ⠬, 㤠  ⮬  ६.



            ।   譨 䨪஢
     -----------------------------------------------------------------

              ਭ 讣 ᯥ   ,
       ணࠬ  ࡮   㤥 ,  㭪樨 
      뢠    ६  뫠. ஬ ⮣,
        ॡ  뢠 㭪樨 ࡮  
     ணࠬ,  ᠭ  ᥬ  뫠   ६-
     ,   ࡮ .

          ⮡ ᢮    ,    㦭  ࠧ  
     ࠭  騪 ࡮ .     譨
     䨪,  ࠭  ⮬᪨  ⠢  ।  
     ન (_)   ࠭  ꥪ⭮ 㫥.  -
     砥,        ⠢   ન । 
     䨪஬  襬 ᥬ஢᪮ 㫥,  ஬  -
         ணࠬ  .   ᪠-䨪-
     ࠬ 饭  , 祬  䨪ࠬ , -  ᯮ-
        ⮫쪮   孨   ॣ         ᭠  ᨬ
     ન.

           ન  䨪஢   易⥫,  
     ⠭   㬮砭(on).    ⪫祭 (off) 
      樨  ப -u-. , ᫨    ᯮ
     ⠭ ⥪ ࡮ ,  ⮫  ஡, -
       ⮫쪮     ।  ⥪. (⮡ ᤥ ,
       㣮 த ࡮  - 室 ⥪ ணࠬ
       ⥪  প;   ⠪      ମ   Borland
     International  祭  ஡ ଠ樨.)

          ᫨  asm-ணࠬ  室 䠩 뫠  
     -䨪  (    㭪樨),  ⠪ 䨪
      稭   ન.

          ࡮ ᥬ  (TASM)  ⢨⥫  ॣ,  㣨
     ᫮,    ࠭᫨ ணࠬ  몠 ᥬ,  
       䨪 ࠭ ⮫쪮   ᨬ.  -
     짮  TASM 樨 /mx ॢ   ०  "⢨⥫-
      ॣ"  譨 㪠⥫.  騪 ࡮  -
         ᠬ      䨪  extern,  ..  
       ᮢ.    ,    ਬ-
      祢 ᫮  ४⨢ ᠭ  孥 ॣ,  
     㣨  䨪    -   (묨 ᨬ-
     );   ᮢ  ⨫,  ।   㪮⢥  
     TASM. ,   ᯮ짮   ( )
       ᬥ蠭 䨪,   㤮.

           ⮣ ⮡ ᤥ 䨪 (  ணࠬ  
     ६) 묨  襣 ᥬ୮ ,  㦭
        PUBLIC.

          , ਬ,  ᫨  ᠫ , 騩 楫 㭪-
     樨  max    min  楫 ६ MAXINT,lastmax  lastmin,  
      ⠢   

          PUBLIC _max,_min

       ணࠬ ᥣ,  

          PUBLIC  _MAXINT, _lastmax, _lastmin
          _MAXINT  DW 32767
          _lastmin DW 0
          _lastmax DW 0

      ᥣ .



                    冷 맮 ࡮   .ASM
     -----------------------------------------------------------------

           ⮣ ⮡ ᮧ    ᥬ  -
       㭪  ६,    ணࠬ  ࡮
     , ᯮ  EXTRN.



                        ⥫  㭪樨
     -----------------------------------------------------------------

          ⮡ 뢠 -㭪  ணࠬ, ᠭ  -
     ᥬ,      ᢮ 㫥   -
     

          EXTRN <fname> : <fdist>

           <fname> -  㭪樨,  <fdist> 砥 near  far, 
     ᨬ  ⮣,    -㭪 (near    far).
     ᫨  <fdist> - near,    EXTRN    ண-
     ࠬ ᥣ 襣 ;  ᫨ - far,  EXTRN  -
        ᥣ.  ⠪,   ᫥騩 
      ணࠬ ᥣ:

          EXTRN _myCfunc1 : near, _myCfunc2 : far

     騩  뢠 _myCfunc1  _myCfunc2    ண-
     ࠬ  ᥬ.



                         ⥫  
     -----------------------------------------------------------------

          ⮡ 뫠    ६,     
     ᥣ  ᮮ⢥騩   (  )  EXTRN
     ᫥騬 ࠧ:

          EXTRN  <vname>: <size>

      <vname>   ६,  <size> 㪠뢠   ࠧ.

           祭 <size>:

          - BYTE (1 )
          - WORD (2 )
          - DWORD (4 )
          - QWORD (8 )
          - TBYTE (10 )

           ⮢  ᨢ    ᮮ⢥⢮ <size>.
          ⢥  <size>  㦭  ᯮ짮
     ࠧ   饣   .

          .., ᫨  -ணࠬ   ६

          int i, jarray [10];
          char ch;
          long result;

         ᤥ  㯭묨  襬 㫥   ᫥-
     饣 :

          EXTRN _i:WORD,_jarray:WORD,_ch:BYTE,_result:DWORD

           ᫥  砭. ᫨  ᯮ  -
       huge,    EXTRN     ᥣ-
     .  ਬ   楤ࠬ, ⠪   ६.



                   ணࠬ  ᥬ
     -----------------------------------------------------------------

            ,   ࠧ    ।,
      ⠫ ६ ,    뢠 㭪樨 
     ᥬ.   室 ᬮ ᪮쪮  -
     ⮢:  । ࠬ஢,  頥 祭  ᮣ襭 
     ॣࠬ.

          ।,    㭪 min, ,  
     ,  ᫥騩 ⨯  :

          int extern min(int v1, int v2);

           , ⮡ 㭪 min 㫠    -
     ।  稭.  饬   㭪樨 min 㤥:

                 PUBLIC  _min
          _min   PROC    near
                  .
                  .
                  .

          _min   ENDP

           ୮  ।,  筮,   㭪 min  㤥
     near-㭪樥. ᫨  far-㭪,     far 
     near.  ⨬,   min ᭠  ન   ⮣,
     ⮡ 騪 ࡮   ४⭮ ⠭ 裡.



                         । ࠬ஢
     -----------------------------------------------------------------

           ࢠ  -    ᯮ㥬    ணࠬ
     ᮣ襭  । ࠬ஢; 뢠 ਢ ࠭ -
     ࠦ  㤭  ᯮ짮  ᪠-ᮣ襭,  㤥
          ᯮ짮 -⮤.   砥,   
     맢 㭪 min, ⥪ 룫廊 ᫥騬 ࠧ:

          SP + 04: v2
          SP + 02: v1
          SP:       

          ᫨     ࠬ,      ᮤঠ
     ⥪,    ⮣ 室 ࠭  㪠⥫ (BP),
     ⥬  ⥪ 㪠⥫ (SP)       ᯮ짮
       ⢥ 㪠⥫  ⥪  祭   室-
       稭.  ⨬,   ᫥ ᥭ BP  ⥪ ⭮-
     ⥫ ᬥ饭 ࠬ஢   2, ..  ⥪  -
      2 .



                  ࠢ 頥묨 稭
     ----------------------------------------------------------------

           㭪 頥 楫 稭;  㤠   -
     ?   16- (2-) 稭 (char,  shot,  int,  enum,
     near-㪠⥫)  ᯮ ॣ AX;  32- (4--
     ),   far-  huge-㪠⥫ - ॣ DX  襣
     ᫮  (      ᥣ  㪠⥫)  ॣ AX 
     襣 ᫮.

          稭 float, double  long double   ॣ
     top-of-stack (TOS)  8087/80287, ST(0); ᫨ ᯮ-
       8087/80287,  稭 頥    TOS  ॣ
     .

          稭     ⥬ ᥭ   -
      祩   ।祩 㪠⥫    祩  (  
        묨 묨,  DX:    訬 -
     묨).

          뢠 㭪  ⥬ ᪮஢   稭  
       ,    室.    1  2 
        (    筮  楫),    4-
         DX.

           ਬ  min     16-⭮ 稭, -
        ⢥  .

           ணࠬ 룫廊 ⥯ ⠪:

               PUBLIC _min
          _min PROC near
               push bp                    ;  ࠭ bp  ⥪
               mov bp,sp                  ;  㧨 sp  bp
               mov ax,[bp+4]              ;  ६ v1  ax
               cmp ax,[bp+6]              ;  Cࠢ v1  v2
               jle exit                   ;  ᫨ v1 > v2
               mov ax,[bp+6]              ;  㧨  ax v2
          exit: pop bp                    ;  ⠭ bp
               ret                        ;     
          _min ENDP

             , ᫨   min  far-㭪? -
      ⫨稥  ⮬,  ⥪  室 㤥 룫拉 ⠪:

          SP + 06:    v2
          SP + 04:    v1
          SP + 02:    ᥣ 
          SP:         ᬥ饭 

           砥,   ᬥ饭  ⥪ 㢥稫  2, .. 
     ⥪ ᥭ 2 ⥫  (ᥣ ).  Far--
      襩 ணࠬ 㤥 룫拉 ⠪:

               PUBLIC  _min
          _min PROC far
               push bp                    ;  ࠭ bp  ⥪
               mov bp,sp                  ;  㧨 sp  bp
               mov ax,[bp+6]              ;  ६ v1  ax
               cmp ax,[bp+8]              ;  Cࠢ v1  v2
               jle exit                   ;  ᫨ v1 > v2
               mov  ax,[bp+6]             ;  㧨  ax v2
          exit: pop bp                    ;  ⠭ bp
               ret                        ;     
          _min ENDP

          ⨬,   ᬥ饭  v1  v2 㢥稫   2, 
     ࠦ  ⮢  ⥪.

             ᫨    -  ᮮࠦ   min 
     ᪠-㭪?  ࠢᨫ쭮 襬 襭 ᯮ짮 -
     -ᮣ襭  । ࠬ஢.

           ⥪    室  㤥 룫拉 ᫥騬 ࠧ (
     ᫮,  min  near-㭪樥):

          SP + 04:   v1
          SP + 02:   v2
          SP:        ᬥ饭 

          ⥫쭮     ᮡ  ᪠-ᮣ襭  
     䨪 min:   묨 㪢   ન-
     .

          ஬  浪 ᥭ ࠬ஢  v1    v2  
     ᮣ襭  ॡ   min ⪨ ⥪   襭.  
      㪠   RET ⢠  ⮢, ய᪠
       ⥪.   襬 砥   ய  ⥪ 4 -
     ⥫ , ᯮ㥬  v1  v2 (  -
        RET ⮬᪨).

           ஢ ணࠬ 㤥 룫拉 ⠪:

                UBLIC   MIN
          MIN   PROC     near              ;  ᪠-
                push     bp                ;  ࠭ bp  ⥪
                mov      bp,sp             ;  㧨 sp  bp
                mov      ax,[bp+6]         ;  ६ v1  ax
                cmp      ax,[bp+4]         ;  Cࠢ v1  v2
                jle      exit              ;  ᫨ v1 > v2
                mov      ax,[bp+4]         ;  㧨  ax v2
          exit: pop      bp                ;  ⠭ bp
                ret      4                 ;  ⪠ ⥪  
          MIN   ENDP

           ᫥ ਬ, 騩, 祬   -
      ᯮ짮 -ᮣ襭  । ࠬ஢. ।-
     ,  ८। min ᫥騬 ࠧ:

          int  extern  min (int count, int v1, int v2, ...);

           min    ⢮ 楫 ᥫ  -
       쭮  . , .. min   -
      ⮬᪨ 㧭, ᪮쪮 祭  ।, 
       ࠬ஬ 㤥 稭 count,  㪠뢠,  ᪮쪮
     稭 ᫥  .

          ਬ,     ⠪:

          i = min (5, j, limit, indx, lcount, 0);

     ।,   i, j, limit, indx  lcount - 楫 ( ᮢ-
     ⨬  int ⨯). ⥪  室 㤥 룫拉 ⠪:

          SP + 08:    ( ..)
          SP + 06:    v2
          SP + 04:    v1
          SP + 02:    count (稪)
          SP:           (ᬥ饭)

           ஢  min  :

               PUBLIC _min
          _min PROC near
               push bp              ;  ࠭ bp  ⥪
               mov bp,sp            ;  㧨 sp  bp
               mov ax,0             ;    ax 0
               mov cx,[bp+4]        ;  ६ count  cx
               cmp cx,ax            ;  Cࠢ cx c 0
               jle exit             ;  ᫨ <= 0,  
               mov ax,[bp+4]        ;  㧨  稭  ax
               jmp ltest            ;  室  横 ;஢ન
      compare: cmp ax,[bp+6]        ;  Cࠢ  ᫥. 稭
               jle ltest            ;  ᫨ ᫥. 稭 
               mov ax,[bp+6]        ;  㧨   ᫥. 稭
        ltest: add bp,2             ;  ३  ᫥. 稭
               loop compare         ;  ⥬  横 
         exit: pop bp               ;  ⠭ bp
               ret                  ;     
          _min ENDP

          ⨬,    ࠢ쭮 ࠢ ᥬ 묨
     祭ﬨ count.

          - ᫨ count <= 0, min 頥 0;
          - ᫨ count = 1, min 頥  稭  ᯨ᪥;
          - ᫨ count >= 2, min ࣠ 横 ࠢ   ᪠
            襣 祭  ᯨ᪥ ࠬ஢.



                     襭  ॣࠬ
     -----------------------------------------------------------------

           min    ᯮ짮  ࠧ  ॣ  (BP,  SP,  AX,
     BX,CX).        ᯮ짮.   
     ணࠬ,  ᠭ  ࡮ ,  ᯮ짮  ॣ?
     뢠,  ࠢ쭮 ᠫ  㭪.   ᯮ짮-
      ॣ஢ ।⮬      ॣ  BP;  
     ࠭    ⥪  室  ⠭ ⥬  室.

          㣨 2 ॣ,      ᯮ - 
     SI  DI:   ॣ ࡮  ᯮ  ॣ஢  -
     .  ᫨  ᯮ  ⮫쪮  ᥬ୮ ணࠬ-
     ,   㦭 ࠭ (⭮  ⥪)  室  ண-
     ࠬ     ⠭    室    .  ,  ᫨  
      ࡮ -ணࠬ   樨 -r- (Use register
     variables - Off),   㦭   ࠭ SI  DI.

          砭:    ⥫  ᯮ짮 樨 -r-.
       ਫ  "ࠢ筮 㪮⢠   ࡮  "
        祭        ଠ樨    樨  register
     variables.

           CS,DS,SS  ES   ᮮ⢥騥 祭,
     騥  ᯮ㥬  .   ᮮ⭮襭:

          ⭠           CS=DS=SS; ES=scratch (ࠡ稩)
          , ।      CS!=DS,DS=SS; ES=scratch
          ⭠,  CS!=DS!=SS;ES=scratch( CS  )
          ஬            CS!=DS!=SS;ES=scratch(   CS  DS
                               )



                  맮 -㭪権  .ASM ணࠬ
     -----------------------------------------------------------------

          筮, ᯮ짮 㣮 : 맢 ணࠬ
        ,  ᠭ  ᥬ.    ⮬  
     ᤥ -㭪   ,  ᠭ  ᥬ.
      㦥  㤨,    :  㭪  
       EXTRN,  ᨬ  ⮣,    ⨯ - near  far.
     ਬ,  ᠫ ᫥ -㭪:

          long docalc(int *fact1, int fact2, int fact3);

            ।,   docalc -  -㭪 (..
     ⨢ ᪠-㭪樨).     ᯮ짮  -
     ⭮,    ⭮  ,   -㭪
      㫥, ᠭ  ᥬ,  ᫥騬 ࠧ:

          EXTRN _docalc:near

           ⮬, ᫨  ᯮ짮 ।,   -
     ஬  ,   㭪  _docalc:far.

          docalc । ६ ࠬࠬ:
          - ᮬ 祩  - xval;
          - 祭, ࠭  祩 - imax;
          - ⠭⮩ 421 (筮).

          ।  ⠪,      㦭  ࠭  १ 
     32-ࠧ來 祩 , 뢠 ans.  맮 
      㤥 ⠪:

          ans = docalc (xval, imax, 421);

           室   ⥪ ᭠砫 421, ⥬ imax, ᫥
     ⮣  xval ,  ,  맢 docalc.   㦭
      ⥪,  㢥稫  6 ⥫ ,  -
     ⥬  ⢥  祩  ans  ans+2.

          ணࠬ 㤥  :

     mov ax,421             ;    ⥪ 421
     push ax
     push imax              ;    ⥪ imax
     lea ax,xval            ;    ⥪ xval
     push ax
     call _docalc           ;  맮 㭪樨 docalc
     add sp,6               ;  ⪠ ⥪
     mov ans,ax             ;   32-ࠧ來 १  ans
     mov ans+2,dx           ;   襥 ᫮

             ᫨  docalc 㤥 ᯮ짮 ᪠-ᮣ襭 
     । ࠬ஢?   ਤ  冷 ࠬ-
     ஢  ,     㤥 ᯮ  ⪥ ⥪ 
     ,  ..   ᤥ 뢠 ணࠬ. ஬
     ⮣,   ᮡ ᪠-ᮣ襭  ᠭ docalc
     ( ᨬ ન (_)   孥 ॣ).

           EXTRN 㤥 ⠪:

          EXTERN DOCALC:near

      ணࠬ 맮 docalc 㤥  :

          lea ax,xval      ;    ⥪ xval
          push ax
          push imax        ;    ⥪ imax
          mov ax,421       ;    ⥪ 421
          push ax
          call DOCALC      ;  맮 㭪樨 docalc
          mov ans,ax       ;   32-ࠧ來 १  ans
          mov ans+2,dx     ;   襥 ᫮

            ,   室 , ⮡    ⠭-
        몠.




                     :
                ᥢ६, ஥ ᥬ
                          㭪樨 뢠
     -----------------------------------------------------------------

          ।,    믮  -  ⢨  
     ஢  ࠢ  設,  ।⠥  뢠 -
     ⥩, 易  ᮧ ⤥쭮   몥  ᥬ-
     .      ⮬ 砥? ࡮   ⢥  
      (䠪᪨  ⢥): ᥢ६, ஥  -
     ᥬ    㭪樨 뢠.   ,   ,
          믮  ࠡ.



                             ᥢ६
     -----------------------------------------------------------------

            襩  (8088/8086/80186/80286)   ।-
      ᫮ ॣ஢ ( ᯥ樠 ⮢ ࠭),  -
       ᯮ  㫨஢ 稭.    -
        16  ࠧ冷  (2  );        믮
     ᯥ樠 㭪樨,        ᯮ짮 
       ⢥ ॣ஢ 饣 祭.  ᯮ " -
     ", ᬮ७  砫 ⮩ ,  ஡ ᬮ-
       ॣ⮢ .

           ( ஢ ணࠬ஢)   -
      饭 ।⢥  ⨬ ॣࠬ  -ணࠬ
     :
          - 㧪   祭 । 맮  ⥬  ண-
     ࠬ;
          - ᬮ 祭, ᮤঠ    饥 ६.

          ࡮  祭      ⨬ ॣ-
     ࠬ १ ᥢ६. ᥢ६ -   -
     䨪,    ᮮ⢥   ॣࠬ.   -
     짮       ६묨  ⨯  unsigned  int  
     unsigned char.

           ⠡ 12.6 ਢ  ᯨ᮪ ᥢ६,  -
       ᯮ짮,   ⨯,  ॣ,    ᮮ-
     ,   祣  ॣ 筮 ᯮ.

     
        ᥢ -                                  祭
      ६                         ॣ
     
         _AX       unsigned int        AX      / 
         _AL       unsigned char       AL     訩  AX
         _AH       unsigned char       AH     訩  AX

         _BX       unsigned int        BX      / 
         _BL       unsigned char       BL     訩  BX
         _BH       unsigned char       BH     訩  BX

         _CX       unsigned int        CX     /稪,稪
                                                           横
         _CL       unsigned char       CL     訩  CX
         _CH       unsigned char       CH     訩  CX

         _DX       unsigned int        DX      / ᮤঠ騩 
         _DL       unsigned char       DL     訩  DX
         _DH       unsigned char       DH     訩  DX

         _CS       unsigned int        CS     ᥣ 
         _DS       unsigned int        DS     ᥣ 
         _SS       unsigned int        SS     ᥣ ⥪
         _ES       unsigned int        ES     ⥫ ᥣ

         _SP       unsigned int        SP     㪠⥫ ⥪
                                            (ᬥ饭 ⭮⥫쭮 SS)
         _BP       unsigned int        BP     㪠⥫ 
                                            (ᬥ饭 ⭮⥫쭮 SS)
         _DI       unsigned int        DI     ᯮ 
                                              ॣ஢ ६
         _SI       unsigned int        SI     ᯮ 
                                              ॣ஢ ६
     

            12.6. ᥢ६ ࡮ 


            祣      אַ 饭  ⨬
     ६  ࡮  ?

           ᥭ  ॣ ண  祭  ।  맮
     ஢ ணࠬ. ਬ,  맢 ।
     ணࠬ  , ᯮ INT (뢠),  易⥫쭮 
     ।⥫ ᥭ  室 ଠ樨  ।
     ॣ, ਬ ⠪:

     void readchar (unsigned char page, unsigned char *ch,
                                        unsigned char *attr);
     {
        _AH = 8;           /* 樨:  , ਡ */
        _BH = page;        /*  ࠭ ᯫ*/
        geninterrupt(0*10) /* 맮 뢠 INT 10h */
        *ch = _AL;         /* 祭  ASCII ⠭  */
        *attr = _AH;       /* 祭 ਡ ⠭   */
     }

           ,   樨   ࠭ ᯫ ।-
       ணࠬ  INT 10h,  頥 祭 -
       ch  attr.

          C ᥢ६묨   ⠪,    
       ६  ᮮ⢥饣  ⨯  (unsigned int 
     unsigned char).   ,   뫠  ॣ -
     ,    祩, 뢠   ᯮ짮  ࠭-
     祭  ᮣ襭:

          -    ᯮ짮    (&) ᮢ⭮ 
     ᥢ६, .. ᥢ६   ;

          - ⠪      ,  ᯮ騥 -
     ,     ࠭⨨ ⮣,  祭, ᥭ 
     ᥢ६,   ࠭ ⠬ ⥫쭮 ६.  -
     ,      祭  ॣ  ।⢥
     ।  믮     롨   १ ࠧ 
     ᫥   襭,  ,  ਬ,    ।饬  砥  
     readchar.    ᮡ  ᠥ  ॣ஢  饣  祭
     (AX,AH,AL  ..),  ..   ᢮ ᯮ    
     ६ , , ஬ ⮣, ᠬ     -
       ६,  ᯮ, ਬ, CX  ⠭
     ࣠樨  横   믮 樨 ᤢ,   DX - 
     ࠭ 襣 ᫮  16-⭮ 㬭;

          -   㢥७  ⮬,  ᥭ  ॣ -
     稭 ࠭  믮 맮 㭪樨. ਬ:

          _CX = 18;
          myFunc();
          i = _CX ;

           ६  맮 㭪樨 ࠭   ॣ,   
     ࠭⨨,   i  祭 18.  ,   ᫥ 맮
     㭪樨, 稭 ࠭   ॣ _CS,_BP,_SI  _DI;

          - 室  祭 ஦ ᯮ짮  ॣ-
     ,  ..    ਢ     -
     ⠬.  ਬ, אַ ࠭ 稭  _CS,_SS,_SP 
     _BP   (  ᥣ 㤥) 稭  ⮣,    
     ணࠬ 㤥 ࠡ ⮩稢,  .. , ᮧ -
     ஬ ࡮ , ᯮ  ॣ  㣨 楫.



                  ᯮ짮 ஥ ᥬ
     -----------------------------------------------------------------

           㦥 ,    ⤥ ணࠬ  -
     ᥬ     ணࠬ  ࡮ .  ஬ ⮣
     ࡮   ᯮ짮  ᥬ ।⢥-
        ணࠬ.  뢠 ஥ ᥬ஬.

           ⮣, ⮡ ᯮ짮 ஥ ᥬ  -ண-
     ࠬ,     ᯮ짮   -.  ᫨  
     ᯮ  ,     ஥  ᥬ-
     ,     ।।    ᢮ ࠡ  ॡ
       ᭮  樥 -.     ⮣   -
        ணࠬ ⢥ত #pragma inline,   -
        -,    .

           㦭 易⥫쭮   ࡮ ᥬ(TASM). 
     ࢮ 蠣  ᮧ 䠩  ணࠬ  몥 ᥬ-
     ,  ⥬ 뢠 TSM, ⮡  .OBJ 䠩.

            ⠪  ᫥    ⥪    8086.
     ஬ ⮣,  室 ,  ࠡ  ,  
      ᯮ,       ਬ.

          ᫨    ,    ⠥ ⮫쪮 ᯮ짮
     祢 ᫮ asm  ⮣, ⮡  ⠢  ஥
     ᥬ.  뢠  ᫥饬 :

          asm < 樨> <࠭> <;  ᨬ  ப>

     :
          - < 樨> - ⨬  8086 (⠡  -
            ⨬묨  ਢ );
          - <࠭> - ᮤঠ ࠭,  ⨬   -
            ,    뫠   -⠭,  ६  
            ⪨;
          - <;  ᨬ  ப> - 窠   ⮩    
            ப, 㪠뢠騥  砭  asm.

            asm  ࠧ  ⮩  ப, ᫥
     ᫥ 窨  ⮩,      த   ᫥
     ப.

          窠   ⮩     ᯮ짮  砫 -
      (    TASM).   ⮣,  ⮡ -
       asm, ᯮ ਨ  ⨫ , ..

       asm mov ax,ds;                  /* ਩ ࠢ*/
       asm pop ax; asm pop ds; asm iret;    /*਩ ࠢ*/
       asm push ds;                      !!

          ⨬,  ᫥ ப ਢ  訡, .. -
     ਩  ४⥭.

           < 樨> <࠭> ७ ।⢥ 
     ணࠬ  몥 ᥬ,  ࡮    -
      .   -䨪  ᮮ⢥騬 -
     ⠬  몥 ᥬ.

           ஥ ᥬ  ࠢ -
       ᥬ,  ⠪   訡     -
      㦥.  TASM 㤥   訡,  -
          .      TASM         ᯮ
     ⮭宦 訡  ᭮ ⮬,    -
       -ணࠬ ﭮ.

            asm ⠥  . ਬ:

           myfunc()
          {
             int i;
             int x;
             if (i > 0)
                asm mov x,4
             else
                i = 7;
          }

            ⨬  -  if.  ⨬,  
       室 ⠢   ⮩ ᫥  mov x,4.
      asm  ⢥ ஬ ,  
       ᨬ   ப.  ⮣   ⠫쭮  몠 ,
     ,  ᮣ襭 ਭ  ᮢ⨬  ᭮묨 -
     ࠬ UNIX.

           ᥬ     ᯮ짮  믮塞
       㭪樨   譥     㭪樨.
      ᥬ, ᯮ  㭪樨, 室  ᥣ-
       (DATA),  ᯮ  㭪樨 -  ணࠬ-
      ᥣ (ODE).

          ਢ    ஥  ᥬ    㭪樨  min
     (।⠢ ࠭  ⮩   ࠧ "ࠢ  -
     頥묨 祭ﬨ").

          int min (int V1, int V2)
          {
            asm mov ax,V1
            asm cmp ax,V2
            asm jle minexit
            asm mov ax,V2
            minexit:
            return (_AX);
          }

           ਬ 뢠, 祬 ᯮ짮 ஥ -
     ᥬ  ࡮     魮,  祬 맮 .ASM ண-
     ࠬ.  ਬ ࠡ⠥  ﬨ, 㥬묨   -
     让, ⠪    ﬨ  ,      ᪠,  ⠪    
     -ᮣ襭ﬨ  맮.

             .ASM ᥣ     ᨬ
         ᮣ襭  맮 (  ᪠).   .ASM
        min  ᥣ ⢥砥  ᬥ饭 ࠬ஢ 
     ᠭ 䨪 (_min  MIN); ⮣  㦭   砥
     ᨨ ஥ ᥬ.

          砭:   ᮡ 맮 _emit_, 騩
     ணࠬ஢  ஥ ࡮ ᪠.    -
     ଠ樨    _emit_ 뫠     2 "㪮⢠
      ࡮ ".

            権 8086   祭    
     ஥  ᥬ.   4  , ᪠
     ஬ ࡮ :

        - ଠ  -    権 8086;
        - ப  - ᯥ樠  ࠢ ப;
        -  室 - ࠧ  室;
        - ४⨢ ᥬ - ।  ࠧ饭 .

          ⨬,   ᪠  ࠭,   ᫨
      訡  ⨬  窨 ७ ᥬ.  -
       뢠 ࠭祭  ଠ ࠭.



               
     -----------------------------------------------------------------

            ᫥  ᯨ᮪  ,  
      ᯮ짮  ⢥ ଠ :

     
     aaa     fcom          fldl2t         fsub          or
     aad     fcomp         fldlg2         fsubp         out
     aam     fcompp        fldln2         fsubr         pop
     aas     fdecstp **    fldlpi         fsubrp        popa
     adc     fdisi         fldz           ftst          popf
     add     fdivi         fmul           fwait         push
     and     fdivp         fmulp          fxam          pusha
     bound   fdivr         fnclex         fxch          pushf
     call    fdivrp        fndisi         fxtract       rcl
     cbw     feni          fneni          fyl2x         rcr
     clc     ffree **      fninit         fyl2xpl       ret
     cld     fiadd         fnop           hlt           rol
     cli     ficom         fnsave         idiv          ror
     cmc     ficomp        fnstcw         imul          sahf
     cmp     fidiv         fnstenv        in            sal
     cwd     fidivr        fnstsw         inc           sar
     daa     fild          fpatan         int           sbb
     das     fimul         fprem          into          shl
     dec     fincstr **    fptan          iret          shr
     div     finit         frndint        lahf          sbc
     enter   fist          frstor         lds           std
     f2xm1   fistp         fsave          lea           sti
     fabs    fisub         fscale         leave         sub
     fadd    fisubr        fsqrt          les           test
     faddp   fld           fst            mov           wait
     fbld    fld1          fstcw          mul           xchg
     fbstp   fldcw         fstenv         neg           xlat
     fchs    fldenv        fstp           not           xor
     fclex   fldl2e        fstsw
     

                    12.7.   権


          砭:   ᯮ      80186  
       ஥ ᥬ,      -
      ப -1.   맮 뢮   ᥬ -
     室 ஢,  ⠪  TASM 㤥 ࠢ쭮  -
      .  ஬ ⮣,  ᫨    ᯮ    ࠭
     ᨨ ᥬ,      ন.

          㣮 砭: ᫨  ᯮ ஥ ᥬ 
     ணࠬ    樥    饩 窮 ( TCC
     -f),  樨, 祭 (**),  ন.



               ப 
     -----------------------------------------------------------------

             ᯨ  権 ᫥騥 ப -
           ᯮ짮  ᠬ⥫쭮   䨪ᠬ
     ७:

     
          cmps       insw       movsb       outsb       scasw
          cmpsb      lods       movsbw      outsw       stos
          cmpsw      lodsb      msb         scas        stosb
          ins        lodsw      outs        scasb       stosw
          insb       movs
     

                    12.8. ப 



               䨪 ७
     -----------------------------------------------------------------

            ᯮ짮 ᫥騥 䨪 ७:

          rep      repe       repne      repnz       repz



                室
     -----------------------------------------------------------------

           室 ࠪ ᯥ樠쭮. T  ⪠  -
       祭   ᠬ  ᥡ,  室  
      -⪠  (ᬮ७  ࠧ "ᯮ짮  -
     室  ⮪"). 襭 ᫥騥  室:

     
            ja        jge       jnc       jnp       js
            jae       jl        jne       jns       jz
            jb        jle       jng       jnz       loop
            jbe       jmp       jnge      jo        loope
            j        jna       jnl       jp        loopne
            jcxz      jnae      jnle      jpe       loopnz
            je        jnb       jno       jpo       loopz
            jg        jnbe
     

                      12.9.  室



               ४⨢ ᥬ
     -----------------------------------------------------------------

           ஥ ᥬ ࡮  ࠧ襭 ᫥騥 ४-
     ⨢:

         db         dd         dw         extrn



          ⥫ ஥ ᥬ    㭪
     -----------------------------------------------------------------

             ᯮ짮  -䨪   asm;
     ࡮  㤥 ⮬᪨ ॢ   ᮮ⢥騥 -
     ࠭  ᥬ  ⠢  ન   -
     ஢.    ᯮ짮  䨪,  -
     ⮬᪨  ()  ६,  ॣ஢  ६ 
     ࠬ 㭪樨.

           饬, 䨪    ᯮ짮   -
     樨,  ᪠  ࠭. ⭮,  ॣ஢
     ६   ᯮ짮 ⠬,  ॣ - ⨬
     ࠭.

          ᫨ ணࠬ    ६  ࠬ᪮ ࠧ ࠭
      ஥ ᥬ ⠫  䨪, 
       믮  ⠡ 䨪஢ .  ॣ-
     ஢ 8086 ᪫  ⮣ ᪠.   ᯮ짮 
          ॣ஢.



               ஥ ᥬ  ॣ஢ ६
     -----------------------------------------------------------------

                 ॣ-
     ஢  㭪:   ॣ஢ ६,   ⮬-
     ᪨ () ६.  ᫨  祢  ᫮  register
     砥    ,  ஥    ॣ஬,  
     祢 ᫮ .

           ॣ   ࠧ饭 ⮫쪮 short, int ( ᮮ-
     騥  unsigned ⨯)  塠 ६ 㪠⥫.
     SI  DI -  ॣ 8086,  ᯮ㥬  ॣ஢  -
     . ᫨  㭪樨    ॣ஢ ६,
      ணࠬ ஥ ᥬ   ᢮  ᯮ짮
     SI   DI  砩 ॣ.  㭪   室  室
     ⮬᪨ ࠭  ⠭ ॣ SI  DI  -
     饩 ணࠬ.

          ᫨  㭪樨  ॣ஢ ,  ஥
     ᥬ  ᯮ짮     祭  ॣ஢
     ६,  ᯮ  SI  DI.    ।⥫
     ⮤ ⮨  ⮬, ⮡ ᯮ짮 䨪   砥
     ७ ᯮ짮 ॣ஢ ६.



                        ஥ ᥬ:
                ᬥ饭  饭 ࠧ஢ ࠭
     -----------------------------------------------------------------

           ६ ணࠬ஢   㦭 ᮢ -
      ᬥ饭ﬨ  ६.  ᯮ짮  -
       ࠢ ᬥ饭.

          ,   室  ᮮ⢥-
     騥  WORD PTR,  BYTE PTR  㣨 饭 ࠧ஢ ࠭
     ᥬ୮ . 饭 WORD PTR 室  LES  -
      ᢥ far-맮.



               ᯮ짮 ⮢ -
     -----------------------------------------------------------------

          , 筮,  뢠    
     ஥ ᥬ      浪,   ..     
     <variable>. <member>.  ⮬ 砥     ६ 
      ࠭       祭. ,  ⠪
       ।⢥ 뢠  (    ६-
     ),  ᯮ  ᫮  ⠭.   ⮩ 樨 ⠭
     ࠢ ᬥ饭 ( )  砫  ,  ᮤঠ饩  
     . ᬮਬ ᫥騩 ணࠬ ࠣ:

          struct myStruct {
             int     a_a;
             int     a_b;
             int     a_c;
          } myA ;

          myfunc()
          {
        ...
             asm mov  ax,myA.a_b
             asm mov  bx,[di].a_c
        ...
          }

            ⨯ ,   myStruct,  3 童:
     a_a,  a_b,  a_c,   ⠪  ६ myA ⨯  myStruct.
         ஥  ᥬ    稭   
     myA.a_b  ॣ AX.  ன  稭    [di]  +
     ᬥ饭 (a_c)  ॣ BX (  ,  ࠭ 
     DI,      ᬥ饭 _  砫 myStruct).   ⮩
     ᫥⥫쭭  ᥬ஢᪨  ந ᫥-
      ணࠬ:

          mov   ax,  DGROUP : myA+2
          mov   bx,  [di+4]

           祣     ᤥ?  ᫨  -
      ॣ (⠪,  DI) ᮬ  ⨯ myStruct, 
       ᯮ짮 ,  ⮣ ⮡ ।⢥ 㪠-
     뢠 .     ᯮ짮   -
     樨,    ᫥ ⠭ ࠧ襭  ࠭ ⢥ত
     ᥬ.

             稭  窨  (.)    ⮣,
     ⮡ 㪠뢠,   ᯮ  童 ,   -
      䨪 .   ⮢   ᥬ-
     ஢᪮  ᫮묨 ᬥ饭ﬨ ⮢   (᫮
     ᬥ饭 _  4),   ⨯ ଠ樨  ࠭.  ⮬
          ᯮ짮 ⮫쪮  ६ 樨 -
     ᥬ஢᪨ ஢.

          ,   ࠭祭: ᫨   ᯮ
             ,       
     㣫 ᪮, ᤥ    ஬.



               ᯮ짮  室  ⮪
     -----------------------------------------------------------------

           ஥ ᥬ   ᯮ짮  ᫮-
       ᫮  室,   ⠪   横.  
       ᨫ ⮫쪮  㭪樨.     asm 
          ⪨,    室    ᯮ짮
     -⪨ ஢ goto  ꥪ 室.  far--
        ஢.

           ᪠ ᢥ 室.   ⮣,  ⮡  -
     짮  ᢥ  室,    ਬ  ॣ
      ࠭  室.   ᫥饩 ணࠬ 室 
      -⪥ ""  goto.

          int    x()
          {
          a:                               /*  goto ⪠ "" */
              . . .
              asm jmp  a                   /* 室  ⪥ "" */
              . . .
          }



               㭪樨 뢠
     -----------------------------------------------------------------

          ய 8086 १ࢨ  1024   
      256 㤠 㪠⥫ (뢠 ࠬ 뢠)
      ᯥ樠 ⥬ ணࠬ ࠡ⪨  뢠.  
     ணࠬ 뢠 믮 

          int <楫 ᫮>,

      <楫 ᫮> ਭ 祭  0h  ffh.  ⮩ -
       ࠭ ணࠬ ᥣ (CS), 㪠⥫ 
     (IP)  䫠 ﭨ, 頥 뢠  ⥬  㤠-
       室    ணࠬ ࠡ⪨,  ᮮ⢥饩 
     뢠. ਬ, 뢠

          int 21h

     뢠 設⢮  ணࠬ.    -
       ⢮.    ᢮ ᮡ⢥ -
     稪 뢠  ⠭ 㤠 㪠⥫     -
       ᯮ㥬 ஢.

            ⮣, ⮡  ࠡ稪 뢠  ࡮ ,
     室 । 㭪 ⨯  interrupt.    筮  
      룫拉 ⠪:

          void  interrupt myhandler (bp, di, si, es, dx, cx,bx, ax,
                                     ip, cs, flags, ...);

             ,  ॣ ।  ࠬ,
     ⠪       ᯮ짮  ஢   ணࠬ
      ਬ ᥢ६, ᬮ७ ࠭  ⮩  -
     .    ⨬,     ⥫ ࠬ
     (flags, ...), । ࠡ稪.  । ᮮ⢥-
     ⢥.

          㭪樨 ⨯ interrupt  ⮬᪨ ࠭ (  -
       SI, DI  BP) ॣ  AX  DX, ES  DS.   -
      ⠭  室  ࠡ稪 뢠.

               ࠡ稪 ॢ  ᯮ-
      䬥᪨ 樨  饩 窮.  直  -
     稪  뢠,    ᯮ  ᮯ 8087/80287,
      ࠭  ﭨ   室 ⠭  .
     㭪  뢠    ᢮ ࠬ. 
      ࠬ஢ 㤥 ஢  ᮮ⢥騩  -
         室  ࠡ稪.  㤮,  ᯮ
     ࠡ稪 뢠  㦨 ᮢ 짮⥫,  
       筮  ࢨ᭮    INT 21.  ⨬,
       室    ࠡ稪  뢠  ⢫  
     IRET(饭  뢠).

          祬     ᢮ ᮡ⢥ ࠡ稪 뢠?
     ० ᥣ ⥬, ⮡  ࠡ⠫,    ࠡ  設⢮
     १ ணࠬ.  ⠭ ᠬ ᥡ  ࠡ稪
     뢠.  ࠧ, 直 ࠧ,  ந室 --
       ᯥ樠    ਮ᪨ ⢨ (४祭 ᮢ,
     ⨥     ..),  ணࠬ 墠뢠-
      饭  ணࠬ ࠡ⪨ 뢠    ।,
      ⢨ 室 ந. 믮 ,  ⥬ -
       । ࠢ 室 ணࠬ ࠡ⪨ 뢠-
     .



               ਬ ணࠬ஢   ஢
     -----------------------------------------------------------------

           㦥  ᪮쪮 ਬ஢ ⮣,  ᯮ짮 ࠧ-
       ਥ ணࠬ஢   ஢  襩 ணࠬ-
     ;  ⥯ 諮 ६   .   砫 
     㤥  ॠ ࠡ稪 뢠,   -
          (,    砥, 訬).
      㤥 㪮 ᨣ, 맢 㤠-.

          -,  㦭  㭪  ⠪.  㤥
     룫拉 ⠪ ࠧ:

          #include      <dos.h>

          void interrupt mybeep(unsigned bp, unsigned dl, unsigned si,
                                unsigned ds, unsigned es, unsigned dx,
                                unsigned cx, unsigned bx, unsigned ax)
          {
             int   i,j;
             char  originalbits,bits;
             unsigned char bcount = ax >> 8;

             /*  ⥪騥 ⠭ ࠢ饣  */
             bits = originalbits = inportb (0x61);

             for (i = 0; i <= bcount; i++){

             /*  ६ ⪫  */
              outportb(0x61, bits & 0xfc);
              for (j = 0; j <= 100; j++)
                ; /* ⮩ */

             /*     । ६ */
              outportb(0x61, bits | 2);
              for (j = 0; j <= 100; j++)
                ; /* 㣮 ⮩ */
              }

             /* ⠭ ⠭ ࠢ饣  */
              outportb(0x61, originalbits);
          }

           室  㭪,  ⠭  -
     ࠡ稪  뢠.    ।     ᠭ ࠭
     㭪樨  ᮮ⢥騩  뢠 (0 ...255  000...0
     FF).  㭪  믮 3 ⢨:

          -  뢠, ⮡  ६ ୨樨  -
             ⠡  ந諮 祣 ।;
          - ࠭ ।   ᮮ⢥饬 ;
          - ࠧ 뢠, ⮡  ᭮ ࠢ쭮 ࠡ⠫.

           ணࠬ ன 㤥 룫拉 ⠪:

          void install(void interrupt (*faddr)(), int inum)
         {
             setvect(inum, faddr);
         }

          ,   맢 ணࠬ 㪮 ᨣ-
       ⮣,  ⮡ ࣭  ஢થ.   ᤥ ⠪
     㭪:

          void   testbeep(unsigned char bcount, int inum)
          {

             _AH = bcount;
             geninterrupt(inum);
          }

            㭪 main  ᫥騩 :

          main()
          {
              char  ch;

              install(mybeep, 10);
              testbeep(3, 10);
              ch = getch();
          }



      ᯮ짮 ⥪ ணࠬ  ࠡ  饩 窮
     -----------------------------------------------------------------

             ࠡ⠥   ⨯ ᥫ:  楫묨 (int, short,
     long  ..)   饩 窮 (float,  double). ⠭
      襩 設   ࠡ⠥   楫묨  祭ﬨ,  
      ࠡ  饩 窮  稢  ६  -
     ᮢ.

          , ᥬ⢮ ஢ iAPx86    ᮮ⢥饥
     ᥬ⢮ ⥬᪨ ᮯ஢ 8087  80287. 8087  80287
     (   㣮  뢠  ᮯࠬ) -  ᯥ樠-
       䬥᪨ ,     ⠭ 
      .   믮   饩 窮  祭  .
     ᫨  ࠡ⠥  稭,     砥 -
      窠,    ६  ࠡ  ᮯ-
     ஬.   ࠫ        襬      
     8087/80287 ।⢮ ᯥ樠 뢠.

          ࡮    ᯮ짮 ணࠬ ।⢥-
       襣    㦤.

          - ᫨    㤥  ᯮ짮 祭  饩 -
     , ᮮ  ⮬ ࠭ .

          - ᫨  㦭 ᯮ짮 祭   饩  窮,
           䬥᪮ ᮯ (8087/80287), 
     ᮮ ࡮ ,   믮   ᯥ樠  -
     ணࠬ  ⠪ ,   ᫨     ᮯ.  ⮬
     砥, ᫨  ணࠬ ࠡ⠥  設  ᮯ஬, 
     㤥 ᯮ짮 ⮬᪨,  ணࠬ 㤥 믮
     祭 .

          - ᫨   ணࠬ  ⥬,   䬥-
     ᪨ ᮯ,    ।  ࡮  
     ᯮ짮 ணࠬ,    ᥣ ࠡ⠥  ᮯ஬
     8087/80287.

            ᫥  ਬ      TLINK ।, 
     䠩 TURBOC.CFG   ४⭮ ⠭ ⮢ -L 
     -I   ⥪  砫 ꥪ 䠩 ࠭   -
     ⠫, 㥬 LIB.



                奬 8087/80287
     -----------------------------------------------------------------

          ।,    ᯮ짮 稭  饩
     窮    ணࠬ, ᯮ 稭  饩
     窮,        䬥᪮ ᮯ,
      㤥  믮  ணࠬ? ᯮ, ࡮  -
       ⮩ 樨.

           ᮮ⢥⢨   樥 樨  㤥 -
      ணࠬ ⠪,  ᫨  8087/80287   ,  ணࠬ
     㤥  믮   ⥪ 樨 (EMU.LIB).  
     믮 ணࠬ 㤥 ᯮ짮 8087/80287, ᫨  ;
      ⨢ 砥 ணࠬ 㤥 ᯮ짮 ᯥ樠쭮 ண-
     ࠬ ᯥ祭  8087/80287 - .

          ⥪ 樨 ࠡ⠥ ⠪:

          -     ணࠬ  稭 믮,  砫쭠
     -ணࠬ ।,   8087/80287  ;

          - ᫨ ᮯ ,  ணࠬ   ᯥ樠
     뢠     8087/80287  ࠧ  ᯮ짮  奬
     8087/80287  ணࠬ 짮⥫.

          - ᫨ ᮯ ,  ணࠬ ⠭ 뢠-
       室  樮 ணࠬ.

            ஢ RATIO.C ⠪ ࠧ:

          main()
         {
             float  a,b,ratio;

             printf("   祭:  ");
             scanf("%f %f",%a,%b);
             ratio = a/b;
             printf("  㤥 %0.2f\n",ratio);
          }

          ᫨   ᯮ   ( 짮⥫᪮ 䥩-
     ),   㦭    Options,    Compiler,  
     Code  generation    ⥬ 롨  Floating-point  
     ,    ᫥饬    Emulation.   -
        ᢮ ணࠬ, ࡮  ⮬᪨ -
     ࠥ   ᮮ⢥騥 樨  ⥪.

          ᫨  ᯮ  (⮭ ),   -
      ப 㤥 룫拉 ᫥騬 ࠧ:

          tcc -mX ratio

          ᫨  믮  १饩 ணࠬ  -
      ப,    筮 ।    ᮮ⢥
     ⥬  ⥪  (  ࠧ ),  ⠪ 
     䠩 EMU.LIB.   樨 (-f) ⠭   㬮砭,
     ⠪   㦭  , ᫨  䠩 TURBOC.CFG  -
        ४⥫ 饩 窨 (-f-  -f87).

          맮 TLINK 㤥 룫拉 ⠪:

          tlink lib\c0X ratio, ratio, ratio, lib\emu.lib lib\mathX.lib
                lib\cX.lib

      X - 㪢,  ᮮ⢥  ⥪.

          砭:  tlink 뢠   ப.
           ,  冷 ⥪ 祭 .



              ᯮ짮 奬 ⥬᪮
                      ᮯ 8087/80287
     -----------------------------------------------------------------

          ᫨  ᮫⭮ 㢥७,   ணࠬ 㤥 ࠡ
     ⮫쪮  設,   奬 8087  80287,   
     ᮧ  ணࠬ,   㤥 ᯮ짮 २⢠ ⮩
     奬.  ⮬ 砥 १騥 . 䠩  ,
     ⠪     ࡮      㤥    ணࠬ  樨
     8087/80287 (EMU.LIB).

          ᫨  ᯮ ⥣஢  ࡮ ,  ᫥-
       ३      Options,   Compiler,   Code
     generation  ⥬ 롨  Floating point      ,
       ᫥饬     "8087/80287".  
        ᢮ ணࠬ,  ࡮  㤥 ⮬-
     ᪨ 롨   㦭 樨  ⥪.

          ᫨  ᯮ  (⮭ ),   㦭 
      ப ᯮ짮  - f87,  :

          tcc -f87 -mX  ratio

            㪠 ࡮  ஢ ஥ 맮  
     奬  8087/80287.    TLINK  맢,  䠩 FP87.LIB 
     MATHx.LIB  ᪮.

          ᫨  믮  १饩 ணࠬ -
     ,   ।  ᮮ⢥ ⥬ -
     ⥪ (  ࠧ ), ⠪  ⥪ -
      FP87 ᫥騬 ࠧ:

          tlink lib\c0X ratio, ratio, ratio, lib\fp87.lib
                lib\mathX.lib lib\cX.lib

      ,  ᥣ, 砥 㦭  ⥪.



                 ᫨   ᯮ  ...
     -----------------------------------------------------------------

          ᫨   ணࠬ    ᯮ   ணࠬ 
     饩 窮,  騪  㤥 ⢮ ᮮ⢥-
     騥  ⥪ (EMU.LIB  FP87.LIB ᮢ⭮  MATHx.LIB),
      ᫨      ப.   稢  -
     ⥪   ப 騪,   ⨬஢
     蠣 믮  (᫨  ணࠬ  ᯮ  -
     樨  ᫠  饩 窮).

         ।,    ஢   ᫥
     ணࠬ (ᠭ  RATIO.C):

          main()
         {
            int a,b,ratio;

            printf ("  祭:   ");
            scanf ("%d %d", %a,%b);
            ratio = a/b;
            printf ("  㤥 %d\n",ratio);
          }

             ணࠬ  ᯮ ணࠬ  饩
     窮,       롨, ஢    樥
     饩 窨   饩 窨 .

          ᫨  ᯮ ⥣஢  ࡮   訫
     ஢    樥,    롥 Compile to OBJ  
     Compile ( 祭  㬮砭). 騪 㤥 -
       ⥪  饩 窮  蠣 ⠭ 痢,  
         㤥 ॠ쭮 ⠭.

          ᫨   ᪮  ,    -
      ० " 饩 窨". ३   Options, -
       ompiler,  롥  Code generation,  ⥬ - 
     Floating point.

           ᪮쪮  ࠧ  ""  横 ⮩ ,
      ன 3 樨:  None, Emulation  8087/80287.  㦭 -
       None.     "Esc" 3 ࠧ,  ⮡   -
     -  (  F10).

                 ணࠬ  ०
     Floating point, ⠭  None, ࡮   ⠥ -
     , ᯮ ⥬᪨ ணࠬ  饩 窮.

          ᫨  ᯮ TCC (⮭ ),  ਬ-
       -f-   ப:

          tcc  -f-  -mX  ratio.c

           ନ ࡮   ⮬,   襩 ணࠬ 
        饩 窮,   ⠪  ⮬,  ᯮ짮
       ,    - 㪢,    -
      (t = tiny (⭠),  s = small (), c = compact (-
     ⭠),  m  = medium (c।),  l = large (),  h = huge
     (஬)).

            RATIO.C - ⮭ ணࠬ,   㤥 ⮬-
     ᪨ 뢠 TLINK  믮   COx.OBJ  Cx.LIB,
       १   RATIO.EXE.

          ᫨  ᯮ짮  "⮫쪮 " (-c)  -
      ப ,   १饩 ணࠬ 室-
      믮 .  ⮬ 砥   㦭  ᯥ஢
     -  ⥬  ⥪;  맮  TLINK 㤥 
     :

          tlink lib\cOm ratio, ratio,  ratio,  lib\cx.lib

           ⮩  믮  .OBJ  RATIO.OBJ 
     ᯮ짮  ⥪ Cx.LIB,   ᮧ 䠩 RATIO.EXE 
     RATIO.MAP.



               ६ । 87
     -----------------------------------------------------------------

          ᫨  ந ᢮ ணࠬ  樥 8087/80287  (-
       ᫮,  롨ࠥ    Floating point...Emulation 
     砥  -f   ப ),    ᪥ ண-
     ࠬ  砫  C0x.OBJ 㤥 ᯮ짮  -
     㦥 8087/80287.  砥,  砫쭠 ணࠬ -
      ⮬᪨ ஢, 㯥  8087/80287.

          ᫨ 8087/80287  㯥,   ணࠬ 㤥  ᯮ짮-
     ; ᫨  㯥,  ணࠬ ᯮ ணࠬ
     樨.

           樨,       ⪠-
       ਭ⮣  㬮砭 ⮤  ⮮㦥.  -
     , ਬ塞  ᯮ ⥬   8087/80287,
        㡥,    ணࠬ 㤥 ࠡ  -
     ⥬  ᮯ.   ணࠬ  ॡ 
     믮  -ᮢ⨬ 設,   設 頥 -
       ⮮㦥   ଠ (,   -
     騩 8087/80287 㯥  ).

          ࡮  ।⠢   饭 ⬠ ⮮-
     㦥 砫쭮 ணࠬ;   - ६ । 87.

           ⠭ ६ । 87  ਣ襭   
       SET ᫥騬 ࠧ:

          C> SET 87=N

     

          C> SET 87=Y

          ⠭ ६ । 87  N ( No) 㪠뢠 砫-
      ணࠬ,     ᯮ짮 8087/80287 ( -
         ⥬).

          , , ⠭ ६ । 87  Y ( Yes) -
     砥,  ᮯ ,   , ⮡  ணࠬ-
      ᯮ짮 .  ।० ணࠬ! ᫨  -
      87=Y,   ᠬ  8087/80287   設,
      ணࠬ ௨   ᣮ  ᪮ .

          ६ । 87  ﭨ   ⠭ 
     㬮砭  ⮮㦥 ⮬,    稭
     믮 ᢮ ணࠬ,  砫쭠 ணࠬ   -
     , ।  ६ । 87.

          - ᫨ ६ । 87 ।,  砫쭠 ணࠬ-
       ᬮ ,   ணࠬ 믮  ᠭ -
     .

          - ᫨ ६ । 87  ।,  砫쭠 ண-
     ࠬ 室 १ ᢮  ⮮㦥  ⮣, -
       ஢, 㯭  奬 8087/80287,  ணࠬ -
     ⠥  ᮮ⢥⢨  १⮬ ⮩ ஢ન.

          ᫨ ६ । 87 । ( 祭),  
      ८। ,    ᫥饥 ࠦ  ਣ-
     襭 :

          C> SET 87=

     ( 砥 ⨥  "" ࠧ ᫥  ࠢ⢠)



                 8087/80287
     -----------------------------------------------------------------

           2 , ⭮   ॣࠬ,    
      뢠,  ᯮ  .

          -,    ० 樨 8087/80287 ॣ஢ 横-
     ᪨ 室  ন.

          -, ᫨  ᯮ   ᮢ⭮  
     ஥  ᥬ஬,  室  ᮡ ⥫
      ᯮ짮 ॣ஢, ⮬  ॣ 8087/80287 -
      । ࡮ -맮 㭪樨.      
     ࠭  ॣ  8087/80287    맮 㭪権, ᯮ饩
     ᮯ,  ᫨  㢥७,      筮
     ⢮ ᢮ ॣ஢.



               ᯮ짮 matherr  饩 窮
     -----------------------------------------------------------------

          ᫨    ६ 믮 ணࠬ 㦨 訡 
       ணࠬ  饩 窮,   ணࠬ  -
     ⮬᪨  뢠  _matherr   ᪮쪨 㬥⠬. ⥬
     _matherr  ᢮ 㬥⠬ ᮡ    (।-
        math.h)  뢠 matherr  㪠⥫   -
     .

          matherr -  楯,       ᢮
     ᮡ⢥  ணࠬ    訡.  㬮砭, matherr
     ⮫쪮 頥 0,  祣 . ,     
     matherr  ᮮ⢥騬 ࠧ  ⮣, ⮡ ᮧ ண-
     ࠬ ࠡ⪨ 訡 饩  窨.    ஢
     matherr 頥 稭, ⫨  0, ᫨ 訡 뫠 -
     ࠢ,  0  ⨢ 砥.

             祭    ஡   ଠ樨    matherr 
     _matherr ᬮ ᠭ matherr   2 "ࠢ筮 㪮-
     ⢠  ࡮ ".



                          ।०  ᮢ
                          ------------------------

                          ࡮  ᯮ RAM
     -----------------------------------------------------------------

           ६  樨 ࡮   ࠭  ᪥ ஬-
        (  ࡮  뢠 ⮫쪮  ꥪ-
      䠩 .OBJ).    ஬   ࡮ 
     ᯮ RAM. ⮬   ⮫  ᮮ饭 OUT OF
     MEMORY..., ᫨    筮 .

          ⮡   ஡, 㦭 ᤥ  㭪樨 
      ࠧ  䠩,    訥 㭪樨.   ⠪
       १ ணࠬ,  ⠭ ,   ⮡
     ᢮    ࡮ .



               㦭   ᯮ짮 ᪠-ᮣ襭?
     -----------------------------------------------------------------

          , ᫨ ⮫쪮  竨     ࠧࠫ  
     .

          ,  ᫨  ⠭ 裡  䠩 
      ᪠-ᮣ襭  맮,    main 
     -㭪:

          cdecl  main(int argc, char * argv[], char * envp[])




               祭
     -----------------------------------------------------------------

           㢨,    ᯮ짮  3 ᯥ ஢
     ணࠬ஢  ࡮  (ᥢ६, ஥ ᥬ-
     , 㭪樨 뢠);  ⠪ 稫   㣨 몠-
     ,   ᥬ;  뫨   묨 ⠫ﬨ
     ᯮ짮 ணࠬ  饩 窮;  﫨,  -
      ࠧ    8086.    -
     짮    ਥ  祭  ஫  -
     訬 ஬.   !
