

               2.   2: 
                             


             ਭ樯 쭮 ணࠬ஢
               ணࠬ  몥 ᥬ
              ஢
             䥩  몠 ᮪ ஢
             祭   ᯮ짮 쭮   
             祭


                1  㦤 뫮 䮪஢  ।⢠ -
         ୮ ணࠬ஢   ਬ   । ஠ᥬ
         MASM.   2 ।⠢ ⮤ ୮ ணࠬ஢
           ਬ  । MS-DOS  ய஢ 8086/8088.
             ஬ ⮣, ।⠢ ਠ ᮤন   ⤥-
          ⥬.   ⥬ 易  ஥஢   ணࠬ
           몥  ᥬ  ॠ樥 ⮣ ஥஢ ⥬ -
         짮  ஠ᥬ  MASM,  ம।     
         ।,  ⭮  ⨬ ஡.  ⥬ ࠣ -
          ᠭ,  來 (㤮⢮ ⥭),   
         㤮⢮  ᮯ஢ ਪ ணࠬ.   ,  
         ⮤   ⤥쭮   ᯮ짮  -
          ਪ ணࠬ  楫 襭  ⢠.

                       ਭ樯 쭮 ணࠬ஢

               ணࠬ,  ᠭ  몥 ᥬ,  筮
         㤭  ࠧ  ⠭  .  ᬮ  ᠬ 訥
         ७ 設⢠ ணࠬ⮢,    ணࠬ    
         ⮫쪮 ⠭ 裡  ஬ ᪮ ,  -
              ॡ  ⢥ ஭-
         ⥫쭮.    ⢥ত     砥  ᬠਢ
          㢠  ᯥ樠⠬    ணࠬ஢.  -
           ⠭    १⮬ 室
         ६    訬  ⢮  ⠫.  
          ࠢ  襭 ⮩ ஡.  ࢮ ࠢ -
         ⮨  饭 ᯮ㥬 ணࠬ ,   ᫮
         樨  ᫥⥫쭮      묨 ࠬ.
         孨᪨ ਥ,  ࠧࠡ⠭   1,  ᫥   
         ,  㬥 ⢮ ⠫,   ணࠬ-
           몥 ᥬ.  ,  ணࠬ     㤭
         ࠢ  訬 ⢮ 㭪樮 ⠫.
             ஥ ࠢ ⮨  ਬ  孨᪨ ਥ,
         ஦ 몠 ᮪ ஢ ⨫ ⮬ .  -
         楯樨 樨  쭮 ஥஢   ਬ-
         묨     ணࠬ஢  몥 ᥬ.   楯樨,
         㯮  騬    "୮  ஥஢",
           ணࠬ  ᥣ஢   ணࠬ 
         ⠪ ࠧ,  ⮡ ६ 室 ⮫쪮 墠뢠
         ஫ ⢮ ⠫.   㤥 ⥬ 襣 ᫥-
         饣 㦤.


                                      - 2-2 -
                               樨 ஥஢

             쭮 ஥஢   ⭮   
         童    ஡    㧪,   ࠢ塞
         ஡.   蠣 ஥஢  襭,  -
             ࠭  ⨬ ஡.
              祭 ᨬ २   ᯮ짮  -
         쭮  ணࠬ஢    ஡   
           室   室.   ⮬ 砥   ᫥-
           ⮪  ࠢ  ணࠬ.      
           㢨  室       ᪠:  "
          祭 ॣ஢ X,Y  Z  ⮩ 窥, ⮬   㪠-
         뢠 ...",   ⥬ ᫥ 㭪樮஢  
         ॢ    ᪠ ணࠬ.   室 ᯥ稢 
         ⮪ ࠢ   맮  맮 .   ⮩ -
         稭,   ணࠬ  ᥣ 믮  
         CALL-RET.
             ᯮ짮 ᪮쪨  ।  RET  㫥  
          ࠢ  室, ᪮  樨 RET -
           ࠢ      .  筮 ⠪,  室 
         饬 RET   ,    ,  -
                  㢥稢  ᫮.   㣮
         ஭,  室  室     ⮬ ࠢ ન-
           訥  २⢠  쭮 ணࠬ஢:  -
         , 㤮⢮ ᮯ஢.
              ᪫祭  ࠢ 室  .   ந室
          ᯮ짮 ⠡ 室  ॠ樨 ⮪  ࠢ-
           ணࠬ.  室 ᯮ ⥬ "-
         ⠫"    ⥪, ᫥  ॡ㥬
           室  ⠡  믮 室  . ਬ
         ⮣ ਥ   ⨭  ணࠬ  ࠩ  ன⢠,
         ਢ   6.
              ࠪ᪮ 믮 樨 㫥   ᠬ
           ஥  ⢮  ୠ⨢ 襭.  ० 祬
         ⢨ ࠢ 롮, 室  ୠ⨢. 
         ⮨    롮 ⠪ ୠ⨢,   ᮧ 訥
         ᫮ ஥஢.

                            㭪樮쭠 

              饭  ஡  ⠤ ஥஢  -
         ୠ⨢ 롮஬   㭪樮쭠 , ..
         ࠧ ஡   㧪,   騥 ࠢ
         㭪樮 ,    믮 襭,
          㥬 .   ⢮ ⥩ ।-
           ᮤঠ .     ਬ  -
         ,  믮 । 㭪樨: 祭 ⭮-
           ண ᫠;  믮  権 ⭮⥫쭮
         㪠 ன⢠ ⠪,  樨 / ᪠, 樨 /
         ;  믮騥   㯯 ⢨  㪠 ६
         ⠪,  樠 ⥩ ;  ,  -
          ᫥⥫쭮  ᯮ 騥  
         ⠪,   뢠     ८ࠧ   
         楫 祭.
              饥 ६   ணࠬ஢  몠  -
          ஢  ᥣ ਭ ⠪ 襭,   ।-
         ⠢ ᮡ 訩 ᯮᮡ  ᯮ짮 ᥣ樨 ண-

                                      - 2-3 -
         ࠬ.   ணࠬ஢  몥 ᥬ 筮  
         ⮫ ᫥⥫.   ࠭ ਢ ᯮᮡ -
         ,  ࠩ ,  砫쭮 窥  ࠧ ஡.
          㦨,    㫨 뢠  
           ਥ,  㣨 㫨 -   㣮. -
            砥      ணࠬ  ᥪ樨
         (筮  ࠭  ),  室  ࠢ쭮 -
         .

                  樨 ⢠ । ࠬ஢

              㦨,  ᫥ । 㫥 ணࠬ-
            ᮧ    ஬  㪫.    砥
         ⮣,   㫨  믮     -
          㯠  ୮  .   ᥣ  
          ந,  ᫨    믮  ᪮쪨
         権.  ⮡    ﭨ ணࠬ   ६,  
          ਭ 祭  ࠧ ६.  ᫨  ⠪,
           ,    ਭ 讥 ⢮ ࠬ஢,
         室 ⢥  ᫥騥  㯯 ᮢ:
             ࢠ:  ⮬ 㫥 ।ਭ ⪠ 믮 ᪮-
          㭪権? ॡ   ࠬ, ᯮ㥬   ⭮-
             ᥪ?  ᫨ ⢥    -
         ⥫,    室  ᭮         쭥襩
         ᥣ樨 ⮣ .
             :  ।⠢ ᮡ 㭪樮 ࠧ१?  -
            ᠬ  뢠騩  뢠 㫨  -
           ⮩  㭪樨? ᫨  ⠪,      
         ,  ᫨ १騩   ᫨誮 訬.
         ⥬ ஡ 믮 ᥣ    ᭮  ࠧ묨
         ᯮᮡ.
              㫥 १ 㭪樮 ࠧ१   ந-
         室 ⮣,   ணࠬ 㦨,   ணࠬ
         ᥪ樨   ᨫ쭮 宦   㣠. ணࠬ -
         ⥬  ⠥ ᮧ    .    쭮 ண-
         ࠬ஢,  ᪮ १騩     㭪樮-
         쭮 ᮥ.
             ᫨   ஥஢ 㤥 㦥,    祣
         ᤥ ,  ⮡  ᯮ짮 讣 ᫠ -
             । ⮪ ࠬ஢,  ୨ ⭮ 
         砫 ஥஢  ஢ ४⭮ ⠢ ஡-
         .

                    樨 ⢠ 室 맮

               ⢥ २ 쭮 ணࠬ஢
           ,    ணࠬ  ᭮ ஢ 祭  
          ᪮஢  ⥭  ᫥⥫쭮 뢠
         楤.   䠪 ⢥ 蠥 "" ணࠬ-
         ,  ᪮ ⥫     ᭮ ⮪
           㭪樮஢  ᫥  ⥭  ⮫쪮 - ࠭
         ணࠬ .      ᮡ  ⠪   
         ⪨.    孨 ᪨ 業 ணࠬ-
         ஢   ⮬,  90% ६ 믮 ⨯ ண-
         ࠬ 室  10 %  ணࠬ.  ⮬ ࠧ㬥,
          ᫨  10 %  ᮤঠ 讥 ⢮ 楯 맮
         楤,  㬬୮ ६, 稢  ࠢ  믮-

                                      - 2-4 -
          ணࠬ,    ८ ९⢨  
         ᯮ짮 ⮣ 室.
             ० 祬 ⪠  쭮 ஥㥬 ணࠬ,
         ஢,   뢠  ᨬ ணࠬ  ६.
         -, 設⢮ ணࠬ 稢   ६
         믮    ଠ樨  . ᫥ -
           ॡ㥬 㭪樨,  窨 ७ 믮 ⥫-
          , 筮  室 ६. 稥  100 -
         ᥪ㭤  100 ᥪ㭤  । 짮⥫ ࠧ稬.
             ⨢     ,   -
         騩 堭  CALL - RET  ४뢠 ॡ塞 -
         .  ࠢ  ﬨ 室  CALL 믮-
           30-50% ,  RET  ।   1 横.  쪮
            ਭ  室 । ࠬ-
         ஢,  ࠭ ॣ஢  .., 뢠 㦥묨 室-
         ,     ணࠬ  稭 룫拉   ࠢ-
           묨 ணࠬ.    ⮬,  㫨
          ணࠬ 筮   騬,  祬  -
         ஢ 㡫, 㫨  ணࠬ  ᯮ짮-
          뫪    ⥪  襩 ⮩. ⥫쭮
         ६,  室㥬  ᫥ ⢨⥫쭮     ⥫
         ,   ਢ   믮 ⭮ -
         , 祬 㧪 ஢ ⭠ ணࠬ.
             २⢠ 㦥 ணࠬ   ணࠬ 饣 祭
           ⮬,     ᯮ짮 㠫쭮 
         ஬    ணࠬ.   ᠭ 쭮 ணࠬ
         ணࠬ   ᪮쪮 ᮢ,  : -
           ॣ,   㦥 ⮣, ୮  ,   
         ᯮ짮.  쭮 ணࠬ஢ ணࠬ  -
          ⥬,   ॣ  ᯮ  騩 ,
          뢠    ࠬ  ⥪   ࠭
             ॣ஢  室.   ᮡ ᮧ -
          ᭠砫 ᯮ짮 ਥ 쭮 ணࠬ஢ 
         襭  ᪮ ஢  ⥬ ࠡ⪨ ணࠬ 
         㤠 "㧪" .
              ⥩,  ⢨⥫  ᪮ ࠡ, 襩 ४-
         樥  롮 ᭮ ⢨  ணࠬ.  ᫨  
         㯮 ⮫쪮  ⢨⥫쭮  ᪮ ࠡ ணࠬ
         ᥪ樨,      祭  ""     뢠饣
         .  ᫨ 㣨 ᥪ樨 ᯮ ,     
         ᪮஢  뢠騩   室 .    裡  
         ⥬,    ᭮ 뢠騩  ⠭ 訬,  室
         ⠢ ਨ   ⥫, 騥 砥  
           .  騥 ⥫ ᬮ ⥬  -
         ਨ  । 㭪権   ய   
          ⥭ ᭮ .

                        ࠢ 쭮 ணࠬ஢

              ⢥  楯樨  쭮 ணࠬ஢
             ᫥ ࠢ:
             -   稭.   ஡  㧪 㭪-
         樮 ,    ᨬ  㣨, ᪫-
          室   ࠬ;
             -  室 -  室.       ⮫쪮  
           室,     । ࠢ   맮.
          ࠢ       ணࠬ  -
         ⮪,    ன 뫮 । ࠢ (  

                                      - 2-5 -
          ஢,   㦤  ᫥饬 ࠧ  -
          ࠬ஢);
             - "KISS-ਭ樯"(Keep It Simple,Stuiped -    ,
         箪).  ᫮  ஢ . ᯮ
         ᫮  ⮫쪮  ᫮ 襣 㬥஢, -
         饣  蠣  ᯮᮡ  ஥஢;
             - 뢠 ஡⥩. ࠭稢 ஡ ᯮ-
          ॣ஢,     ..  ७-
          㫥.  ᪠ ॠ  ॡ뢠  -
         ⠢  ணࠬ;
             - ᫨  ᯮ  ᮡ  ६,  ᤥ  ⠪,
         ⮡  ६ 뫠 㬥㥬 ࠬ஬. 㬥
          ⢨, ⮡    ;
             -   㦥  訡  ⢨,   
           ।ਭ    訡.  ⢥⢥  
         ࠡ  ᪫⥫ 権,   ⭮,   -
            㫨. 筮 㫨  ஢ ।-
            訡  뢠騩 . ⢥⢥  -
         ⨥ 襭  ⨬ 訡 筮  १ࢨ    ﬨ
         孥 ஢.

                               ࠢ筠 
             ,  ।⠢   ࠧ,   ⪨ -
           楯樨  ୮  ணࠬ஢    쭮
         ஥஢.    ,      -
           ।.  ,   ⮩ ஡ 㯭 ஬
         ⢮ .  ᫨  楫 ⮨  ⮬, ⮡ 
         ᨮ   ணࠬ ᯥ祭,   㯨 -
               ⠩ .  ।⠢  
          ᪨ ࠡ⠬    ।    ࠦ
         㧪  ਬ  ॢ室  ࠡ  㯭 ᨮ쭮
         ஢:
             DeMarco, T. Structured Analysis and System Specification. New
               York: Yourdon,1978.
             Kane,G.,D.Hawkins and  L.Leventhal.68000  Assembly   Language
               Programming,Berkeley:Osborne/McGraw-Hill,1981.
             Tausworthe, R.C.   Standardized   Development   of   Computer
               Software.  Part  1.  Englewood Cliffs,  N.J.:Prentice-Hall,
               1977.
             Yourdon, E.U.,   and   L.L.Constantine.   Structured  Design.
               Englewood Cliffs, N.J.:Prentice-Hall,1977.
             Yourdon, E.U.  Techniques  of  Program  Structure and Design.
               Englewood Cliffs, N.J.:Prentice-Hall,1975.

                   ணࠬ  몥 ᥬ

                  ࠪ ࠧ   ,  ।
         ࠬ஢   㣨  ଠ.   㯨 ६ -
          ᬮ७ ⭮襭 ⮩ ଠ樨    ⭮  
         몠 ᥬ  । MS-DOS,  ஠ᥬ MASM  ய-
          8086.
             㫨   । MASM  ᥣ ন   -
         ४⨢ PROC.  㤥 ᯮ짮   ६  ⢥ -
          । 祪 室  室  ணࠬ.   ਬ
           ᯮ짮   ।  ࠭    㫥.
         ४⨢ PROC ᯮ MASM  । ⪨  ணࠬ-

                                      - 2-6 -
         ,  ⮬  ⮩ ⪥  ਡ near ()  -
         ਡ far ().   ਡ ᯮ  樨 
         ࠢ ⨯ 樨 CALL, ⠪  ࠢ ⨯ -
         樨 RET. ஡ ।⠢  ⨯ 権 ਢ
             ࠧ " ஢".    ० ᥣ -
          ,  ४⨢ PROC  㤮 ᯮᮡ -
         祭  ணࠬ   㭨 室  ﭭ  -
         室,  ࠧ ᭮ .

              । ࠬ, 㬥, ६ ⠭

              "頫"    ᫮ ࠬ,  㬥  ६
          ਪ  ⮫쭮 ⥭. 襩   ᫮
           塞  祭.    室 ।
         ࠧ   (    ᮬ   -
          筥).  ᫥ ⮩   㤥 ᥣ 
          ࠢ ᯮᮡ,  , ᥩ 室 ᭨ ᭮-
            .
              ⨥ "ࠬ"  " ࠪ-
         ".    饬 ᫥ ࠬ ।⠢ ᮡ 뫪  
          , ᯮ㥬 㫥,   楫  ᮤন
          ⮣ .  祬  ᫮ "뫪 "? ⮬,
          ࠬ   ᠬ , , ,   . ॥
         ᥣ, ࠬ  ⮤ঠ⥫ ( ࠪ⨪). -
         ਬ, ᬮਬ ࠢ Y+1.     業-
          ⮣ ࠢ,  ⮬  Y    祭-
         !  Y  ࠬ,   ⢨⥫ 祭
          ६ 業 ⮣ ࠢ.  ⢨⥫쭮 祭 뢠-
          "㬥⮬".
                । ⨥ "६". ண , 
         , ࠧ饭  ॣ  祩   ᮤঠ饥 -
          ,     쭥襬 .   ।饬
         ਬ Y ⠪  ६,  ᪮     
         ᨬ  ॡ㥬 ⥫.  ⮬ 㬥 ⮬-
         ᪨  ६묨 (  ).
              ࠧ,  ᫨  ꥪ   ,   
         ६.  ᫨   ६ ॡ  㫥  믮-
              ,       ६ 
         ࠬ஬.  㬥 -  ⢨⥫쭮 祭, ஥ -
          ६  맮 .
              ⠪ 室 ᬮ ᯥ樠 砩 "⠭-
         ".  ⠭ -  ꥪ , 祭 ண  
         .   몥 ᥬ ⠭     
         .       ।⢥   -
         権 (ਬ, mov al,4)     ࠧ饭  -
           㣨 .   ⠭ 饭  , 
         ⫨砥  ६ ᪫⥫쭮 ⥬,   "⮫쪮  ⠥-
         "    뢠.
               ࠬ ⠪  ⠭⮩? ᫨ ⠭ -
          ⨯ ,   । . ,  ⪥ -
         ।⢥ ᯮ짮 ⠭    ⢥ ࠬ
           । ஡. ।⢥  
         ணࠬ । ᠬ ᥡ  . ।⢥ -
           ᮤঠ  祬-:   ॣ, 祩  
          ⥪.   몠 ᮪ ஢   ८ࠧ  ⠭  
         楫   ࠧ饭  .   몥 ᥬ 
           ᠬ ணࠬ.

                                      - 2-7 -
                                ࠬ  㫨

              ।,   ࠬ ।⠢  ᮡ  -
         ,  ॡ㥬 㫥  믮    -
         ,    ࠧ  .  ⠪ ।, 
         ࠬ ।  ६.   ࠧ, ᮢ뢠
         ஥ 讥 २⢮ 㫥.   裡  ⥬,  室묨
         묨    ६,     -
           室饣 ⭮ .   ᠬ,  ਤ-
            魮,     ୮-ᯮ㥬묨 
            ணࠬ.
              ⢨⥫쭮, ࠬ  易⥫묨 -
         ⠬ 쭮 ணࠬ஢.    , 
          ਭ 譨 ࠬ,   㭪樮 ᪫⥫쭮  
         ७ 묨.  ணࠬ ࠡ⪨ 㪮 ᨣ-
          ᮫   ࠬ஢.    騬  ਬ஬  
           ணࠬ  ⥭ ᥫ  .   ணࠬ
         ⥭ ᫠ 㤥  祭,  ணࠬ  㦥 -
          㬥, ।  .
             ꥤ ॡ騥  室 ࠬ  ࠡ뢠 -
         室 祭,  ନ஢ ᫥騥  㯯 -
         :
             1. 㫨,  ਭ騥 室 ࠬ   ࠡ뢠-
         騥 室 祭.
             2. 㫨,  ਭ騥 室 ࠬ   ࠡ뢠騥
         室 祭.
             3. 㫨,   ਭ騥 室 ࠬ  ࠡ뢠騥
         室 祭.
             4. 㫨,  ਭ騥  室  ࠬ  ࠡ뢠騥
         室 祭.
             筮   㯯 㫥,   ࠡ뢠騥 室
         ,  뢠 ணࠬ,  ᫥  ⨯, ࠡ-
         뢠騥 室 , 㭪ﬨ. ⨬,  ࠧ稥 ந-
           ᨬ  ⮣, ॡ  㫨 室 ࠬ-
         ஢,   ணࠬ  ⨢ ᮧ ࠧ稥.

                             樨 । ࠬ஢

              ணࠬ,   ணࠬ  㭪ﬨ, ਭ-
         騬 室 ࠬ,    ࠧ襭 ஡ ।
           ࠬ஢.    ணࠬ஢  몥 ᮪ ஢ 
         ⮬ ⭮襭 ணࠬ 筮   롮.    몥  -
         ᥬ ⠪ 権 .   ᬮਬ  樨,  ᯮ-
             室  ஦.

                              । १ ॣ

              騬 ᯮᮡ ।    ணࠬ஢
           몥 ᥬ  ᯮᮡ ।  १ ॣ-
         .  㯭  ᮪ ᪮   ᭮-
           ।⢠   襭 ⠢ .   ᥣ
         ⤥   樨, ᨬ  ᯮ㥬 ணࠬ
         ।.     뢠 㭪樨 MS-DOS । ᢮ 
         ⠪ ᯮᮡ.  ⪨ ணࠬ 몠  ᥬ,  騥
         䥩묨 ணࠬ   MS-DOS,   㫨஢ 묨
          ᯮ     ᠬ ॣ,  ॡ 㭪樨,
         뢠騥   MS-DOS. ਢ  饭 ᮧ -

                                      - 2-8 -
         ࠬ  ⮬  ॣ,   MS-DOS.
               㤭⥩, 饩  ᯮ짮 ⮣ ᯮ-
         ᮡ,  ,  ⢮ ॣ஢, 饥  稨,
         ࠭祭.  ᫨  ணࠬ, ॡ 襥 ⢮
         ॣ஢, 祬   稨,   뢠 譨 嫮.
          ய  訥 ࠭祭,  祬 ,  
         ⢮ ॣ஢  ࠢ ࠭祭. ஬ ⮣, ᫨ -
         室  ६    ணࠬ   ⨯  
         㣮,  ,  ன    ᮢ⭮ -
         짮      ॣ஢,  ⭠.  -
          ९஥஢  䥩 㫥.
             㣮 㤭  ,  室 뢭 -
         ࠭ ᯮ㥬 ஦,   뢮  ॣ.
            " "     ⭮ -
         ப. ᮡ ன⢮ 뢠 砩,  ਭ 襭,
          ॣ X ᢮ , ᫥⥫쭮, ᢮ ணࠬ-
          .  ,   ਭ 襭   ᯮ짮
         ⮣  ᠬ   㣮 ,  ,   -
           ࠧ ⮫쪮 ॣ X.    PUSH  (
         ᮤন ॣ  ⥪) 뢠  ⥪ 祭, ᮤঠ-
         饥  ॣ X,  ⥬ 믮 맮   POP  (-
           祭  ॣ  ⥪) 롨ࠥ  ⥪ 祭 -
              ॣ X.  ࠧ,  १ -
           X ᮤন 頥 祭. ,  ⥯
         ᢮?  ⠪ 砥 祭 .
             ࠪ᪨, ࠭祭  । ࠬ஢ १ ॣ
          ࠭祭 ꥬ ଠ樨,  ।  १  -
         ,   16 ,  .. ࠧ 襣 ॣ.  裡 
         ⥬,   設⢮ ६  ⥭ ᯮ짮 
           ⮢   ᫮,  ࠭祭 ࠧ ॣ  
         쥧 ஡.  ।   ॢ  ࠧ
         ॣ,      뢠 ணࠬ  । 
           . 筮,  ࠢ쭮 ᯮ짮  -
         뢠 ணࠬ  ,   㪠 ⨯ . 
         맮 㭪権 MS-DOS 直 ࠧ,    ॡ 讣 -
         ⢠  ,  ᯮ  堭 । ,  
         騬  㪠    .

                    ।  १   

             騬 ᯮᮡ ।   ᯮ짮 -
         ࠭  ⮢  .  ⨥ "࠭ ⮢-
         " ᯮ  ⮬ ᫥,    뢠  뢠
         ணࠬ "ਫ"  ᮡ  ⮬,    ।-
             ᭮ .  ணࠬ  , 
         뢥  ⠭樨     ᫥    ,
         祭  FOO,  ணࠬ    룫廊  ଠ-
              FOO.  ⮬   FOO 뢠
         饩  .
             ।  १    ,   ࠩ
         ,   ⢥ .  । 䨧᪨ -
         ⥩  ᯮ㥬      ।  ⮫쪮  ,
         ᪮쪮 室.  ।  १     
           ।  ਭ 楫  ᢮ ॣ஢
          ᪠ ।   ࠧ      
          ᪮쪨 .
             ஬ ⮣, ।  १    

                                      - 2-9 -
         㯭묨 ।   , ஬  ॡ-
         .  讥 २⢮, .. 訢  ।-
             孥 ஢ १ 讥 ⢮ ७-
          㫥    ஢.  ⮬,     
          ࠡ뢠  ,    ᯮ.
             ⥫쭮 ஭ ⮣ ᯮᮡ ।  
         ,    ᨬ  饩   ࠭ 魮 
         ୮ ᯮ짮 㫥.  ᬮਬ  㫥, ।-
         祭    ⥭   䠩.  ᫨ 㫨 
          ᯮ짮 饣  ,     ஡-
           ६     䠩.  ᫨ ணࠬ 뫠
         ஥஢  믮 ࠢ,      ᪮-
                    ।-
         饭  १ .
             ᫥ ⮪  ᯮᮡ ।  १  -
           ⥪   ᮡ.   裡  ⥬,  -
           㯭  ,    ⨯  砩 "
          ࠢ".    砩 ࠧ襭  -
         .  筮      訬 ᪮ (᪮ 訡
         ணࠬ 騥),   ⠭ 祭 ⢥ 䠪஬  
         ᬮ७ ୮ ᯮ㥬 ணࠬ஢ (ᬠਢ-
           ᫥饬 ࠧ " ஢").

                      ।  १  ணࠬ

             ।   १  ணࠬ    -
         ਠ⮢ ।  १   .   ⫨-
         稥    ,     ᯮ   ணࠬ
         (ணࠬ ᥣ),    - ,  ⮯ 
         ।   樨 CALL, ᪮  ࠧ-
          ।⢥ ᫥ 맮.
             뢠 ணࠬ  롨ࠥ     ⥪,  -
         㥬  ⢥ 㪠⥫     ,  ᪫뢠
         ࠧ    ᮬ   頥  ⭮ 
         ⥪.    ࠢ  뢠 ணࠬ  -
          ᯮ ࠧ  ᫥  .
                㤮   ,    ਬ  ,
          ய 8086 ᯥ樠쭮 ஥஢    ࠧ
         ணࠬ   ⥩ .  ।  १  ண-
         ࠬ ॡ,  ⮡ ணࠬ ᥣ  ᥣ    뫨
         ⠭      祭, ⮬   ⭮-
           ணࠬ ᥣ.
              襩 ஡ ᯮᮡ ।   १  -
          ணࠬ  ,    ॡ 樨 ⥪,  
         ஬ ந室  ᠬ "ᡫ"  ⥪饩 ᠬ-
         㥬  ணࠬ.   ࠢ,  ஥ ᥣ 室 -
         , ⮨  ⮬, ⮡ ,   ஢ -
           ணࠬ!  ᫨      ᮡ,   ணࠬ
         ⠭  饩 ⫠  ⥫쭮  
         ணࠬ ᯥ祭.

                              ।   ⥪

             ।   ⥪  ᯮᮡ,  ᯮ㥬 -
         設⢮ ஢ 몮 ᮪ ஢  ॠ樨 맮-
           楤.   ⮬ ᯮᮡ ।  । 믮

                                      - 2-10 -
         맮  ॡ㥬 ࠬ   ⥪. ᫥ 맮 -
         뢠 ணࠬ ⢫      뫪.
         ஥஢騪 ᥬ⢠ ய஢  8086  ঠ  
         ᯮᮡ   ᯥ祭 ॣ BP (base pointer - 㪠⥫ -
         ).  BP  㤨⥫ ᮡ 樨  -
         ࠭ ⭮⥫쭮 ᥣ ⥪.   砥,    -
          祭 ॣ BP    ࠢ쭮  ,  ᮤন
         ⥪   ᮢ ⥬ ᯮ짮 ᭮ -
         樨.
               ⠪ "ࠢ쭮 "  㧪  BP?  
         ᠬ SP (stack pointer - 㪠⥫ ⥪),  ᪮ SP 㪠뢠
             ⥪.   筮 稭  祩 SP+2
          祩 SP+4. 祬  2,   4? ⮬,   맮-
           楤  near ()   ⮫쪮 ⥪饥
         ᬥ饭 (㪠⥫ 樨)  ⥪ (2 ),   ६ 
           맮 楤 far ()   ᬥ饭
          ᥣ ணࠬ  ⥪ (4 ). 뢠 ணࠬ 
           ஢    砫 㯠  ࠢ쭮  (
         ᨬ  ⨯ ணࠬ)  ᯮ짮 ᫥饩  -
         樨:


             NEAR                          FAR
             mov  bp,sp                    mov  bp,sp
             mov  <1- 㬥>,[bp+2]
             mov                           <1- 㬥>,[bp+4]
             ...                             ...

             ⨬,  ᫨ 室  ࠭  ᮤন  ॣ
         BP,  筮  ⮬ 砥 뢠 ணࠬ  
         BP  ⥪,   ࢮ ࠬ  [BP+4]  ணࠬ-
          near   [BP+6]  ணࠬ far. ⮡   -
          ᮢ,  室 । ⥬,      ࠬ  
         ⥪, । 뢠饩 ணࠬ ⢥⢥  ࠭
         BP.  ,  - 稭 ᯥ祭 ᮢ⨬   ४-
         .   ⮣  ।⥫ ᯮᮡ ।
         ࠬ஢  ,   ⨭ 2-1. ᯮ-
          ⮩ ,  ⢮ 設⢮ 몮 -
          ஢,    ࠧࠡ⪥  ,  ⭮ -
         㥬   ணࠬ.      ணࠬ      ᮡ࠭  
         "㬥⠫ ",  室 ᯮ짮  -
            祭 ணࠬ஢  襭 ந-
         ⥫쭮 ࠡ.
               뢠 ணࠬ ࠬ,  뫨 -
         饭  ⥪,  ⥯   㤠.  뢠 ணࠬ
           㤠 ࠬ  祭  ⥪ (⥬ ᯮ-
          樨 POP),     ࠭  -
         ஢    ॣ SP,  ਬ,   樨 add SP,N,   N
         ।⠢ ᮡ  ⢮  ⮢,    ࠬࠬ.
          ᯮᮡ,   ⨭ 2-1, 䥪⨢ १ ⥪ 
         ࢮ砫쭮 . ୠ⨢ ⢥⢥  -
           ⥪   祭 뢠 ணࠬ ⥬ ᯮ-
          樨 RET N,  N  ⢮ ⮢, -
          ࠬࠬ.    ᯮᮡ N ࠢ  饭
           樨 PUSH ᫮, 㬭  2.
             稥   ⨬  ᯮᮡ ⮨  ⮬,   
         ᯮ짮 樨 RET N   ணࠬ    뢠  

                                      - 2-11 -
         筮   ࠢ ⢮ ࠬ஢.  ᫨   N
         ⮢ ࠬ஢,   RET N ࠢ쭮 ஢ ⥪
          ந  ⥬. ⨢, ᫨ ⥪ 頥 뢠-
          ணࠬ ⥬ ᯮ짮 樨 add SP,N,   
         맮    楫 ணࠬ  । ࠧ筮 ⢮
         ࠬ஢.

                      ⨭ 2-1. । ࠬ஢  ⥪
         -----------------------------------------------------------------
                                ; 뢠 楤

              ...          ...
             push      <argument_N>   ; 뫪 ᫥ 㬥
              ...          ...
             push      <argument_2>   ; 뫪   ண   㬥
             push      <argument_1>   ; 뫪 ࢮ 㬥
             call      <myproc>       ; 맮 楤
             add       sp,<2N>        ; ⪠ ⥪
              ...          ...
                                ; 뢠 楤

         <myproc> PROC NEAR           ; ਬ 맮 楤 near
             push      bp             ; ࠭ ண BP
             mov       bp,sp          ; 㪠⥫ 뫪  ⥪
              ...          ...
             mov       <dummy>,[bp+4] ;   ࢮ ࠬ
             mov       <dummy>,[bp+6] ;   ஬ ࠬ
              ...          ...
             mov       <dummy>,[bp+2+2N] ;   ᫥ ࠬ
              ...          ...
             mov       sp,bp          ; ⠭ SP
             pop       bp             ; 㤠 ࠭ BP
             ret                      ;   뢠 ணࠬ
         <myproc> ENDP
         ----------------------------------------------------------------

               ,   뢠 ணࠬ ࠡ뢠 ⥪ -
         쭮,  ஡   㤥.  (筮,  ᫨ 뢠 ணࠬ
         ᬮ ᯮ짮 ࠧ筮 ⢮  ࠬ஢,  뤠
          맮  맮).
              楫 祭 ணࠬ஢ ᫥   ⮩
         맮 譨 ⪠ ணࠬ, ᯮ騬 樨 PUSH
         (  ⥪), MOV (᫠), POP (  ⥪)  -
         稥.   ࠧ     뢮    -
         ᮢ  믮  ⨭ 権. , ਢ
           ⨭ 2-2,   뢠饩 ணࠬ ন ⥪
          ६ । ࠬ஢.  筮, , ਢ 
         ⨭ 2-3,  뢠 ணࠬ  㯥  -
          ࠬ஢  ⥪.   ॣ, ᯮ㥬   -
         ,     ᫮, ⮬  樨 PUSH  POP
          ࠡ  8-⮢묨 ॣࠬ.

                                      - 2-12 -
         ⨭ 2-2.  @CallS  @FCallS  । ࠬ஢ ⥪
         ------------------------------------------------------------------
         ;; ****  @PushIm:   ⥪ ।⢥ 
         ;;                                  १ ॣ BP
         @PushIm MACRO   arg
                 mov     cs:mem_16,&arg
                 push    cs:mem_16
                 ENDM
         ;; ****   맮 ணࠬ: @Calls  ,<arg1,arg2,...>
         @CallS  MACRO   _ணࠬ,ᯨ᮪_㬥⮢
         ?count  =       0
                 IRP     argn,<&arg_list>
                 push    &&argn          ; । ࠬ
         ?count  =       ?count+1
                 ENDM
                 @PushIm %?count         ; । ⢠ ࠬ஢
                 call    &routine_name   ; 맮 ணࠬ
                 add     sp,2*(1+?count) ; ⪠ ⥪
                 ENDM
         ;; ****   맮 㭪樨: @FCallS  ,<arg1,arg2,...>
         @FCallS MACRO   _-,ᯨ᮪_-⮢,頥_祭
         ?count  =       0
                 IRP     argn,<&arg_list>
                 push    &&argn          ; । ࠬ
         ?count  =       ?count+1
                 ENDM
                 @PushIm %?count         ; । ⢠ ࠬ஢
                 call    &routine_name   ; 맮 ணࠬ
                 pop &return_val         ; 祭  頥 -
                 if ?count               ; ᫨   ...
                 add sp,2*?count         ; ⪠ ⥪
                 ENDIF    ENDM
         -----------------------------------------------------------------
                   ⨭ 2-3.  @Accept,@RetVal  @CRet
                  ਥ  ⥪   ࠬ஢  ⥪
         -----------------------------------------------------------------
         ;; ****   @RetVal: @RetVal ॣ
         @retVal MACRO   頥_祭
                 mov     [bp+4],return_val ;  ᫮
                 ENDM
         ;; ****   @Accept: @Accept <reg1,reg2,...>
         @Accept MACRO   ᯨ᮪_ॣ஢
                 push    bp              ; ࠭ 㪠⥫ 
                 mov     bp,sp           ; - BP  㯠  ࠬ.
                 mov     &pnum,[bp+4]    ; 祭 ⢠ ࠬ-
         ?count  =       0
                 IRP     reg,<&reg_list>
         ?count  =       ?count+1
                 push    &&reg           ; - ॣ-   .
                 mov     &&reg,[bp+4+?count*2] ; 祭 ࠬ
                 ENDM
                 ENDM
         ;; ****   @CRet: @CRet <reg1,reg2,...>
         @CRet   MACRO   ᯨ᮪_ॣ஢
                 IRP     reg,<&reg_list>
                 pop     &&reg           ; - ࠭ ॣ
                 ENDM
                 pop     bp              ; ⠭ 㪠⥫ 
                 ret                     ;   ணࠬ
                 ENDM

                                      - 2-13 -
               @PushIm    짮⥫   ய஢
         8086/8088  ।⢥   ⥪.   ᯮ짮-
           ᭠砫 室 ।  ணࠬ ᥣ-
          ⮯ ᫮ mem_16.  ᬮ  ,  । -
         ।⢥      ⥪     ਭ 訥
         , ⠪  ࠡ ᮧ  ᢮ ᯮ짮
         ॣ஢.
              ?count      @CallS  @FCallS ᯮ 
         ᮮ饭 뢠 ணࠬ ⢠  ।ᬮ७  -
         ஢;   ਥ ⢠ ⮢,  饭  ⥪;   
         ᯮ짮  ⪥ ⥪ ᫥ 맮.  ᫨  楫  
         뢠  ணࠬ 㦥  ᪮쪮 ࠬ஢ 뫮   -
         । (筮  砩),        
         ஢,  ⮡     ।  ⪨ 稪
         ࠬ஢.  ⨬,  稪 ࠬ஢ ⠪ ᯮ 
         ⢥      祭    맮  㭪権 (
         @FCallS  @RetVal).
               @RetVal ।祭    ᯮ짮    ᮬ
         @FCallS    頥 稪 ࠬ஢,  饭  ⥪  -
           @FCallS,  16-⮢ 祭    -
          ணࠬ.
              @Accept  楫  ணࠬ  ࠡ⠥    ᮬ
         @CallS,   ᮬ @FCallS  । ࠬ஢  ⥪ 
         ॣ.    ࠭ ॣ,  ᯮ㥬  
         ࠡ.   ?count ᯮ   । ᬥ饭
         ᫥饣 ࠬ  ⥪.   裡  ⥬,     @Accept
         ࠡ⠥    ࠢ   ⥪ (㢥祭 ᬥ饭),  
           롨ࠥ ࠬ  ⥪  浪,  ⭮ ⮬,
          ஬  뫨 饭  ⥪! ⨬ ⠪,   
         @Accept  @RetVal ।  맮  楤  near  (),
         ᪮  ᪠ ⮫쪮 2-⮢  .
             ᫥ 楫  @CRet ⠭ ॣ,  -
          뫨 ࠭ ᮬ @Accept.   裡  ⥬,    -
         樨  POP      ⭮ 浪  ⭮襭  -
           PUSH,  ᯨ᮪  㬥⮢      @CRet   
         ᯮ  浪,  ⭮ ⮬,    믮
          @Accept.  ᫥ ⢨, ।ਭ । -
         樥 RET,  ⠭ 㪠⥫ , ࠭-
          ᮬ @Accept.
             ਢ  ।⠢  ᪮॥  ⢥ -
         ஢,  ࠡ     襭  ᯥ祭
           ᯮ짮.  ਬ,  ࠬ 樨 PUSH
         (push &&argn)  ࠡ⪨ ।⢥      ⢥
         ࠬ஢   饭  騬 ᮬ PushOp  -
          1.    ࠭祭 ⥪饩 ᨨ  ,   -
           mov [bp+4],return_value   @RetVal   -
          ६    ⥪,  ⮬  ᥬ⢮ ய-
         ஢ 8086  ন    뫪   --
         .  ᯮ 뫪 -  樨 -
          १  ।⢥  ॣ        
         ।.
             ஬ ⮣,  室   ,   , ।⠢-
           ⨭ 2-2  2-3, ॠ 뢠 ணࠬ, -
           ᮢ⨬      몮 ᮪ ஢.
         ࠪ୮,   楤  ⢥ ⥫쭮 㬥-

                                      - 2-14 -
           ।  ⢮  㬥⮢    뢠 楤 
          祭  뢠饩  楤  ।⢥  
         ⥪.
             MASM ᯥ稢  뢠 ணࠬ    ।-
         ⢠,  騥         ⥪.   ᠭ
         structure (),   뢠   ⥪  ࠢ-
          㪠⥫  (BP)  砫 ,     ⥪
            ᨬ᪨ .   ।-
           ⠫ 訡 ஢,    १⮬
         㪠 ࠢ쭮 ᬥ饭. ⨭ 2-4  ४-
         ⨢ MASM STRUC  ⮬ ⥪.

               ⨭ 2-4. ᪨   ᮤন ⥪
                                 ४⨢ STRUC
         -----------------------------------------------------------------

                               ; 뢠 楤

                  ...        ...
                 push   <argument_1> ; 뫪 1- 㬥
                 push   <argument_2> ; 뫪 2- 㬥
                  ...        ...
                 push   <argument_N> ; 뫪 ᫥ 㬥
                 call   <myproc>     ; 맮 楤
                  ...        ...

                               ; 뢠 楤

         StackFrame     STRUC        ; ᠭ 蠡 ⥪
                 dw     ?            ; ࠭ BP
                 d     ?            ;   (ᯮ "dw"
         ;                              NEAR ())
         paramN  dw     ?            ; ᫥ ࠬ
                  ...       ...
         param2  dw     ?            ; 2- ࠬ
         param1  dw     ?            ; 1- ࠬ
         StackFrame     ENDS         ;  ᠭ 蠡
         ;
         base    EQU    [bp]         ;  蠡
         ;
         <myproc> PROC  FAR          ; ਬ 맮 far ()
                 push   bp           ; ࠭ ண BP
                 mov    bp,sp        ; 㪠⥫ 뫪  ⥪
                  ...      ...
                 mov    <dummy>,base.param1 ;   1- ࠬ
                 mov    <dummy>,base.param2 ;   2- ࠬ
                  ...      ...
                 mov    <dummy>,base.paramN ;   ᫥ -
                  ...      ...
                 mov    sp,bp        ; ⠭ SP
                 pop    bp           ;  ࠭ BP
                 ret    (2N)         ;   뢠 ணࠬ
         <myproc> ENDP
         ----------------------------------------------------------------

             ⨭ 2-1  2-4 ࠧ  ६  ᯥ⠬.  -
           ⫨稥 砥  浪 饭 ࠬ஢  ⥪. 

                                      - 2-15 -
         ⨭ 2-1 뢠 ணࠬ ࠧ頥 ᢮ ࠬ  -
           ⭮ 浪 ( ᫥  ࢮ),   ६  
         ⨭ 2-4  אַ 浪  (  ࢮ    ᫥).  
           StackFrame  ࠡ  ⨭ 2-1 冷 ࠬ-
         ஢     ⨢  (..  ॢ஢).
         (祭  浪  "  ࢮ  ᫥"  ਢ 
         ⠭  ⮩ 窥.  ᠬ  砥 冷 ᫥-
          ࠬ஢ "᫥ - ࠢ",  ..    﫨  
         몥 ᮪ ஢).
             ஥ ⫨稥   ਬࠬ 砥  ᯮᮡ ⪨
         । ࠬ஢  ⥪.  ਬ, ਢ  ⨭
         2-1,  뢠  ணࠬ 頥 ࠬ  ⥪ ।⢮
         樨 add SP,<2N>.   ⨭ 2-4 뢠 ணࠬ -
         頥 ⥪, ᯮ  ret (2N).
             ᫥ ⫨稥 砥  ⮬,   ⨭ 2-1 -
          ணࠬ near (),    ६   ⨭ 2-4 -
          ணࠬ far ().  ᫨   StackFram  㤥
         ᯮ짮  楤ன near,  室  ४-
          dd ४⨢ dw.   뢠 १ࢨ஢   蠡  
             뢠饩  ணࠬ ⮫쪮  ⮢,   
         ६   뢠 楤 far ॡ   . 
         㣮  ஭,  ᫨    㤥 ᯮ짮  ணࠬ
         뢠,   ᫥  ४⨢ dd 室 㤥  -
         ⥫ ४⨢ dw  १ࢨ஢     䫠
         , 頥  ⥪  뢠.
             ४⨢ STRUC    믮     -
          ணࠬ.   ४⨢ ⮫쪮 뢠  ᬥ饭,  -
         㥬  㪠⥫  BP,   祭  饭
          ࠬࠬ.
             ⥪ ⠪ ᯥ稢 㤮   ࠭ 頥-
          祭,   ⫮ 㦤 ⮩ ⥬   , 
           㤨 ࠧ  㭪ﬨ  ணࠬ  ᫥-
          ࠧ ⮩ .

                    ⪮  権 । ࠬ஢

                ᯮᮡ ।  :
             1. ।  १  ॣ - ᪠ ᪮쪮 ࠬ-
         ஢;  訩 ᯮᮡ  ⮣ 䥩   ࠡ⪨
         ᪫⥫ 権,  ⠪   祭.
             2. । १     -  ࠭稢  -
           魮 㫥,    २⢠ ᯥ祭 -
         㯭    㫥.
             3. ।   ⥪ - ।⥫ ᯮᮡ ࠡ⪨
         ;  ॢ室  魮 (⭮-ᯮ㥬 㫨)
           ࠡ뢠   ணࠬ;  室  䥩 
         設⢮ 몮 ᮪ ஢.
             ஬ ⮣,   ।  ᯮᮡ,  ⫨  -
         ਢ,    ਭ  ⢥ ࠬ஢
         室    ⮫쪮  ᥡ ᠬ,    㣨
         㫥,    뢠   ᢮ ࠡ.  
           ਢ  讬 ᯨ ࠬ஢  㫥 孥
         ஢.
              ⢨⥫쭮,   ᥩ ⭮,  ࣠樨 -
         ।    ॡ ᯮ짮 樨
           ᯮᮡ  ( ᪫祭 ।    ணࠬ-
         ).

                                      - 2-16 -

                    । ࠬ஢  祭  

             ᫥ ਭ 襭  ⮬,  । ࠬ, -
         室 ⢥  :    ଥ ᯮ짮 㬥?
         ᯮ,   㬥 ।⠢ ᮡ 뢠  祭,
         ஥ ᢠ ࠬ.  祭    -
         ।⢥묨 묨,  ᮬ .

                               ।  祭

              ᥣ । ࠬ஢  몥  ᥬ 믮
         ⥬  । 祭.   ⮬ ᯮᮡ ।  뢠
         ணࠬ । ⢨⥫  ( 祭). 
         ணࠬ 砥 ᫮,  ࠭饥  ॣ,  饭
          ⥪.
             ࠭     饩   ।⠢ ᮡ -
         ᪮쪮 ᯥ樠 砥.  ࢮ 砥  । 
         ,  ᪮ 뢠  뢠 ணࠬ ⢫
         饭   ।⢮ 祭  ᮢ.    㣮
         砥     饩     祭ﬨ,  
         ᠬ,   ஡ 頥,    襭  த
           饬 . ᫨   祭ﬨ,   -
         ।  祭.  ᫨   ᮬ,   -
           .
             ᫨ ࠬ, ᮤঠ騥 ।⢥ , ।-
           ⥪,  짮⥫ ய஢ 8086  8088  
         뢠  । 묨 ⥫묨 ᨫﬨ,  -
         묨  ।祩 祭  ⥪.  짮⥫ ᮢ襭⢮-
          ய 80x86  ᯮ짮  
                     PUSH <immediate>
         (᫠  ⥪ ।⢥ ),    짮⥫
         㣨 ய஢  ।   ⥪ १ -
         ।⢥ ॣ.    ⮣   ᯮ짮 
         @PushIm,  ᬮ७     1, ,  ⮣ ਫ
          ᫮  㪠뢠.  ᫨ ᯮ 뢠 ண-
         ࠬ, ਢ  ⨭ 2-1,   । ।⢥-
            ⥪ 㯥 ॣ BP (㪠⥫ ).   
          ᮣ襭  ⥪ ய஢  8086    
         楫 ।祭 ॣ AX.  ।⢥ , -
          室 ᫠  ⥪, ।   ᫥
          ப ணࠬ:

               mov   ax,<immediate_data>
               push ax

             ᮡ ।  ࠬ஢  祭 㭠᫥ ࠭-
          । 祭  ᯮ짮 ॣ   ।
           ⥪  16 .   ᠬ ,  8-⮢  
            饭  ⥪.  筮 ,     室
         ⮣ ࠭祭, ਬ஬ ⮣   @PushOp  -
          1. , ⭮騥  訬 ࠬ,   
         ।   ⥪ ᫮,   ᫨ 뢠 ணࠬ  
          ᢮ ࠬ  ⥪,   ।   -
          㤮.

                                      - 2-17 -
                                ।  
              ।     뢠 ணࠬ 砥 ⮫쪮
          .      ⢫ ⥬ ᯮ짮
         ⮣ .   ᪮쪮 ।⢥ २ -
          ᯮᮡ. ࢮ ⮨  ⮬,  ᫨   ᯮ
          ࠧ ᥣ,       ᮤঠ    
         16-⮢  祭,  騬 ᮣ襭  ᯮ짮 -
           ⥪. ஥ २⢮ 砥  ⮬,  ண-
         ࠬ  ⠭   饩,  ᪮ 㪠 㣮 
         ᮧ   .  २⢮ ⮨  ⮬, 
         뢠  ணࠬ  ।⢥ 㫨஢ 묨
           祭    ᠬ    뢠饩  ணࠬ,
         ஥ ᮤঠ ࢮ砫쭮 祭. ᫨ , 騥
         ।,   ࠧ饭   (..   ।⢥묨
         묨),     ஡.     (,
         ᫨ 㦥  ⮥ ᮮ⢥⢨  ।  ॡ-
           ᮢ   ⥪)   ᯮ짮 ⨯ ᬥ蠭 -
         :  㬥⮢.
              㬥⮢  ࠬ஢  ᯥ樠쭮 ମ -
         ।  .   ⮬ 砥 ॡ㥬 㬥 ᮤঠ  
         뢭  ⪥ .  ,   ⫨稥  । १
           ,  뢠 楤    ᢥ-
             ⮬ .   맮 楤  ⢥ ࠬ 
         ।  ⮣ .     㤮 ࠧ-
             ॡ㥬 㬥  ,     
          室 ࠧ饭   祭  ⥪. ᫨
          㦥   㣨 楫,  । ࠬ஢ १
          㬥⮢   訩 .

                       楫⭮ । 

              㣮 ᯥ 樨 "।  ...",  -
          祭   騬 ᯮ짮.  ᯥ ⭮
          楫⭮       ।७  -
           .   ⨯ ᯮ짮 ,  । 
         祭,  ⢨⥫ .  ⠪, -
           ணࠬ   㫨஢ 묨    
            뢠饩 ணࠬ.   㣮  ஭,  ᫨
         뢠 ணࠬ ਭ  ,  ஬ ணࠬ
         ⥬   ,     㭪樮஢
         뢠饩 ணࠬ. , ।  祭, ᬠ-
          ⥬  饭,   ,  ।    ,
         ᬠਢ  ࣠ .
             ⥫쭮,  ६,  ।  ॣ,   
         ᬠਢ  ।  ,  ᪮  ॣ 
          ।⢠  묨 ᯥ樠஢묨   -
         ᠬ.   ࠧ稥  ⮬,     ॣ  -
         থ , ᫨ ணࠬ  㭪     -
              ᭮ ணࠬ.
             ⭮⥫쭮 ⥯ থ  ஭   -
         ⢨    ⪨   ࠢ.    ,
          "।  祭"  "।   "     
         業 ,  ⢨⥫쭮 襭  ᯮ짮  ⨯
         ।   ⮣,  ᪮쪮 業     뢠饩
         ணࠬ (⥯ ᪠),     뢠  ணࠬ
           ࢮ砫 .     ⢨⥫쭮 ।  -
         ᪮쪮   ॡ   .

                                      - 2-18 -

                       㭪樨  ࠢ  ணࠬ

              ࠢ   ॡ  뢠 ணࠬ,  
             뢠 ணࠬ.   뫮  ⬥祭
         ࠭,    ணࠬ,     祭,  뢠
         㭪ﬨ,  ணࠬ,  騥 祭, - ணࠬ-
         .    몠  ᮪  ஢ 㭪樨 ࠭稢 ⮬
         ⮫쪮  祭.  㣠 ଠ,  頥  
         뢠 楤, । ⭮ ⥬ 䨪樨 
          ᪮쪨 ࠬ஢.   몥 ᥬ ਬ  㣨
         ࠭祭. ᬮਬ  樨.

                            祭  ॣ

             ⥩訬 ᯮᮡ  祭  ᯮᮡ -
          祭  ॣ.     । ࠬ஢,  
            ࠭祭 ⢮ 㯭 ॣ஢  ࠧ஬
         頥 . ⥫ ⮬ ⮣ ᯮᮡ -
           ,    㯭     -
         ७  ᯮ짮.
              祭   ॣ     뢠
         㭪権.    ॡ ᯥ樠쭮 ⠭   ।⥫쭮
         ⮢  ஢   .  設⢮ 㭪権 MS-DOS 頥
         ᢮ 祭 ⨬ ᯮᮡ. , ᫨  㭪樨  ணࠬ
          ᢮  १ ॣ,   ਤ ⮫ 
         祩 "让 壠ਨ   ६訢".  ஬  ⮣,  
         裡  ⥬,  ॣ  ⠬,   ந-
          設⢮ ᫥,   ⪠ ७    
         ᯮ짮.
              ᥣ ॣ  ᯮ짮  , -
          ᯮ㥬 뢠 ணࠬ,    -
            ணࠬ,  頥 祭    -
           ࣠  ᫥.    ਬ஢ ⮣ 
            㭪 ⥭ ᨬ 祭  ८ࠧ
           ᫮ 祭.
             設⢮ 몮 ᮪ ஢   頥 祭
         ᯮ ࠧ 孨᪨ ਥ. ,   -
          祭  祭,    ᫮,  筮 ᯮ
         ॣ AX. ᫨ 室  祭,   
         ᫮,  ⠪  㪠⥫ far (),    襥  饥
         ᫮ (  ᬥ饭) 頥  ॣ AX,   襥
         饥 ᫮ (  ᥣ) 頥  ॣ DX. 
           ,    뢠 ணࠬ 室 
           ᫮,     ,  㪠⥫ 
           頥  뢠 ணࠬ.  ᮡ ࠢ-
          ⨬ 㪠⥫   ⭮ 몠.

                          祭  饩 

              祭   饩  室  㭪権.  
         ⮣ ᯮ ⮤ "஭ 䥪", ।⠢騩 -
         㬭, ⮥ ।⢮   讣 ⢠ .
         ⮤ ஭ 䥪   ⮬,   ।-
             ࠧ  祢    ⥭ ࠧ "맮" 뢠饩
         ணࠬ  ந室  砩 १ 楤.  
           祢  맮,    ᭮  㬥 -

                                      - 2-19 -
           ᠭ ⮣,   祭   -
         .
              裡  ⨬,  ᫨  ࠬ  ॣ    ⥪
         ।  饩 ,    ⮩ ⤥쭮 -
           頥 祭  ⠭    祢묨
          ⥫.  ஬ ⮣, 砥 २⢮ 魮, ..
         楤  ।⢥  ᢮ 祭   
         祩 .

                              祭  ⥪

             ᫥ ᯮᮡ   祭  饭  
         ⥪.    ॡ ᯮ짮 ॣ BP  -
         樨  ⥪  (⠪  ᯮᮡ,   । ࠬ஢  ⥪).
           祭, 祭 㦠  ⥪    -
             . ᫨ 楤 뢠  -
         ࠬ,    ࠭ 頥 祭   -
         짮     祥 ࠬ஢.  ᫨ 楤 뢠
          ࠬ஢,   뢠 楤     ⥪
         䨪⨢ 㬥,  ⮡ ⢥   頥 -
         .
                祭   ⥪ 뢠 ணࠬ  
          ⥪   樨 RET N.   ⮣ 뢠
         楤  ᯮ짮  ⪨ ⥪ 祭 -
         頥 祭 १  樨 POP (⠭ ᫮-
           ⥪).
             ᫨ 頥  祭 ᫨誮 訥  㤮 -
           ⥪,   뢠 ணࠬ   㪠-
         ⥫  祩 ,   室 ⢨⥫쭮 頥-
          祭.   ⮬ 砥 뢠 ணࠬ   ਭ
         襭    .

                          ᪫⥫ 

              ᬠਢ   ﭨ     
         㦥  뤠 訡.    ਪ ணࠬ-
            ॡ㥬 権  室  뢠-
          楤,  㭪樨  ணࠬ, ᯥ稢騥 
         ⨯ 樨  訡   ﭨ. ⭮, ⥫
         㦥 ⨫,   設⢮ 㭪権 MS-DOS 뢠  -
          ﭨ  襭.    樨    訡
         ᯮ   ७     ॣ,  筮 
         ॣ AX, ᮤঠ饬 ஡ ଠ  ⨯ 訡.
              ७ ᯮ   稭.    -
          (  権 JC - 室,  ᫨  ७, 
           樨 JNC - 室, ᫨  뫮 ७); 
         ⠭,     (  権  STC  -
         ⠭ 䫠 ७, CMC -  䫠 ७  CLC
         -  䫠 ७);   ⠪  ࠭  ⠭
         (   権 PUSHF -  䫠  ⥪  POPF
         - 祭 䫠  ⥪).    䫠  ७  
         ᮢ襭  祬    㣮  ﭨ  ⥪-
          ய஢ 8086/8088.   ⠭ ᯥ稢 -
           堭    樨  ᪫⥫쭮 樨.
         筮,  ணࠬ    ⪥  ७ 
         樨  ଠ쭮 襭  砥,  ᫨ 訡  ந-
         諠,  ⮬   ७   㦥 ⠭  -

                                      - 2-20 -
          筮 樨.
             ᫥ ⮣,   뢠 ணࠬ 㦨,  
         訡, ணࠬ  ⠭ த 訡.  ᫥-
          ଠ  ॡ. ᫨ ॡ ⥫쭠 -
         ଠ,      뤥 ॣ. 筮
          ॣ AX,   裡  ⥬,   ⮣ ॣ -
          ⠪  㣨 権 (ਬ,  MUL - 㬭 -
           ࠭  DIV -      ࠭),  
            㯭.    ॣ  롨ࠫ,  
          ᮤঠ  ⮫쪮  訡,  ⠪   ଠ쭮
         襭.  砥, ᫨ ࢨ筠 ଠ  訡 -
         , ணࠬ  ୮ ஢ ॣ  祭 -
         ﭨ 襭. ᫨ ଠ ᪠, 롥 祭
          ଠ쭮 襭, ஥  ଠ १-
         ⮬.   砥,   ᯮ짮 祭   -
         쭮 襭,  ⮬  㣠 訡   -
            ﭨ.  MS-DOS ᯥ稢 㦨 ⮢ 
         訡   ᯮ짮    ணࠬ,  믮騬  㣨
         ணࠬ.  ᫨       訡  ,
          뢠  ,      㯨  ⠪,  
           㭪樮쭮  맮  襭 - 㭪 4h.
         ⥬ ஦騩        १
         㭪 MS-DOS 4Dh. ⥬     ஦-
          .  堭 ᯮ ⮫쪮  ணࠬ, -
         塞묨    ࠢ 㭪樨 4Bh - 㭪樨 㧪  -
          ணࠬ.

                                  ஢

              設⢠ ᭮ ணࠬ   몥 ணࠬ-
           ணࠬ  ।    ஡ﬨ 믮
         ணࠬ ஬.  ஡ ࠡ⪨ /, ࠢ -
         ,  ࠧ饭 ணࠬ     믮,  -
         ,  ।⠢  ࠢ 樮 ⥬. -
         ,    ⮢,  ॡ  ।⢥
         ࠢ ணࠬ ।.     ணࠬ  
         ॡ     ⮢ ਭ ⢥⢥ 襭
          ᠬ 堭 㧪,  ࠧ饭  믮 ணࠬ-
         .  ਬࠬ,   ॡ,  㦨: ᠭ -
         ⮭ ணࠬ,  㭪樮  ⢨ MS-DOS;  -
         প  ૥  (४뢠)  ணࠬ    ᯮ짮
          ணࠬ  ࠭祭 䨧᪮  ;    ᠭ
         ࠩ஢ 뢠  ४ᨢ ணࠬ.
              ६ 믮 ணࠬ ࠧ饭     ࠦ-
           ﬨ.  ,  裡 稪 ணࠬ (⠪
         뢠  㪠⥫ 樨)   뫪   
           䨧᪮   ᯮ ॣ ᥣ.  ⥬
          ⮣  ନ ⢨⥫쭠  뫪,  ᯮ
         ᬥ饭  砫 ⮣ .  ᬥ饭   -
          ணࠬ,   뫪     ᢥ  뫮  
          १ ॣ.
               砥  믮 ணࠬ   ࠧ묨 ⨯
         ஢?    ⨯ 뫮  砨,    ᯮ,
         ।  ணࠬ 㦠  ,   ᮡ
            ᯮ짮   ணࠬ   ஢-
         . ᬮਬ  ᮧ  뫪    ᯮ짮 
         ᮧ  ᮢ襭 ணࠬ.

                                      - 2-21 -

                       饭 ணࠬ   

              ୠ⨢ ࠧ饭 ணࠬ     
         ॡ  ᭮  ࠡ  権 ࠢ 믮-
          ணࠬ (CALL - 맮 楤, RET -   -
            JMP - ᫮ 室), ⠪  㯠   -
          8086, ⠪   ० ᥣ ࠭稢 -
          ணࠬ  ࠧ饭 ணࠬ  㯭 ࠭⢥
         .
             樨 ࠢ  믮  ணࠬ   뢠
         ﬨ । ࠢ,      ᭮
         樨  CALL  -  맮 楤  JMP - ᫮ 室.
          砩,  ணࠬ 稭 믮   
          , 뢠 "㭪⮬ 祭".    㭪権
           樨 ॠ樨  㪠 㭪  祭. ⨬
         ﬨ : ⥪饥 ⭮⥫쭮 ࠧ饭,  -
         ⥫쭮 ⥪饣 ᥣ  ᮫⭠ .

                             ⭮⥫쭮 ࠧ饭

             饥 ⭮⥫쭮 ࠧ饭  뢠  ⭮⥫-
           PC (program counter) 稪 ணࠬ,   
          㭪 祭  ⥪饣   ᬥ饭.  ନ-
         ஢   㭪 祭 ᬥ饭   ⥪饬
         ࠧ饭.  裡  ⥬,     楫  
          ᮫⭮ ᯮ ணࠬ   , १-
         騩   ᨬ ࠧ饭.  ᫨   -
          楫  ணࠬ,  ᮧ ᪮४஢ 
         㭪 祭 㪠뢠     樨 㭪
         祭.
              ᯮᮡ ᫥  । ᯮ    
          ᫮ 室,    ᥣ (-
           )  JMP (᫮ 室)    
         ᥣ  ()    CALL (맮 楤).
         "।⢥" 砥,   (JMP  CALL) ᮤ-
          ᬥ饭  ।⢥ .  ⨢,  "ᢥ"
         (ﬠ)  -   (JMP  CALL)  ,
         ᮤঠ饣    16-⮢ ॣ (⮫쪮 ᬥ饭),   
         ,  ᮤঠ饣  16-⮢  32-⮢ 祩  
         (ᬥ饭  ᬥ饭  ᥣ).   裡  ⥬,   -
         । ࠢ   ⢨⥫ ,   
           ࠧ饭      㣮     ᫠
          ᥣ,  室 樨 (JMP  CALL)  ணࠬ-
          㭪 祭 뫠 ᮢ⭮.

                      ⭮⥫쭮 ⥪饣 ᥣ

              ⭮⥫쭮  ⥪饣 ᥣ 㪠뢠  -
          ⢨⥫쭮 ᬥ饭  㧪   㪠⥫ 樨
         (    ᢥ 樨 CALL - 맢 楤)  
         ᯮ짮  ⢥ 㪠⥫  .  뫪,  믮塞
         ⨬ ᯮᮡ, ᥣ 㪠뢠    ᠬ 祩  -
          ,  㥬   ᮮ⢥饣 ॣ  ᥣ-
         .  ⠪, ணࠬ       -
         ᫠  ᥣ.  ,  ⠪ ணࠬ    
           ᫠   ,  ᫨ ॣ ᥣ  ⮣ 

                                      - 2-22 -
         ⠪ . .. ᥣ   ஢  ࠭ -
         ࠣ (⭠  XXXX0),  ணࠬ  
          ᫠ ⮫쪮 ⥬ ਡ 16 ⮢ ( ࠣ).
              ⨯ 樨 ᯮ  ᥣ묨 ()
         ᢥ묨 ﬨ JMP - ᫮ 室  CALL  - 맮
         楤,    祭 㪠⥫ 樨 㭪 -
         祭 롨ࠥ  ॣ   祩  .    
         ⠪  ᯮ     뫪   ᨬ  -
         㥬 ᥣ (DS,  ES  SS). , ᯮ騩  ⨯
         뫮,  ᬠਢ    ६⨬,   
         ॣ ᥣ  ࠦ 樨 ணࠬ .

                               ᮫⭠ 

             ᮫⭠  믮    ,    
         㪠뢠    䨧᪮ .   믮 ᮫⭮
         樨  ᥬ⢥ ய஢ 8086 室   㪠-
            ᥣ  ᬥ饭.   뫪  ࠧ 㪠뢠
              祩 .  ᮫⭠    ய-
          8086 ᯮ ।. 쪮 ᪮쪮 権 -
         ய 8086  ᯮᮡ ஢ ᮫ -
         .  ⨬  ﬨ    : ᥣ  ()
         樨 JMP - ᫮ 室  CALL - 맮  楤, 
         ⠪ 樨 LDS  LES (㧪 㪠⥫,  ᯮ DS 
         ES).  樨 JMP  CALL (।⢥  ᢥ)  -
            ⮫쪮 ᬥ饭 (㪠⥫ 樨),    ॣ
         ᥣ  (CS).   㪠뢠 䨧᪨  .  ᢮
         ।,  樨 LDS  LES  ⮫쪮 㦠 ᬥ饭  16-
         ⮢ ॣ,    㦠    ॣ  ᥣ  
         (DS),  ॣ ⥫쭮 ᥣ (ES).   䨧-
         ᪨  .
             㣨 ᯮᮡ  ᮧ ᮫⭮   ᯮ-
          樨 MOV - 뫪  POP -    ⥪  
         ।⢥ 㧪 ⠭    ॣ஢ ᥣ.
         ⨬ ,   祭,  뫠   樨
         POP  ॣ CS,   iAPX186, iAPX188,  iAPX286 -
         ⨬    믮, ᫨ ⮫쪮  稭 ᮢ-
         ⨬.

                               ணࠬ 

              㦤 ᢮ ணࠬ ᬠਢ ⨯ ᫮
          樨.  ᫨ ணࠬ ᮤন   ᮫ -
         ,   ⠪ ணࠬ 뢠 ணࠬ, 饩 ᮫
         ,  ६頥.   ६  .
             ⥫ ⥫    㬠    ⮬,   饭
         訡.    殢 窠 室   ணࠬ  ஠ᥬ
         (MASM) 㪠뢠  far () -  . 믮 ணࠬ-
           ७ .EXE 㦠 ॣ DS   ES    樨
         MOV - ᫠.   䠪,  , ࠧ㬥 -
         ६⨬ ணࠬ,   樮 ⥬  MS-DOS  믮
         㧪  ணࠬ     ࠧ ᠬ  ॡ.
         箬  ⮩   ,   ᯮ㥬 祭  
          ⠭⠬  MS-DOS.  ஠ᥬ MASM  騪
         LINK    ᥣ⮢   楤 far (-
         )   ᯥ樠   ᯮᮡ   ࠡ⪨,      뢠
         relocation map (奬 ன).  㧪 ணࠬ  
         MS-DOS ⠥ 奬 ன   祭  뫮, -
          ᮤঠ  ᥣ⮢.   ணࠬ⮢    -
         ,   MS-DOS    ࠢ  ⠭ -
          ,   㧪   ॣ஢  ᥣ  ⠭⮩
               ᠬ,   ᯮ짮  ᥣ  
         楤 far ().

                                 ६⨬ 

             ஠ᥬ MASM    騪  LINK 筮 ࠡ뢠
         ६頥 ணࠬ.  ..   ଠ쭮  ᯮ짮  
         ᮧ ⠪ ணࠬ,    ६饭   
          MS-DOS,    ⮬ ࠢ쭮 㭪樮஢.  
         ⮫쪮 ᮤন ॣ஢ ᥣ⮢.   ᢮⢮ ᯮ
         ⢮ ਪ ணࠬ.   ணࠬ    㦠
         㣨 ணࠬ,  ᯮ 㭪 4h (  ૥
         - ४뢠 ணࠬ). ᪮쪮 ணࠬ   㦥-
              ६ (  ⨧ ⥬ 
         ணࠬ १⭮ , ⠪ , ਬ, ணࠬ ।-
         ⥫쭮 窨   ).
              㦥 㪠뢠,  MS-DOS 믮    ⥬
          ⮫쪮 祭 ॣ஢  ⠪   ணࠬ, -
          뫠   ᥣ   楤  far ().
           ⠪    楯樨    ,
         ᯮ㥬 ணࠬ. 筮 ६頥 ணࠬ ᮤঠ 
         ६頥    .    稪  MS-DOS 頥
         ணࠬ  ,  砥 祭   뫮  ᥣ-
          ࠭ 뫮  ணࠬ ᥣ.  ⨭ 2-5,  -
         祭  ணࠬ 䠩 .EXE ⠭⭮  ⨯,  뢠
         뫪  ᥣ , ᯮ㥬  㧪 ॣ ᥣ-
          . ⨭ 2-6 뢠  ணࠬ, -
         祭   ஠ᥬ MASM.

              ⨭ 2-5. 室    ணࠬ .EXE
         -----------------------------------------------------------------

         data_seg SEGMENT              ; । ᥣ 
                  ...                  ; 祭   

         data_seg ENDS
         code_seg SEGMENT              ;  ।  ᥣ
                  ASSUME cs:code_seg
                  ASSUME ds:data_seg
         main     PROC   FAR           ; 窠 室  ணࠬ
         start:
                  mov    ax,data_seg   ;  ।  ᥣ 
                  mov    ds,ax         ; ...  AX  㤠  ...
                  mov    es,ax         ; ... ॣ ᥣ
                  ...     ...
         -----------------------------------------------------------------

              ⠭⭮ ᯮ짮 ६ data_seg  
         ⠭⮩.॥,  ६  ६頥 祭
         ᥣ, ஥ 㪠  ⨭ 2-6 ஠ᥬ MASM -
           ""  㪢 R.   㧪 ணࠬ  MS-DOS
         ⠢  ணࠬ ⢨⥫쭮 祭   ᯮ짮-

                                      - 2-24 -
            믮 ணࠬ.   祭  -
         ᮬ 祩 ,    뫠 㦥 ६ data_seg.
          ࠧ,   MS-DOS, ணࠬ    
           ६饭  䨧᪮ .

                 ⨭ 2-6. ⨭   ணࠬ .EXE
         -----------------------------------------------------------------

         0000                           code_seg SEGMENT
                                                 ASSUME cs:code_seg ASSUME
                                                 ds:data_seg
         0000                           main     PROC   FAR
         0000                           start:
         0000 B8 ---- R                          mov     ax,data_seg
         0003 8E D8                              mov     ds,ax
         0005 8E C0                              mov     es,ax
         -----------------------------------------------------------------

                             ⤥  

             ᫨  ணࠬ । ᪮쪮 ᥣ⮢  (-
         ,  ᮮ⢥⢥,  ४⨢ ASSUME),  ७ ண-
         ࠬ   ⤥  . ,  筮 ⨫
         ணࠬ஢  ࠧ  맮 ணࠬ  ணࠬ
         ࠭祭 㯮    ⮩   .  -
          ।祭  ணࠬ  .
              筮 ᯮ짮 祭    -
         宩,  ⠪  設⢮ ணࠬ 믮 ᫥⥫쭮,
           㣮. ,  ந, ᫨  믮 -
                楤   ࠧ       ६?
         㤥     맮  १뢠  ।騥
         맮 ,  - ⮣,   ணࠬ ᯮ ⮫쪮 
          ?   㤨, 祬     -
          㤥 뢠   ࠧ ६?
              ࠩ ,         .  -,
         ⨧  ⥬     ⢮ 믮塞 ண-
         ࠬ, ࠧ 騥 ⥪ ணࠬ, 뢠 -
           ᯮ  㫥 (⮬  ணࠬ  㯥 
         ६ ᯮ,    砥  ணࠬ  ६ -
         ).    ᪮쪨  ७ ணࠬ, ࠧ-
         饭  ணࠬ 䠩,  ⥪ ᯮ 㫥  
         ⮫쪮   ணࠬ, ࠧ饭   (  -
         ஡ 㦤 ⥪ ᯮ 㫥 ᬮ   3).
         ᫨      믮     ணࠬ  -
             ६,  ⥪ ᯮ 㫥   뫨  
          ⤥  ,  ⮡  諥 ᮢ-
         ⭮ ᯮ짮   .
             ன 砩,      楤   맢-
          ணࠬ ६,  ந室    ⥬  ࠢ
         뢠ﬨ.  ⨬,    믮   ணࠬ 
         ந諮 뢠 - ண 譥 ᮡ.  ணࠬ-
         , 㦨 뢠, 稭 믮   室
         맢 ணࠬ,   뫠 ࢠ.  ᫨    -
         쭮  ,  ணࠬ 㦨 뢠 ࠧ-
          , ⭮騥  ࢠ ணࠬ.  ⮩ 稭
         ணࠬ 㦨 뢠 室  ⤥ -
          .

                                      - 2-25 -

                               ᨢ ணࠬ

             ⨩ 砩 ᯮ짮 ⤥ ⥩   ந-
         室  ⮣,   ணࠬ 室 맢 ᠬ ᥡ.  
          騬 ।⢮ 襭 ஡    "४-
         ".  訬 ਬ஬ ⮣ 堭  㭪 ᫥-
          䠪ਠ ண 楫 ᫠.   ⨭  2-7  
         ਬ  襭 ஡ ᫥ 䠪ਠ.   襭
          ⮫ ⥭,    ᮤন ஢   ९  
         㬭,     룫廊 㤮⢮⥫쭮  祭 N  1
          7.

              ⨭ 2-7.  襭 ஡ ४ᨨ  ᫥
                                    䠪ਠ
         -----------------------------------------------------------------

         factor  PROC NEAR              ; 宦 䠪ਠ ᫠ N
                 cmp  ax,2              ; 㦥 ⨣ ?
                 jne  subfact           ; , ᫥ (N - 1)!
                 mov  ax,2              ; , 믮 ᭠砫
                 ret
         subfact:
                 push ax                ; ࠭ ⥪饣 祭 N
                 sub  ax,1              ; 祭 N - 1
                 call factor            ;  (N - 1)!
                 pop  bx                ; ⠭ 祭 N
                 mul  bx                ; N x (N [min]-1)! = N!
                 ret
         factor  ENDP
         -----------------------------------------------------------------

           ୮-室  - 室 ᫮ 쭮 

                襯᫥      ணࠬ 
         ࠭ ⤥쭮   ணࠬ  ⠪,  ⮡  ᪮쪮
         楤,    ᮡ⢥묨 ﬨ ,   -
          ணࠬ         ६.  ᫨  ⨫
          ਩,   ,  ணࠬ ୮-室 (-
         ୮-ᯮ㥬).  .. ணࠬ   맢 ()
             ணࠬ  ⮪,     믮 㣮
         ணࠬ ⮪.  "ணࠬ ⮪" 㪠뢠  , 
         ,  맢  ணࠬ 㣮 ணࠬ,   맢
         ᠬ ᥡ (४).
              ⢨⥫쭮, , 騥 ࠭, ࠭-
            ⥪ 뢠饩 ணࠬ.    ⮫쪮  ४-
         ᨨ,  ᪮ ணࠬ ,   ࠢ । 
          ணࠬ,   । 室 ⠭ 
          .   짮⥫᪨ ਪ ணࠬ  
         ਪ  ணࠬ ࠡ稪-뢠    -
           ணࠬ    ᢮  ,  饭  
         ६.  ࠢ   ⠪ ணࠬ   ।  
         ६.     ⠭     ,
          ணࠬ    ࠧ.  쭠  -
            ।  ࠧ묨 ᯮᮡ:    ⥪
           .

                             쭠   ⥪

              쭮   ⥪    १ࢨ஢  
         ⥪  ।⢮  㬥襭 㪠⥫ ⥪.   뢠
          맮,  ந室騥 ᫥ ⮣,   ⥯ ᯥ 
         ⮬  ⥪ ࠭   , ⭮ 
         ࢠ ணࠬ.  ᠬ 㤮 ᯮᮡ ࠭ ,
          ॡ騩, ⮡   ᥬ  ६ 믮-
          १ ॣ BP ( 㦤 ⮣  ᬮ  ।騩
         ࠧ,    "।    ⥪").  ਬ ⮣
         ᯮᮡ, ᭠ ਬ砭ﬨ, ᮤন  ⨭ 2-8.

               ⨭ 2-8. ᯮ짮 ⥪  쭮 
         -----------------------------------------------------------------

                           ; 뢠 楤

                 ...    ...
                push   <argument_3> ; । 3- 㬥
                push   <argument_2> ; । 2- 㬥
                push   <argument_1  ; । 1- 㬥
                call   Example      ; 맮 楤
                add    sp,6         ; ⪠ ⥪
                 ...    ...

                           ; 뢠 楤

         Stackframe    STRUC       ; । 蠡  ⥪
         LocWord dw    ?           ; 쭠 ६ Word (᫮)
         LocChar db    14 dup (?)  ;  ᨢ ᨬ
         LocIndx dw    ?           ; 㣠 쭠 ६ Word
         XamplBP dw    ?           ; ࠭塞 祭 BP
                 dw    ?           ;   (NEAR call)
         Param1  dw    ?           ; 1- ࠬ (। ᫥)
         Param2  dw    ?           ; 2- ࠬ
         Param3  dw    ?           ; 3- ࠬ (। )
         Stackframe    END         ;  । 蠡
         ;
         base    EQU   [bp - offset XamplBP] ; ࠢ BP  蠡
         ;
         Example PROC  NEAR        ; 砫 楤
                 push  bp          ; ࠭ ண 㪠⥫ 
                 mov   bp,sp       ; ࠢ Stackframe  ⥪
                 sub   sp,offset XamplBP ; १ࢨ஢   ⥪
                 push  si          ; ࠭ ᯮ㥬 ॣ஢
                 push  di
                 ...   ...                        ...
                 mov   si,base.Param1  ;   1- ࠬ
                 mov   al,base.LocWord ;    ६
                 ...   ...                        ...
                 pop   di          ; ⠭ ࠭ ॣ஢
                 pop   si          ;
                 mov   sp,bp       ; 㤠  ६
                 pop   bp          ; ⠭ ࢮ砫쭮 BP
                 ret               ;   ⪨
         Example ENDP              ;  楤 Example (ਬ)

                                      - 2-27 -

             ..   Stackframe  ।   ⥪饬 ᥣ,
          室 ४뢠 ᥣ. ᫨ ᯮ ᬥ饭
          㣮 ᥣ,  ਬ,  ⪥ ᯮ짮 蠡-
           㣮 ᥣ ,   뫪 室 ᯮ짮-
            SS:  override ().  ⪠  믮
         ⮣ ॡ ਢ  뤠 ᮮ饭  訡  ஠-
         ᥬ  MASM  "Can't  reach with segment reg" ( 
         ॣ ᥣ). ᫨ -   ᮮ饭,  
         砥,   । ᥣ,  ஬ ⢫
         ,  ⥪騩 ᥣ  ਭ    㦭  
         ஡.
             ᫨   ⥪ । 쭠 ,   । -
         ⮬ ࠢ   ணࠬ    ᢮.  
          믮 ⥬  ࠧ 쭮   ⥪
         (饭  ० ﭨ sub sp,offset bp  ⠭-
          ॣ BP  ࠭ 祭 (mov  sp,bp)).  
             ᢮   樨 RET N,  ..  ⥪
         設 ⥪  ᮤন  !
              設⢥ ஢  몮 ᮪ ஢  ।-
         ⥫ ᯮᮡ ࠭    ᯮ짮-
          ⮩ "६"    ⥪.  ६,  頥  
          ⨯ ,   㯮  ,  ᪨
          ⮬᪨ ६.  ⨭ 2-8 ।⠢ ⨯
         ᫥⥫쭮 ᮡ⨩,  ந室  室 ⨯ ண-
         ࠬ  몥 ᮪ ஢. 楤 ⠭  
           (࠭ ॣ BP  ⠭ ॣ BP  ⥪饬
         SP),  ।   (⠥  SP)   ࠭
         ॣ,    ࠧ.
             . 2-1 ।⠢  ⥪,   룫廊 -
          ணࠬ Example (ਬ),  뢠  蠡 Stackframe
         (  ⥪) ࠢ   ⥪.  ⨬, 
         ࠢ   믮       ᠭ        
         "[BP-offset XamplBP]". .. XamplBP ஢  祩 ࠭-
          BP  ⥪,   ࠭ ᠭ  base.XamplBP  ⭮
         [BP  -  offset XamplBP + offset XamplBP],   ᫥   
         ᠬ,   [BP + 0].  㣨  ⮬    ,  
          蠡 ⥪  稭   ⠪ -
         ⮢,   ࠧ   .

                樨 ENTER  LEAVE  쭮  ⥪

                 ᥬ⢠ ய஢ 8086 
         "⥫"  ᯥ祭   樨    ᯮ짮-
          쭮   ⥪.   iAPX186, iAPX188 
         iAPX286 ন 樨 ENTER (室)  LEAVE (室). -
          ENTER ᯮ  ⠭ 쭮   -
         ,  ணࠬ  ,   LEAVE ᢮-
            ,   ணࠬ  ⢫  室.
         ⥫  樨  ENTER   LEAVE   -
         প 㪠⥫ ,   ᯮ । -
          ஢ 몠 ᮪ ஢,  ਬ,  ⠪,
           ணࠬ஢ ᪠.
              裡  ᫮  権,   ।⠢ 
         ,   ⨭ 2-9.    짮⥫
         ய஢  8086/8088 ⢮ २⢮  -

                                      - 2-28 -
         権  室   ᮢ६ ய.  -
            ,   enter  leave ⪫  -
         樠쭮 ⠭ ⢨  ⢥ 䨪    @,
         ⮬    ।祭   権 ENTER  LEAVE
          ᯮ짮 ய஢ 8086/8088.
              믮    ENTER  ⢫    ⥪ 
         ⢨.   ᥣ 頥 祭 ॣ BP  ⥪.  ᫨
         祭 level (஢)   ࠢ 1,    -
          ।騥 祭 ॣ BP  ⥪.  ᫨ 祭 local
         ()     ࠢ 1,    뢠 -
         ࠭⢮  쭮    ⥪  ⥬  ⠭  祭
         local  ண BP  ⥪ (ࢠ  push).

          訥  .----------------------------------.-----
                         | ।騥  Stackframe  |   ^
                         |----------------------------------|   |
                         |             Param3               |   |
                  [BP+8] |----------------------------------|   |
                         |             Param2               |   |
                  [BP+6] |----------------------------------|   |
                         |             Param1               |   |
                  [BP+4] |----------------------------------|   |
                         |                                  |   |
                  [BP+2] |----------------------------------|   |
                         |             XamplBP              |Stackframe
                  [BP+0] |----------------------------------|   |
                         |             LocIndx              |   |
                  [BP-2] |----------------------------------|   |
                         |             LocChar              |   |
                  [BP-4] |----------------------------------|   |
                         |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|   |
                                                                |
                          /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\    |
                  [BP-16]|----------------------------------|   |
                         |             LocWord              |   v
                  [BP-18]|----------------------------------|-----
                         |      ࠭ 祭 SI     |
                         |----------------------------------|
                         |      ࠭ 祭 DI     |
           設 ⥪ |----------------------------------|
                         |          㯭         |
          訥   ----------------------------------

               .2-1. 쭠  ⥪    ࠬࠬ

              LEAVE 믮 ⢨,  ⢨ -
         樨 ENTER,  ॣ BP ⠢ ,  襭  ࢮ-
         砫쭮 祭, ⠭ 樥 ENTER.
              ⠭ 䠧 ⮩ 樨      
         㪠⥫  .   .2-2  ﭨ ( ᮤ-
         ) ⥪  鸞 権,     ᫥-
         ⥫ 権 ENTER.
               ⥪  .2-2  ⮡ࠦ    ᨬ᪮
         ଥ 2  ( ⮩ 稭  祭 ࠬ஢ local (-
         )  樨 ENTER 㬭  2 .   -
          ࠭祭 樨 ENTER). ५  . 2-2  ᨬ-
         ᪮  ଥ  ⮡ࠦ  뫪        㣮

                                      - 2-29 -
          (..  ᮤন  㣮 ).

              ENTER 4,1           ENTER 2,2           ENTER 4,3
              xxxxxxxx            xxxxxxxx            xxxxxxxx
          .-->[஥ BP]<---BP#1 [஥ BP]         [஥ BP]
          ----[FP # 1   ]  ^      [FP # 1   ]         [FP # 1   ]
              [local    ]  |      [local    ]         [local    ]
         SP-->[local    ]  |      [local    ]         [local    ]
                           |  .-->[BP # 1   ]<---BP#2 [஥ BP]
                            --|---[FP # 1   ]  ^      [FP # 1   ]
                               ---[FP # 2   ]  |      [FP # 2   ]
                            SP--->[local    ]  |      [local    ]
                                               |  .-->[BP # 2   ]<--BP#3
                                               |  |   [FP # 1   ]
                                                --|---[FP # 2   ]
                                                   ---[FP # 3   ]
                                                      [local    ]
                                                 SP-->[local    ]

                    .2-2. ⢨ 樨 ENTER  ⥪

             ࢠ  ENTER (஢ 1) ⠭  ⢥-
          㪠⥫  ,  㪠뢠騩  ᢮ ᮡ⢥ 
         ,  뢠 孥 ࠭⢮  ⥪  4 ⮢ -
         .    ENTER (஢ 2)  ⮫쪮 ᮧ ᢮
         ᮡ⢥ 㪠⥫  (FP#2),    㪠⥫ 
             ।饣     (FP#1).   
         ENTER ᮧ ⮫쪮 2  쭮 . ᫥ -
           ENTER  (஢ 3) ७ 蠣 1 樨 ,  
         㪠⥫  ।  ஢ (FP#1  FP#2).
             祬 믮 ਬ ᫥⥫쭮 稭  ஢
         1 樨 ENTER,     樨 ENTER ஢ 0?  ஢ 0
         樨  ENTER  頥 ᮤন ॣ BP  ⥪ 
         ⠥ 祭 local ()  㪠⥫ ⥪,  ⠭-
           ॣ  BP  㪠  ⮫쪮  饭 祭
         ॣ BP. ⥫    . ஢ 0 -
         樨  ENTER    ᮧ 쭮  
         ⥪.   ᯮ짮 樨 ENTER      ४⨢
         STRUC,    ENTER   ⮬᪨ ᮧ -
           ⥪,   㯭.

                 ⨭ 2-9.  ᮢ  権
                                   ENTER  LEAVE
         -----------------------------------------------------------------
         ;;    ENTER  LEAVE
         ;;
         ;; ᠭ  樨  ᯮ짮  㯥
         ;;  ⠬   ⥪, ᮧ 樥 ENTER
         ;;
         pbase equ     [BP + 4]           ;;   ࠬࠬ
         lbase equ     [BP - ??tsize]     ;;    
         fbase equ     [BP - ??fsize]     ;;   㪠⥫ 
         ;; Form  ENTER     local <immediate 16>, level <immediate 8>
         ;;
         ;; ENTER--   ⥪  । 쭮 
         ;; ஢ 㪠⥫  ⥪  ।饩 ணࠬ 
         ;;   ⥪  ⮩ ணࠬ  ⨥ ࠭⢠

                                      - 2-30 -
         ;;  ⥪   쭮 
         ;;
         enter  MACRO   local,level
                ??tsize = local + level * 2
                ??fsize = level * 2
                push    bp
                IF (level NE 0)
                  IF (level GT 1)
                    REPT level - 1
                      sub       bp,2
                      push      [bp]
                    ENDM
                  ENDIF
                    mov bp,sp
                  IF (level GT 1)
                    add bp,(level - 1) * 2
                  ENDIF
                  push bp
                ELSE
                  mov   bp,sp
                ENDIF
                sub     sp,local
                ENDM
         ;; Form LEAVE
         ;;
         ;; LEAVE-- 믮 楤 , 㤠饩  ⥪
         ;;  쭮 , ⠭  樨 ENTER
         ;;
         leave  MACRO
                mov    sp,bp
                pop    bp
                ENDM
         -----------------------------------------------------------------

              ⨭ 2-10  ࠣ ணࠬ ᮧ  -
            ⥪  ᯮ짮 樨 ENTER.   ࠣ-
          ணࠬ ।,  ।   ᯮ  
           ⥪.   ENTER ᯮᮡ 祭 १ࢨ-
         ஢ 室 ⢠      MASM
         SIZE.    業  (%) ॡ ⮫쪮  ॠ樥 
         樨 ENTER.   ᯮ짮  ᨨ  設  ணࠬ
         (ন  ஠ᥬ஬  MASM 2.0   ⥬ 㪠
         ४⥫ .286)  業(%)   饭.

             ⨭ 2-10.   뫪  쭮  ⥪
                                 樨 ENTER
         -----------------------------------------------------------------

         ?data_1      STRUC
         my_var dw    ?
         ?data_1      ENDS
         test   PROC  NEAR
                ENTER %(size ?data_1),0  ; । 쭮 
                mov   lbase.my_var,10    ;  祭  ..
         -----------------------------------------------------------------

                                      - 2-31 -

              lbase    ⨭ 2-9 ।    
         㯠  ᥬ    ६.  ⢨⥫쭮  뫪,
         ᮧ  樨 MOV, :

                          mov   [BP - ??tsize].my_var,10

              ??tsize ⠭ ॠ樥  樨
         ENTER  ⢠  ⮢,  塞    ⥪    樨
         ENTER,     祭 ॣ BP.  祭 ⮣ ᨬ
           local + level * 2.  ⠭ 祭 ᨬ
         ??tsize    ᮤন ॣ BP,  १⮬  
         孥  ⥪.   ࠧ,   뫪   
         ⥫쭮  ᬥ饭  ᨬ lbase.   ᫨ ᯮ
          設  樨 ENTER,    -
         ,      祭 ᨬ ??tsize  ᮧ -
          ENTER ⠪ ࠧ,   堭    ᯥ-
         宬 ᯮ짮   186/188/286.
             㣨 ᨬ, ।  ⨭ 2-9,  ᨬ
         pbase  -    㯠  ᥬ ६, ।
          ⥪.  祭 ᨬ pbase ࠢ [BP + 4],  ⮡ 墠 2
         , 饭  ⥪   near () 樨 CALL
         (맢 楤)  2 , ॡ騥  ॣ BP, -
         饭   ⥪  樨 ENTER.  ᫥ ⮣,   ।
          ࠬ஢ ⥪,  ᨬ pbase   ᯮ짮  
                ᨬ᪮ 㯠  ,  ਬ,
         pbase.my_param.
             稢 ᠭ ⮣ ᯮ짮 樨 ENTER, -
             㪠⥫  .    ⠪? 
         㪠⥫    㪠뢠  砫   ।-
         饩 ணࠬ ⥪.  ⥬ 㧪 ॣ BP ᮤন 
           㪠⥫  ,  ࠧ饭  ⥪饬 ,  
          祭      ६  ।饣  ஢.
         ࢮ砫쭮   뫮 ஥஢  ॠ樨 몮 ண-
         ࠬ஢ ᮪ ஢ ⠪  ,  ਬ,  ᪠,  
         ணࠬ    ⮬᪨     ६ ஦饩
         ணࠬ.  ᫨ ⥫ 筮 ᮧ५  ⭮襭 ᮪
         ஢ ୮ ணࠬ஢  몥 ᥬ,   -
         ⭮  ய  ᯮ짮  ⥩   㪠⥫   
         樨 ENTER.   类 砥,  ᫨ ⥫ 訫 ஡-
          ᯮ짮 樨 ENTER  㪠⥫ ,   -
         ⥫  ᯥਬ       ⢮ 
         㭪樮஢.

                  ⪮  ࠧ饭 ணࠬ 

             ⨬,   ୠ  室      室
         ᫮ ६⨬ ணࠬ,   ६⨬  
         室 ᫮  ୮  室  ணࠬ.  "ன
         ணࠬ"  (⥬  䨪樨 ᮢ  ࠧ饭 ணࠬ 
         ।  )  ਬ      ६饭
         ணࠬ   .  "ୠ 室" ਬ  ண-
         ࠬ,   ""  .  "ᨢ" ண-
         ࠬ -   ⨯ ୮-室 ணࠬ  ᫠묨 ࠭-
         祭ﬨ,   ணࠬ    窥   -
            ⮢ ᫥饣 맮.
             ஬ ⮣,   ᠭ ୮-室  ணࠬ  
         뢠  ⮬,  ࠬ ணࠬ ⠪   ୮
         -室묨.    楤   砥 ࠢ,
             ।  ⠪  뢠 ணࠬ,
           ᥣ 饭 ( ⥪),   ᥣ  ࠭塞
         (ਬ,    ணࠬ  㦨 뢠 ࠭ ᢮
         ॣ  맮 ணࠬ).
              ᫥   ⮬,    ⨯ ६⨬-
          ணࠬ .   ࢮ ⨯ ⭮ ࠨ -
         ⥬ ணࠬ 樮 ⥬ MS-DOS,  MS-DOS, ᯮ
         奬 ன,   祭 ६ ᥣ   ⮣,
         ⮡ ந ணࠬ.   ஬ ⨯ ⭮ ᠬࠨ-
         騥 ணࠬ,     ॡ 奬 ன. -
         ࠨ騬  ணࠬ   ⮫쪮 ⠪ ணࠬ,
            ⮫쪮  ᬥ饭    CALL  (-
          楤)  JMP (᫮ 室).

                        䥩  몠 ᮪ ஢

              騬 ᯮ짮 몠 ᥬ  饥 -
           ਬ   ⢥ ਫ    ணࠬ-
         ஢ ᮪ ஢.   ࠧࠡ⪥ ணࠬ,  ࠢ,
         筮 ᯮ  ᮪ ஢      -
         㫥   몥 ᥬ.  ᥬ ᯮ ⮣,
           ᪮ ࠡ ணࠬ   ࠧ,   
           ᮪ ஢  ᯥ稢    
            ।⢠.
                 ,  ⭮  裡 ணࠬ 
         몥 ᥬ   ணࠬ  몥 ᮪ ஢.  - -
         ᮢ    ﬨ;  ࠡ⪠  ᯥ樠
         ⠭,    ॡ  ணࠬ஢  -
           몠; ன 㫥 몠 ᥬ  饩 -
         ᫥⥫쭮 맮  㬥 । ࠬ஢, ᯮ-
         㥬 ஬ ⭮ 몠 ᮪ ஢.
              諮,   몮 ᮪ ஢  뫮  筮  
         ࠢ  ॣ㫨஢  ᮣ襭  ᢮   ᫥⥫-
         ⥩ 맮.      , .. 
           ᫥ ⠭⠬ ਪ᪮ 樮쭮 -
          ⠭⮢ (ANSI).   裡  ப ᯮ짮 -
         ஢  몮  ᮪ ஢  ""   裡  ⥬,
           ਤন ⠭⮢ ANSI,     -
              ""    몮 ணࠬ஢:
         ᨪ, , ࠭    ᪠  樨 ᮣ襭  맮
         ணࠬ.

                 襭    몠   ""
             襭   ,  ந஢    ⨭   2-8,
         ।⠢ ⨯ ணࠬ  몥 ணࠬ஢ . ᫨
          ணࠬ Example ࠭᫨஢   ,   砫
         । 뫨  宦  ᫥騥:
              void Example (Param1, Param2, Param3)
                   int Param1, Param2, Param3 ;
                   {
                   int LocIndx ;
                   char LocChar [14] ;
                   int LocWord ;
                   ...   ...

                                      - 2-33 -

              몥    ணࠬ  ⠪ 㭪ﬨ;  
         ணࠬ   祭  뢠  ணࠬ. 
         裡  ⥬,   ਢ 㭪  頥 祭, 
            㭪 (void).
              ணࠬ஢  ᯥ稢 ᯮ짮 ⮬-
         ᪨  (automatic)  ६    .
         ⨬, ,   ⠭, ।뢠騩 冷
         ࠧ饭  ⥪  ६.
              ⨭ 2-8, . 2-1   ਢ  ࠣ ண-
         ࠬ     頥 ᢮ 㬥  浪, -
         ⭮  .   ⮣ ᯮᮡ  ,   ᫨
         । ६ ⢮ ࠬ஢,   뢠 ண-
         ࠬ  ᥣ  ᠬ   ࠬ    䨪஢
         樨    ⥪.  ࠬ  Param1  㤥  ᥣ ࠧ 
         [BP + 4],  ᨬ  ⮣,  ⢮ ࠬ஢ 뫮 
         ⢨⥫쭮 ।. ணࠬ  몥 , ᪠騥 -
         짮 ⮩ ᮡ,  筮 ᯮ ᠬ   
          ࠬ  । 饣 ⢠ ࠬ஢,  -
           뢠  ணࠬ.    ⮬  ᯮᮡ  뢠
         ணࠬ   । ᪮쪮 ࠬ஢  室 -
         .
             㣮 ᮡ,  ⬥砥  몥 ,  , 
         ࠬ  ᥣ ।  祭.  ᫨ 맢 -
         楤 Example (ਬ)  ६ FOO,   ᮤন ६-
          FOO 㤥 饭  ⥪.  뢠 ணࠬ, ⠪ -
         ,  ࠡ⠥   । ६,      ᠬ.
         ᪫祭 ⮣ ᯮᮡ ⮨  ⮬,  ᨢ 筮 ।-
            .  ( ⠭⭮ 몥  䨪஬ ᨢ
           ,  ⠪   饥 ᪫祭   ⢨-
         ⥫쭮  ᮣ  ᨭ⠪ᮬ 몠 ).  ,   
          ணࠬ ।     ६,  ᫨
         ॡ.
             몠   "" ন ⥩
         । ணࠬ஢,   ⭮ ணࠬ 
         ࠢ ,  ᯮ㥬 㫥.   ਢ ਬ
         ।⠢ । ணࠬ஢ 몠   㬮砭, -
           맮 ணࠬ near ()  뫪  near  .
             ४ 㦥 ᤥ ⪠,  㤥   -
         楤 Example (ਬ) ணࠬ  몥 .    ९-
         ⢨, ஥ 室 ८, ⮨  ᮣᮢ ,
         ᯮ㥬  뢠饩 ணࠬ  몥   뢠
         ணࠬ  몥 ᥬ.  ஡ 砥   ⮬,  
          몠  ⠢ 䨪 "ન" (_) । -
          .     맮 ணࠬ  Example
         (ਬ),    ॠ쭮 ।,    ணࠬ 㭪
         祭  "_Example".  ,     ନ
         ࠧࠡ⠭  ।饭   ࠭⢮ 
           ࠭⢮  ᥬ. ᫨  뢠 
         뢠 ணࠬ ᠭ  몥 ,   ࠭᫨-
           뫪  ⮬   ⭮⥩.    
          뫮  몥 ᥬ,   室 믮 ࠭
         ᠬ.  ࠭ ਬ  뤠  ६ -
           ⠪ ᯥ譮,   ணࠬ ⮪.

                                      - 2-34 -
              ⬥  ⢥ :
             -  몥 ணࠬ஢   ࠭祭 8 ᨬ;
             -    몥 ணࠬ஢  ⢨⥫    -
         .
              몥 ணࠬ஢  "Example"    "example"    
         ࠧ . ணࠬ  몥 ணࠬ஢ ᥬ -
          ᥬ஢  ४⥫ /mx  ।࠭  -
         㥬 ॣ  .

                                                        2-1
                 襭    몠   ""
         _______________________________________________________________
                                   |
              襭           |                 ᠭ
         __________________________|____________________________________
                                   |
          뫪  ணࠬ      | Near ()  far ()
          뫪           | Near ()  far ()
          ⥪ 頥           | 뢠饩 ணࠬ
          ࠬ ।    | ⭮ 浪
          ࠬ ।   | 祭
          祭    | ॣ AX  DX:AX
                         | 8 ᨬ
          ᥬ  । | ᨬ "ન" (_)
         __________________________|____________________________________

             ᫥ ॡ    ணࠬ஢    
           맮  ணࠬ  몥 ᥬ.   ॡ
         ᯥ稢 ⥬,    몥 ᥬ 㭪    
            public (),    몥  -  extern (-
         ).  ⪨ ᢥ  ᮣ襭    몠 ணࠬ-
         ஢   "" ਢ  ⠡ 2-1.

              襭    몠 ᪠  ""

             ᫨ ⨭ 2-8 ਡ  ᨭ⠪ 맮    몠
           "",  ᮣ襭     -
          ᪠  ""  ࠦ    ਬ,
         ਢ  ⨭ 2-4.  맮  ᪠ ⥭ 맮
         楤 myproc ( 楤),  ஢ ᫥騬 -
         :

               procedure MyProc (Param1, Param2, Param3 : integer) ;
               begin
                ...

              ⫨稥  몠   ᪠ ⮨  ⮬, 
         ᪠  믮 ࠧ  ண ஢ப.   ஢ન
         ࠭:    맮 । ࠢ쭮  ⢮  
         ⨯ ࠬ஢;   祭 㭪樨 ᯮ ᯮᮡ, -
         ⢥騬  ⨯  ..   ࠧ,   ⫨稥   몠
         ,  몥 ᪠ ணࠬ     楤-
         ன (ணࠬ,    頥 祭),  㭪-
         .
              ᪠ ⠪ ᯥ稢  ᯮ짮 ⮬᪨
         ६    .    몥 ,  몥

                                      - 2-35 -
         ᪠  ⠭ 襭   祭  浪  
         ६  ⥪. ,    몥 ,  ᪠  
          ६ ।  設 ⥪   室 
         뢠 ணࠬ.  ᫨ 楤 MyProc ᯮ 
         ६ LocIndx,  LocChar  LocWord,      -
            ⠪,       StackFrame ⨭ 2-8.
         ᪠ ⥭ ணࠬ, 宦   ਢ:

               procedure MyProc (Param1, Param2, Param3 : integer) ;
               var
                   LocIndx, LocWord : integer ;
                   LocChar [1..14] : character ;
               begin
                ...

              ⨭ 2-4  㢨,    ⫨稥    몠  ,
           ᪠  頥  ᢮ 㬥  浪,   ஬ 
         ,  ᫥ ࠢ. 稭,  ன  ᯮᮡ -
         ,  ⮨  ⮬,    몠 ᪠ ࠭,
           饭, 뤠 ணࠬ, ᯥ稢 ࠢ쭮
         ⢮    ⨯ 㬥⮢.   ᪠   
         । ६ ⢮ ࠬ஢,  ⮬ 冷 -
         ।, ᯮ㥬  몥 ,  ॡ  몥 ᪠.
             ⢨ ண ஢ન 맮,  믮塞 몮  -
         ,   ,  뢠 ணࠬ ᥣ 砥 
            ⢮ 㬥⮢,  饥  뢠 ணࠬ
         ᯮ짮   RET N  ⪨ ⥪,  
          뢠饩 ணࠬ.
             㣨 室⢮    몮   ,    ᪠
         筮 । ᢮ ६  祭,  , ᫨ ॡ-
         ,   ६  ।  , ᯮ -
          var (६).

                                                          2-2
                襭   몠 ᪠  ""
         ________________________________________________________________
                                       |
                  襭           |           ᠭ
         ______________________________|_________________________________
                                       |
          ணࠬ 뫪           | Far ()
          뫪               | Far ()
          ⥪ 頥               | 뢠 ணࠬ ( RET N)
          ࠬ ।        | 浪 
          ࠬ ।       | 祭
          祭        | ॣ AX  DX:AX
                             | 8 ᨬ
                       | ⢨⥫묨  ॣ
         ______________________________|_________________________________

             ⫨稥  몠 ,  몠 ᪠  "-
         "  ᯮ    LARGE (让),  ।騩
         맮 far ()  뫪   far ().  ,  
         ⫨稥   몠 ,   ᪠ ᯮ    -
         ,  ᬮ  ,   㭪 몠 ᥬ  
             public (),   뫪 몠 ᪠ 
            extern (譨).  ⪨ ᢥ  ᮣ-

                                      - 2-36 -
             몥 ᪠  "" ਢ   ⠡-
          2-2.

           襭   몮 ࠭  ᨪ  ""

             ⠭   몮  ணࠬ஢  ᨪ   
         ࠭   "" 祭 宦   몠 -
           "".  2-3 ࠢ 뢠,  
           室⢠  ⠭ 맮. ,  
         ⫨.   ⫨稥  ᮣ襭    몠  ᪠
         ⮨  ⮬,    ᨪ  ࠭ । ᢮ 㬥 
         뫪.    모 ணࠬ஢ ।  -
         ,    樨  ६묨,  믮塞 뢠
         ணࠬ, ⠪  祭 ६  뢠饩 ண-
         ࠬ.
              ⢨⥫쭮, 室⢮  ᥬ  䥩-
          砥,     ணࠬ  몥 ᥬ-
           ᨪ  ࠭,  ⠪    ᪠   몠
         .  ,    ணࠬ 몮 ᨪ  ࠭  ⠭
         ࠢ쭮 䥩 ॡ 訥 ᨫ.
             ⮬ ।  extern (譨)  몥 ᨪ -
          । DECLARE (),    ६      몥
         ࠭  ॡ  । INTERFACE (䥩).   
          । ନ ᮮ⢥騩      ⮬,
            ᮮ⢥饩 ணࠬ  室  ⥪饣
         .   ନ஢   ⮬,  ଠ஢
           ᣥ஢  ࠢ 맮,   ॡ -
         ⥫ ࠬ.  襭    몮 ᨪ  -
         ࠭  "" ਢ  ⠡ 2-3.

                                                          2-3
                  襭    몮 ᨪ  ࠭
                                  ""
          ___________________________________________________________
         |                      |                 |                  |
         |     襭       |    ᨪ       |   ࠭        |
         |______________________|_________________|__________________|
         |                      |                 |                  |
         |뫪  ணࠬ   |Far ()    |Far ()     |
         |뫪        |Far ()    |Far ()     |
         |⥪ 頥        |     뢠 ணࠬ (RET N)  |
         |ࠬ । |          浪        |
         |ࠬ ।  |  Far(-| ᠬ Near   |
         |                      |)           |()/Far (-|
         |                      |                 |)            |
         |祭  |       ॣ AX  DX:AX        |
         |            |40 ᨬ      |6 ᨬ        |
         |  ।⠢| 孥 -   |⢨⥫   |
         |                      |           | ॣ        |
         |______________________|_________________|__________________|

                          ᥣ  ""

              5.0  ஠ᥬ  MASM  ""  -
          ணࠬ  㪠뢠 騥  ᥣ⮢
           ⠭     몠 ணࠬ஢  
         ४⨢ MODEL.   ᨨ 5.0 ⠭ 饣 蠡-

                                      - 2-37 -
          몠 ᥬ ⭮⥫쭮 .   몠 ணࠬ-
         ஢ ᯮ  ࢨ    ᥣ⮢.  
          ᥣ "_TEXT",   ᥣ  "_DATA".  -
          䥩ᮢ  ॡ  ⥫ ᥣ,
               ஢  "" ॡ, ⮡
         ⥪ 頫   ᥣ .  , ⮩ ணࠬ 
         몥 ᥬ  㦭 ᯮ  ⮬,  ⠪   
          ⪫ 㭪樮஢ ⥪  뢠饩  ணࠬ 
          室 ⠭ 㤥 ন  ணࠬ
         몠 ᮪ ஢.

                 2 0祭  ᯮ짮 쭮   

               ᯮᮡ ।   ६.  -
          ᬠਢ 쭮  ( )    ⨢
              ⥪.  ᬮਬ 쭮 
          ।塞 .  ।塞   
          ᯮ㥬  ⥬ ( 뢠 㫮 ).
         MS-DOS ন 㭪樨,     ᯮ짮 
         ।,  ।  ⠭ ࠧ  -
         ⥬ .  ᫥ ।  ணࠬ  ॠ-
           ᢮   (ᮭ) 奬 ࠢ  
         ࠢ   㧪 ⪥.   ᥩ ᪮業㥬
         ᢮       MS-DOS,  稭  㭪樨 48h -
         "। ".
             ᫥ 祭  ,  ணࠬ   -
           樨.  , ।塞 MS-DOS, ।⠢-
             "᪠"  16 ⮢,  뢠 "paragraph" (ࠣ-
         䮬). MS-DOS 頥 㪠⥫   ,  ᮤন
         16-⮢   .    ࠣ,
          ⮬ 㪠⥫   㦥    ॣ஢  ᥣ-
          (   ॣ CS!). 筮  ୮ 㯠  -
           ᯮ  ᥣ ,  譨 ᥣ.
         ᫨ ணࠬ,  ।﫠 ,   -
          ணࠬ ணࠬ,  ஥ 祭 ॣ ᥣ
           ࠭  ⠭ । 室  ண-
         ࠬ.  ஬ ⮣,  । 室  ணࠬ ।
             饭  ⥬.    ।-
             ⥬ ᯮ 㭪 49h  MS-DOS  -
         "᢮ । ".  ⨭ 2-11 , 
         ணࠬ ᯮ塞 ணࠬ .EXE 㤥  ।,  -
         짮   ᢮ ,  ᯮ㥬   -
          (쭮 ).


          ⨭ 2-11. । 쭮  ।⢮ MS-DOS
         -----------------------------------------------------------------

                     common   SEGMENT ; 騥 , ᯮ㥬 ᥬ
                     com_1   dw     ?
                     com_2   db     14 DUP (?)
                     common    ENDS
                     dummy_dat  STRUC      ; ᠭ ,
                     dummy_1 dw     ?      ; ᯮ㥬 
                     dummy_2 db     14 DUP (?) ; । 
                     dummy_dat ENDS
                             ASSUME ds:common ;    COMMON

                                      - 2-38 -
                     local_example  PROC    NEAR ; 楤 example
                     push    ds        ; ࠭ ।饣 DS
         B8 ---- R   mov     ax,common ; COMMON ࠨ MS-DOS
                     mov     ds,ax
                     push    es        ; ࠭ ।饣 ES
                     mov     ah,048h   ; । 
                     mov     bx,1      ;  1  (16 )
                     int     21h       ; 맮 MS-DOS
                     jc      not_alloc ; ७ 砥 ᡮ ।-
                     mov     es,ax     ; ᫨ ।,   
         ;
         ;                  ਬ 樨
         ;
         A1 0000 R   mov     ax,com_1 ; 騩 ᥣ.-। DS
         B8 0000     mov     ax,dummy_1 ; 訡 ᥣ.-।⢥
         26: A1 0000 mov     ax,es:dummy_1 ; 騩 ᥣ.-頥
                     ;
                     mov     ah,049h   ; ᢮ ।. 
                     int     21h       ; 맮 MS-DOS
                     jnc     free_ok   ;  ७ .. 
                     not_alloc:
                     ; 饭  訡, ᫨ ᡮ, -  㤠-
                     free_ok
                     pop     es        ; ⠭ ES
                     pop     ds        ; ⠭ DS
                     ret
                     local_example   ENDP  ;  ਬ
         -----------------------------------------------------------------

             ⨭ 2-11 ᮤন  맮 㭪権 MS-DOS "।
         "  "᢮ ".  ॣ DS  㪠 
         ⮫쪮  । ,   ᯮ짮 ॣ ES,  
         ॣ  DS १ࢨ஢  㯠    ६
         ணࠬ.  ⨬,   ⫨稥  ਬ ⥪,  믮-
          㯠  ᯮ㥬 ,  । , ॡ-
           饭 ᥣ (:).  饭 ᥣ -
           mov  ax,dummy_1  믮  뫪  ,
         ᯮ ॣ ES,    ⮣  㧪 ᬥ-
          ( 襬 砥 )  ॣ AX.    饭
         ᥣ  樨 mov ax,es:dummy_1 ஠ᥬ MASM -
           ।     ᬥ饭 dummy_1  譨 ᥣ.
         饭 ᥣ  ⨭ 2-11      ⮬  䨪
         26:.
              ᯮ짮   ணࠬ  ᪮쪨  ᥣ⮢  
         ணࠬ  ⢥⢥  ࠢ ᯮ㥬묨 -
         ﬨ . ਬ, ᫨ ணࠬ X । 
               ॣ  DS  㯠  ⮩ ,  
         ணࠬ    ⮬,      㬮-
         砭  ਭ     ணࠬ,  뢠
         ணࠬ X.    ,   뫠  ।  
         ணࠬ, 㯭  ⥬ 㧪  ॣ DS,  -
          ES  ६ ᥣ,      ⨭  2-6.
         ணࠬ, 騥 ᮤন ᢮ ॣ஢ ᥣ, 
         ࠭   ⠭  ࢮ砫  祭  ॣ஢
         ᥣ  ।饭 ᢮ ஦   訡.
             直 ࠧ,    ணࠬ ᯮ   ᥣ-
            譨 ᥣ⮢, ணࠬ   祭

                                      - 2-39 -
         ⥫  ४⨢ ASSUME (᢮),  ᯮ㥬  ண-
         ࠬ.   ᥬ஢  뫮   ஠ᥬ-
          MASM ᭠砫   ⠡ 譨 ᨬ    -
         ,       ⢫  .  ᫨  MASM  
         ६  ⠡ ᨬ,   ⠥ ᮧ  뫪,  -
          ᥣ,   ஬ ।  ६.  ᫨ 
         ᥣ  (..  ᮮ⢥饥 ।
         ASSUME),  MASM  ᮮ饭  訡 "Can't reach with
         segment reg" (  ॣ ᥣ).
             ᫨ MASM    ६  ⠡ ᨬ,  
         ।,    室  ᥣ .  ᫨    
         ।    㤠,    MASM  ⠥ ࠢ
         訡  ६ ன । ⥬ ᮥ   樨
         䨪 饭 ᥣ.   㤠,  祭 ⮣ 
         뢠 㣮 ᮮ饭  訡 "Phase error  between passes"
         (訡 䠧  ।砬).
              砥 㤠  뫪 "।", ..   ६-
             室  ⠡ ᨬ,  ணࠬ  -
         짮  饭 ᥣ (:)   ⮣  -
         ।   ஠ᥬ஬  MASM  ᯮ㥬  ᥣ.  
         ࠢ 㯮  ணࠬ ⠪    SEG. 
           ணࠬ  祭 ᥣ (-
           ᥣ)    ।  ६.  뫪,
         ᮧ   । SEG, ࠨ MS-DOS  -
           ᮧ ࠨ 뫮  ᮫ 뫮.

                         ࠢ   MS-DOS

             ਬ, ਢ  ⨭  2-11,      饩
         ᢮   ⥬.  㬮砭 MS-DOS ࠡ뢠
         । ᥩ   ᥡ  㧪.  맮 ।-
           㤥 㤠,  ..  㦥   ,
          ᫨     . ᫨ ணࠬ  ᯮ짮
         㭪 । ,    , 祭 
         ६ 㧪,    饭  ⥬. 筮 
         㤥  ६    ,      ண-
         ࠬ   ࠬ.
             㭪, ᯥ稢  MS-DOS   ࠡ⪨  
         ।  ணࠬ  ⥬,   㭪樥 4Ah
         -  "䨪  । ".    -
          "१"     । , ਭ-
         ⮣  㬮砭.
             ⨬,   ᯮᮡ ।饭   -
         । ᥩ   㧪,   ᬮ७ ⫮ 
          3,   ⥬ 㧪 ணࠬ  ணࠬ 䠩  MS-DOS
         㤥 㦤  ஡.
             ࠬ, ॡ騥  㭪樨 "஢  -
         । ",    ᥣ ,   室
         ஢,   ࠧ .  ᥣ , -
          ᮤন ணࠬ (ࠧ ன 㦭 ஢), -
         । १ PSP (Program Segment Prefix - ᥣ ணࠬ
         䨪).  PSP  ࠧ ,  稭 -
          ணࠬ MS-DOS. ஡ ᮤন PSP 뢠  
         3.       ⮫쪮 ,   ᥣ PSP -
          ᮬ ᥣ ,  室 ஢,
           室  .
              ᠥ । ⮣ ࠬ,   ࠧ筮 

                                      - 2-40 -
         䠩  ⨯ .COM  䠩 ⨯ .EXE. . 2-3 뢠 ᯮ-
             䠩 ⨯ .COM  ⨯ .EXE.  PSP  -
          ⮬   ⨯ 䠩.   ணࠬ ⨯ .COM  PSP
         ᮤন   256  ணࠬ ᥣ   ண-
         ࠬ ᥣ (  ॣ  ᥣ)    ᮬ
         ᥣ PSP.
              䠩 ⨯ .EXE PSP ᯮ   ᮡ⢥  ᥣ-
         . , 直 ࠧ  㧪 ணࠬ ⨯ .EXE  -
         祭 ࠢ  MS-DOS,   ॣ DS  ES  ᮤঠ  
         ᥣ PSP.   ࠧ,   ணࠬ  ⨯  PSP
          㤥 ,  ࠩ ,  ॣ DS  ॣ
         ES.  ஬  ⮣,  짮⥫ MS-DOS ᨨ 3.0 ( ) 
         ᯮ짮 ணࠬ 祭  ᥣ ணࠬ -
         䨪 (PSP) - 㭪 62h.  MS-DOS 頥 祭  ᥣ-
          ணࠬ 䨪  ॣ BX.
             .. 㭪 "஢  । " ।-
             ॣ ES,   㭪   맢
         ।⢥    믮 ᪠ ணࠬ,  ᪮ -
          ES 㦥   PSP.

                |\/\/\/\/\/|                         |\/\/\/\/\/|
                |    |                         |    |
                |䠩 ⨯|                         |䠩 ⨯|
                |   .COM   |                         |   .EXE   |
           0000 |----------|           PSP           |----------|
                |    PSP   |<----------------------->|    PSP   |
           0100 |----------|                         |----------|
                |      |                         |  A|
                |       |                         |----------|
                |    |                         |  B|
                |----------|      ணࠬ     |----------|
                |   ⥪   |<----------------------->|  C|
           FFFE |----------|                         |----------|
             | ᯮ-|                         | ᯮ-|
           |  㥬  |                         |  㥬  |
         ᮪|    |    ᮪   |    |
           ---------- <-----------------------> ----------

                  .2-3.   ணࠬ MS-DOS  ᥣ
                           ணࠬ 䨪

             ᫥ ⮣,     , 室 ।-
          饥 ⢮ ,  室  ࠭. -
           ணࠬ .COM  ணࠬ  .EXE    ⠭
         㦥   묨.   ணࠬ ⨯ .EXE ࠧ  
         । ⥬ ⠭  砫 ᥣ  PSP    
         ᥣ  䨪⨢ ᥣ,  ᯮ   ணࠬ,
            ⨭ 2-12.  祬 ᯮ  ᥣ-
         ⮢?  㭪  4Ah  ࠧ  ࠣ,    ᥣ
         筮  ᮬ ࠣ.

          ⨭ 2-12. 㭪 4Ah - "஢  ।
                  " -  ࠧ ணࠬ ⨯ .EXE
         -----------------------------------------------------------------

         resize PROC NEAR
                mov     ax,es           ; 祭  PSP

                                      - 2-41 -
                mov     bx,SEG end_addr ; 祭  . ᥣ
                sub     bx,ax           ; ࠧ - ࠧ ணࠬ
                mov     ah,04Ah         ; 䨪 ।- 
                int     21h             ; 맮 MS-DOS
                jnc     short resize_ok ;  ७ => 
                mov     ax,04C00h       ; ७ => ᡮ--. .
                int     21h
         resize_ok:
                ret
         resize ENDP
         ;
         ; ⠢   ணࠬ   ⮩ ணࠬ END_ADDR
         ;  ᫥  ⮬  ।  ।  END.  
         ; ᤥ  ⮣,  ⮡ । END_ADDR 易  
         ; ᫥ ᥣ, ᫨ ᯮ   室
         ; 䠩.
         ;
          end_addr  SEGMENT
          end_addr  ENDS
                  END
         -----------------------------------------------------------------

              ணࠬ ⨯ .COM ॡ  嫮.  ⫨稥 
         ணࠬ ⨯ .EXE,    । ࠧ, ⠭-
           騪  LINK,  ணࠬ  ⨯ .COM  
         ᢮ ࠧ.  饭 ⥪  ணࠬ ⨯ .COM, ஥ -
         ⠭ MS-DOS,      ᥣ (FFFEh)
          256 ⮢   ணࠬ  (  ࠧ,  ॡ㥬
         MSDOS  ⥪).  짮⥫  롨 ࢮ,  ਭ,
          MS-DOS ᯥ稫   ࠧ ⥪ (⠭ ࠧ-
          64  (1000h) ࠣ䮢)  ,   ⠫;  -
         ஥, 뫠 ⥪   ࠧ, ᭮뢠  ⮬. ன
         롮 ᢮   ,  ⠪ ࠧ,  
         ।⥫  ४㥬  ଠ ""    "".
         ⨭ 2-13 ᮤন ਬ ணࠬ .COM,  ⠭-
          ᢮ ᮡ⢥ ⥪   ࠧ ᢮ 砫쭮 -
          ।   㬥७ ࠧ.

          ⨭ 2-13. 㭪 4Ah - "஢  ।
                  " -  ࠧ ணࠬ ⨯ .COM
         -----------------------------------------------------------------

         code_seg  SEGMENT
                   ASSUME  cs:code_seg
                   ORG     0000h
         seg_org   EQU     $
                   ORG     0100h
         main      PROC    FAR
         start:
                   mov     sp,offset stack
                   call    resize
         ;
         ;   믮 ⠢  ணࠬ
         ;
         main      ENDP
         resize    PROC    NEAR
                   mov     bx,(offset last_byte - seg_org + 15) shr 4

                                      - 2-42 -
                   mov     ah,04Ah        ; 䨪 - 
                   int     21h            ; 맮 MS-DOS
                   jnc     short resize_ok ;  ७ => 
                   mov     ax,04C00h      ; ७ => ᡮ--..
                   int     21h
         resize_ok:
                   ret
         resize    ENDP
                   db      32 DUP ('stack   ')
         stack:
         last_byte EQU     $
         code_seg  ENDS
                   END     start
         -----------------------------------------------------------------

             ᭮   ⮩ ணࠬ  ᯮᮡ ।
         ࠧ १饩 ணࠬ.   ८ࠧ  ⢠
         ⮢ ணࠬ  ⢮ ࠣ䮢  - ।⢮
           16,  ᯮ  SHR  ஠ᥬ  MASM.
            ⠪ 祢 ⠪  ,  祬 seg_org -
         ⠥  ᬥ饭 last_byte.   SHR  믮, 
         ਬ   ᬥ饭,    ࠡ뢠 ᮮ饭  訡
         "Constant was expected" ( ⠭).  ,  ࠧ
           ᬥ饭ﬨ ⠥ ﭭ,  ࠦ -
           ஠ᥬ MASM.  ⨬,    seg_org  
          㫥 ᬥ饭 ⠪,  ⮡ ࠧ  ⭮⥫쭮 砫
         ᥣ. ᫨  ᯮ짮 ⪠ start,  뫨  
         ᫥ 100 (⭠筮 祭)  ணࠬ. (-
         ⨬,   last_byte:   ᫥ ࠡ⠥ ⠪ ,  
         last_byte equ $).
             ஬ ⮣,   ᯥ譮  ᯮ짮 ᢮ 
         ਥ  ⠭  ᬥ饭 ( ⪨,   ⢠) 
         祭 ⠭,    ᯥ譮 ᯮ짮   -
           権,    ࠧ ॡ  ࠦ,  ᯮ
         ⠭.  ᬮ७ ⮣ ਬ    ࠢ
            ࠭ ࠣ 㤥 ਢ   6.

                   ।   몮 ᮪ ஢

             設⢮ 몮  ᮪  ஢  ࠡ뢠  ஡,
         易  ।   ࠧ   .
         짮⥫  㦭  ணࠬ  ࠧ 
         砫쭮 ।   ᯮ짮 㭪権  ࠢ-
           몠 ᮪ ஢. ਬ,  ⥪ 몠
         ணࠬ஢  㭪樨 malloc  calloc  ࠡ  ᨬ
          砫쭮 । .




                   ࠢ  ⢨ 

             孨᪨ ਥ, ᯮ㥬  ୮  室 -
         ஢,    㣮 ᯥ 쭮  ணࠬ஢-
         :     ணࠬ  砩  .  -
         襭  業        ந室  ⮣, 
           ணࠬ 訡筮  , ⭮騥  -

                                      - 2-43 -
           ணࠬ. ⥬ ᫥  ᭮ ࠢ
          ⠪ ᮡ   ⥫쭮 㬥襭.  -
           ࠢ ⮨  ⮬,   쭮   ண-
         ࠬ ⠪    쭮 ணࠬ , ࠢ-
          冷 ,    ணࠬ   . 
         ⨥ 祭  뢠 " ⢨ ".  -
         ⨬  ⮬,    㦥 稫,  ᬮਬ    -
             ஡.

                 쭠   ࠢ  쭮 

              祫   ⭮  ६      
         ⮫쪮  ࠭祭 ⢮ ⨩.   ணࠬ⮢ 
         ࠧ㬥 ,    ⮬ ⢠ 㫨㥬  -
          ⮢   ⢮ ᤥ 訡.   -
         짮 쭮   ணࠬ ணࠬ 㬥-
           ⢮  ⮢ ,  ஥   .
             ﬨ ,  ᮤঠ騬 ⭨ ६,
         ணࠬ  ⥯    ﬨ ,  ᮤঠ-
         騬 讥 ⢮ .    ⢮  讥
         ⢮ "㧪" ⥩ ,      
         ஢७ ணࠬ,  ᯮ饩 , ⮬   
         ᭠ ⮫쪮 ⮣,    㢥७,  㣨 ண-
         ࠬ  易  .    ।⠢ ᯮᮡ  -
         ୮-室 ணࠬ 㦨  । ६ -
           .
               , ⠪   騥 ,
           ࠧ  㫨.  ⮬ 砥   -
             ᮧ ஥ ⢮ 㧪 ⥩
         . ᫥ ⮣ ணࠬ    ⮫쪮  ⠪
         ⪠  ,  ॡ  ࠡ⪨. 
         뢠   ணࠬ⮢ ॡ   ⥫묨
          ஦묨  ४⨢ ASSUME  ᮤন ॣ஢ ᥣ-
         ,   ⠪  ࠡ⪠    ⮬   -
         ,  祬    ⥬  ᪨ .  ਬ,
           , ᮤঠ ப ⥪  ᨬ -
         ⠭,   㦤   ணࠬ ᫥ ᥫ,  ⠪
          ⠡ 祭 ᨭ  ᨭ  㦭 ணࠬ -
          ଠ樨  ନ.
              ⥪  । ⮫쪮 ࠬ஢,  ᪮쪮 -
         室    㬥襭 ⢠ ७ 饭  .
         直 ࠧ,  ᪮쪮 ணࠬ     -
            楫 । ࠬ஢, ⭮ 訡 㢥-
         稢.
             騥  筮   ।   ४-
          DEFINE DATA (। ) ⠪,  ⮡ ᮤন 
         ⠢      뫮 ꥪ⮬ 砩 㤠
          訡筮 ᢮ ணࠬ   㭪樨  "᢮-
          । ".

                          ᯮ짮 ॣ஢ ᥣ

              ᥣ   ணࠬ ࠭稢 -
          뫮  . ⥬   ᥣ, ᮤঠ饣
         ,  ⥪  設  ⮬᪨ 㦤 ணࠬ 
         "" 㯠  64 .  ᫨  ਨ稢  -
               ,  ᫥ ⮣,  ॣ ᥣ-

                                      - 2-44 -
            㪠   訩  㥬    ,
                饭  ᠭ-
         樮஢ 㯠.


                        ࠢ ࠧ஬ 㯭 

             ணࠬ  쭥襬  ࠢ ࠧ஬  
         ⥬ ⠭ bounds-checking (஢ઠ ࠭)    ᨢ,  
         ஬ ⢫ .     ⨯ 訡
           ந室 ⮣,    ᨢ 믮 -
         १  ࠭.  ,  ந室  ࠭ ᨢ, -
         . ஢ઠ ࠭ ᨢ   믮   -
         ⮣  ,     ⨭ 2-14.   ணࠬ⮢,
         ࠡ  ஬ 80x86,  믮 ⮩ ஢ન -
         ᬮ७  BOUND (࠭).   ᯥ祭 ᮢ-
           樥 BOUND  ᠭ  bound,   
         ⨭ 2-14.

                    ⨭ 2-14.  ஢ન ࠭ ᨢ
         -----------------------------------------------------------------

         ; ࠢ ࠭ ᨢ, ᮤঠ  饬 ॣ REG,
         ;   ᫥⥫묨 祭ﬨ, ࠧ饭묨  
         ;   MEM32.   ࠢ 楫  .
         bound   MACRO   reg,mem32
                 LOCAL   out_bound,in_bound
                 pushf                          ; ࠭ 䫠
                 cmp     reg,word ptr mem32     ; ஢ઠ  ।
                 jl      out_bound              ; ॢ襭 
                 cmp     reg,word ptr mem32 + 2 ; ஢ઠ . ।
                 jle     in_bound               ;  訩
         out_bound:
                 popf                           ; ⪠ ⥪
                 INT     5                      ; ਭ ⢨
         in_bound:
                 popf                           ; ⠭ 䫠
                 ENDM
         -----------------------------------------------------------------

              bound ࠢ ᮤন 饣 ॣ,  ᮤঠ-
         饣  ᨢ,    ᫥⥫묨 祩  .
         ࢠ  祩    ᮤন  । ,   
         祩 - 孨 । .   BOUND 믮 -
         뢠 5- ⨯ (int5), ᫨ ஢塞  室  -
          ࠭.  짮⥫ ⮩ ᨨ   -
           bound  믮  ᢮ ⢨.

                              楫⭮ 

             㣮 , ਨ稢  ࠧ襭,  ⥪. 
         裡    ⥬,   ⥪ ᬥ訢   ,  訡  ⥪
         ६  १⮬ 訡  ணࠬ  ⪥ -
          ᯮ짮   뫪  .
                  ࠧ襭 ⥪ 뢠 ஡
         訡筮   ࠢ.    砩 - - ᮮ⢥⢨
         権 PUSH  POP,   ன -  ⪥  

                                      - 2-45 -
           樨 POP,  뫨 饭   ஭
         権 CALL  RET.  ஡   ⮫쪮 ⥬
         㤠 ᮡ  "ᯠਢ" 権 PUSH  POP, -
         㥬  ணࠬ,   ᯥ祭 ࠭⨨  ⮬,   ⠪
           믮 뫪  ࠭ ணࠬ.
              砥 । ࠬ஢  ,   ண-
         ࠬ 믮  ⥪?  筮, ࠢ  ⠪ 
         ⮨   ⮬,   ணࠬ,  ।  ⥪   -
         樨 PUSH,  砥   ⥪  樨  POP.  ᫨
         ᫥  ⮬  ࠢ,   ⥬ ⥭ ⨭ ,   
          ணࠬ ணࠬ  ஢,   ⥪ ஢.
         ,  ⪮ ᫥ ⮬ ࠢ ।頥 ᯮ짮-
           ⪨ ⥪ 権 ய  8086  RET  N.
         ᫨  䥩   ணࠬ  ⫠  -
         ,  ਥ  ⮨  ᯮ짮 樨 RET N.
             直 ࠧ,  ணࠬ   ஢  -
          ६ ⢠ ࠬ஢,    ᫥  ᯮ짮
           RET N.   ࠧ  ࠭祭 쭮
          ⪨ ⥪ ⮫쪮    ⠭  ⢠
         ६,   ,  뢠   樨  -
         ,   㤭⥫묨     㤭묨  
         ⫠. ᫨ ணࠬ  ਭ ६ ⢮
         ࠬ஢,     ࠬ  ⥪   뢠
         ணࠬ.  ஬  ⮣,  뢠  ணࠬ  ᭮
         㪠뢠 뢠 ணࠬ ⢮  ।    
         ࠬ஢.
              樨, 믮塞  ⥪,  ᪫祭 権
         PUSH   POP,   ந室  䫠 㪠⥫ ⥪  
         㯠  ⥪ ᯮ짮 ॣ BP.   ,   㪠-
         ⥫ ⥪   ⠭  祭  㫨㥬
         .  ᫨ 㫨㥬     묨,  
           뢠.   ⮩  稭  ।⢥
         㫨஢ 㪠⥫ ⥪   ,      ந
         ४祭  ⥪,   ⨥  ⥪.  ᫨ ந
         뢠   ६,   㪠⥫ ⥪  㪠뢠 ⨭-
           設  ⥪,     ⥪   .  
         ᪠    ।०  㬥 ᯮ짮-
          樨 ⥪.

                                     祭

              ⮩  뫮 ᬮ७ ⢮ ⥬:  ⥮᪮
         த  ୮  ணࠬ஢    ஡ 
         ஠ᥬ MASM, MS-DOS  㭪樮஢ ᥬ⢠ ய-
         ஢ 8086. 뫠 ।ਭ ⪠   -
         ୠ⨢ 室  ୮ ணࠬ஢  㦤 -
         ⥫  .   ⭮,      設⢮
          孨᪨ ਥ     ணࠬ 
         몥  ᥬ,    㤥   ,     
          ਬ    ஥.  ,  ᫨ ᯮ
         ⮫쪮  ,    ࠢ: ᭠砫  㬠,  -
          ⮫쪮 ᫥ 뢠.
             設⢮  ࠪ᪨ 㪠  MASM  MS-DOS 
         "ᯫ  孮"  㦤 㣨 ᮢ  ᫥-
             㪮⢠.  ⠩ 뢥 ਬ,
         ਢ  ⮩ ,     㤮⢨     -
         짮.   ਢ     . -

                                      - 2-46 -
             ⤥    ᢥ    ࠢ  
         MS-DOS,   ਢ  ⮩ , 㦨 㭤⮬  -
          3 "ࠢ ணࠬ  ".
