                                                                               
  롨ࠩ
        =================================================================

                             ᪨ ⨢ "*.*"
                             㪮⢮ ૮ ..



                           -  ⥬
                       ணࠬ஢   2.0

                              

                          #3/5 ( 9-11, ਫ)


                                .᪢, 1990 .

        =================================================================

                                                                     
        TASM2 #3-5/                = 1 =

         9. ⮥ ணࠬ஢  ࡮ ᥬ..........6
          䨪 ८। ᥣ⮢............................6
          ୠ⨢ ଠ.........................................10
           䨪 ८। ᥣ⮢  ࠡ.........10
            ᪮쪨 ᥣ⠬................................12
           ⪨..............................................13
          ⮬᪮ 祭 ࠧ 室...................18
          뫪 ।    ................................23
          ᯮ짮  ७  ப................28
           ७.............................................28
           ७  ࠬ-६......................31
          ப.................................................32
           ப.......................................39
          ப  ᫮.......................................40
          襭 ७   ४⨢ EXITM.........42
          । ⮪   ப......................43
            ....................................45
          ४⨢ STRUC..............................................46
          o⪨  २⢠ ᯮ짮 ४⨢ STRUC......51
             ..............................52
           ..........................................53
          樠 .......................................54
          ४⨢ RECORD.............................................56
            .............................................58
           WITH................................................61
           MASK................................................62
           祣 ᯮ ?................................64
          ४⨢ UNION..............................................67
          ४⨢ । ᥣ⮢..............................71
          ४⨢ SEGMENT............................................72
           ""  "ࠢ"..................................72
           "஢"........................................73
          祭  "ᯮ짮"  ""...................75
          , ⨯,   ஢  ᥣ..............75
          冷 ᥣ⮢............................................78
          ४⨢ GROUP..............................................80
          ४⨢ ASSUME.............................................83
          饭 ४⨢ । ᥣ⮢...................87
          ਬ ணࠬ, 饩  ᪮쪨 ᥣ⮢..........93
         10.  80386  㣨 ..................98
          롮  ணࠬ  ᥬ ⨯ ..............98
           80186  80188.....................................99
          襭 ᥬ஢   80186.............101
           樨............................................101
          樨 PUSHA  POPA.....................................101
          樨 ENTER  LEAVE....................................103

        TASM2 #3-5/                = 2 =

           BOUND............................................105
          樨 INS  OUTS.......................................107
          ७ ᨨ 権  8086...............109
          ᥭ  ⥪ ஬ 祭.....................109
            横᪨ ᤢ c ।⢥묨 祭ﬨ..110
            ।⢥ 祭......................110
           80286.............................................113
          ᥬ஢  ᯮ짮 権 
           80286......................................................115
           80386.............................................116
          롮 ० ᥬ஢   80386...........116
           ⨯ ᥣ⮢........................................118
          饭 ᥣ ४⨢  ⨯ ᥣ⮢  80386..123
          48-⮢ ⨯  FWORD.................................123
           ॣ..............................................127
          32-ࠧ來 騥 ॣ.................................130
          32-ࠧ來 ॣ 䫠.................................132
          32-ࠧ來 㪠⥫ 権...........................132
           ᥣ ॣ...................................134
           ० 樨......................................135
           樨............................................142
          ஢ઠ ................................................142
          ᬮ ⮢..............................................144
          ६饭   ७    ..........146
          ८ࠧ  ⨯ DWORD  QWORD..................148
           ᪮쪨 ᫮.......................................149
          ᫮ ⠭ ......................................151
          㧪 ॣ஢ SS, FS  GS..............................153
          ७ 樨......................................155
          樠 ᨨ 樨 MOV...........................155
          32-ࠧ來 ᨨ 権  8086..............157
           ᨨ 権 LOOP  JCXZ.........................157
           ᨨ ப 権...........................160
           IRETD............................................162
          樨 PUSHFD  POPFD...................................162
          樨 PUSHAD  POPAD...................................162
           ᨨ 樨 IMUL................................163
          । 16-ࠧ來  32-ࠧ來 権 
           ᥣ⮢..................................................164
          ਬ 㭪樨   80386.........................167
           80287...........................................173
           80387...........................................173
         11. 襭 ० ࡮ ᥬ...................175
           ⠪ 襭 ०?.................................175
           祣 ᯮ 襭 ०?.....................176

        TASM2 #3-5/                = 3 =

          ४祭  襭 ०  室  .............177
          ⫨ 襭 ०  ० MASM....................179
          ᥬ 襭 ०..................................179
          ᥬ-䨪......................................179
          㡫஢  ⮢.................................180
          ᥬ, ।⠢騥 ᮡ ᫠  饩 窮......182
          ⮢  ᫮ ᢠ (४⨢ EQU  =).......182
          ࠦ  ࠭........................................183
            ᪮ []...............................183
          ਬ ࠭...........................................184
          樨....................................................186
          窨   .................................186
          ⥫  ......................................188
           SYMTYPE............................................189
          樨 HIGH  LOW.........................................189
          易⥫쭠  PTR.................................190
           SIZE...............................................190
          ४⨢...................................................192
          ࠢ ⨭........................................192
          ४⨢, 稭騥  窨.............................193
           冷  ४⨢  䨪...........194
          祭  窨 ப, 騥 㬥⠬
           ४⨢...................................................196
            㯯...........................................196
              ᥣ, ਭ饬 㯯............196
          ।     쭨 ⮪..................199
          譨, 饤㯭   䨪..........200
          㣨 ⫨..............................................202
           ४஢....................................202
          ࠭ 樨 BOUND....................................202
          ਨ  ப.................................203
           䨪....................................204
          ࠢ ணࠬ஢  ० MASM   襭
           ०.....................................................204
          ਬ ணࠬ  ० MASM..............................204
          ਬ ணࠬ  襭 ०........................206
           ० MASM  襭 ०.....................208
          ..................................................211
        ਫ A. 䥩 ࡮ ᥬ  ࡮ ᨪ......212
          । ࠬ஢.........................................213
          ६, 室騥  ⥪饣 ᥣ ........216
            CALL..........................................216
          祭  ⥪.........................................217
           ணࠬ  ᥬ  ࡮ ᨪ..........219
          맮 ஥ 楤 ᥬ.......................219
          饭 ணࠬ ࡮ ᨪ  ..............223

        TASM2 #3-5/                = 4 =

          "" ப............................................224
           CALL ABSOLUTE......................................226
          饭 CALL ABSOLUTE  䨪஢ ᠬ ......228
          饭 CALL ABSOLUTE  㣨 ᠬ .............229
          㣨 ஡, 騥  ᯮ짮 CALL
           ABSOLUTE...................................................231
          CALL INTERRUPT..............................................231
          ਬ ணࠬ............................................234
        ਫ B. 䥩 ࡮ ᥬ  ࡮ ஫.....237
           譨 ।⮢...............................237
          襭  맮  ࠬ............................237
          襭  ........................................239
          ࠡ⪠ ।⮢  ᥬ.........................240
           । double.................................243
           ।⮢  ᪮쪨 ⮪ -뢮...247
          맮 ।⮢ ࡮ ஫  㭪権 ᥬ........249
          ᪨  㭪...........................................252
        ਫ C. ⢥  騥 .........................256

        TASM2 #3-5/                = 5 =

        =================================================================

                             ᪨ ⨢ "*.*"
                             㪮⢮ ૮ ..



                           -  ⥬
                       ணࠬ஢   2.0

                              

                           #3/5 ( 9-11, ਫ)




                                .᪢, 1990 .

        =================================================================

        TASM2 #3-5/                = 6 =

                 9. ⮥ ணࠬ஢  ࡮ ᥬ         
        -----------------------------------------------------------------

              । 쬨   㪮⢠  ᪠
          魮  ணࠬ஢    ᥬ.   ⮢ 
        ⮬, ⮡   묨 ࠧ묨 ।⢠  ࡮
        ᥬ.

                 ᫥㥬 ᪮쪮 ᯥ⮢  ணࠬ-
           ᥬ,   ࠭ ⮫쪮 ᫥ ஭㫨. 
         ⭮ 䨪 ८।  ᥣ⮢,  ப,
        ४⨢ । ᥣ⮢  ࠧࠡ⪠ ணࠬ, ᮤঠ
        ᪮쪮 ᥣ⮢   .  ᬮਬ ⠪  
          ।⢠,    묨  ࠭  砫, 
         ⪨, ⮬᪮  祭  ࠧ஢  室,
        ०騥 뫪  ४⨢ ।  .

                  ᭮ ணࠬ஢    -
        ᥬ    ᬮਬ       ⥬ ࠧ⮣
        ("த⮣") ணࠬ஢,  , 筮,  墠⨫ ⨬
         ᯥ ணࠬ஢  몥 ᥬ.    
          । ᪮쪮   ணࠬ஢  ᥬ-
          ,   ⠭     த ᠬ-
        ⥫쭮 祭 ᥬ.

              ᯥ!

                          䨪 ८। ᥣ⮢                   
        -----------------------------------------------------------------

              ᥣ ࠭   । 祩   ᥣ-
        ,    㪠뢠 ॣ DX. ਬ, ᫥⥫-
         権:

                 .
                 .
                 .
                 mov   bx,10h
                 mov   si,5
                 mov   ax,[bx+si+1]
                 .
                 .
                 .

        㦠  ॣ AX ᫮, ᠭ  ᬥ饭 16  ᥣ-

        TASM2 #3-5/                = 7 =

        ,    㪠뢠 ॣ DS.  㣮 ᯮᮡ ᤥ  
        ⮨  ⮬, ⮡ 㪠,  AX 㦠  祩 
          DS:0016.

               ᪫祭  ࠢ 㧪  ᥣ,  -
         㪠뢠 ॣ DS, ⮨  ⮬,  ப 樨
        STOS  MOVS 믮   ᥣ,    㪠뢠 -
         ES,  ப 樨 SCAS  CMPS ᯮ  -
         筨 ࠭,    㪠뢠 ॣ ES.  ( 
        ࠭-筨 樨 CMPS 室  ᥣ ,
         㣮 -  ⥫쭮 ᥣ.)

             㣮 ᪫祭 砥  ⮬,   ࠭  -
        , ᯮ騩 ॣ BP,  頥  ᥣ,  
        㪠뢠 ॣ SS. ਬ, 樨:

                 .
                 .
                 .
                 mov   bp,100h
                 mov   al,[bp+6]
                 .
                 .
                 .

        㦠 ॣ AL ᮤন 祩  SS:1006.

             ।, ,    ,   ࠭-
          ,   祩  ᥣ, ।塞 ॣ஬ CS (
         ᯮ짮  ⠡ 室,  ᮡ  ணࠬ,
          ᪮쪨 ᥣ⮢).   ।,   ⥫
              祩 ⥪   ॣ BX,   
        祩 ᥣ, ।塞 ॣ஬ DS,   BP,  
        祩 ᥣ,   ॣ஬ ES,   ப
        樨.    ᤥ?

             ⢥  ⥫쭮.   㯠   -
          㦭  ᥣ⠬   ᯮ짮 䨪 -
        । ᥣ⮢. ਬ, 樨:

                 .
                 .
                 .
                 mov   bx,100h
                 mov   cl,ss:[bx+10h]
                 .

        TASM2 #3-5/                = 8 =

                 .
                 .

        㦠 ॣ CL ᮤন  ᬥ饭 110h  ᥣ  -
        ,  樨:

                 .
                 .
                 .
                 mov   bp,200h
                 mov   si,cs:[bp+1]
                 .
                 .
                 .

        㦠 ॣ SI ᮤন  ᬥ饭 201h  ᥣ .

              ᭮ ,  ॡ, ⮡   -
        頫   ᥣ, ⫨筮  ᯮ㥬  㬮砭  ᥣ-
        , -    㪠  । ࠭   ⮩ 樨
        䨪 ८। ᥣ: CS:, DS:, ES:  SS:.

              稬, 䨪 ८।  ᥣ⮢    ᠬ
            "䨪ᠬ", ⠪   ।  ப
        樨 ࠭  . 䨪 ८। ᥣ 
        ⢨⥫쭮  ।⠢  ᮡ 䨪  樨,
          ࠡ 樨 (  䨪 REP,   -
        ஬    ᪠뢠   6). ⮬, ਬ,  -
         8086 砥 :

             A0 00 00

         ࠧ :

             mov al,[0]

         㦠  ॣ AL ᮤন, ᯮ  ᬥ饭 0
         ᥣ . , ᪮ 祭 䨪 ८-
         ᥣ ES:  26h,   8086 砥
        ᫥⥫쭮:

             26 A0 00 00

         ࠧ :

             mov al,es:[0]

        TASM2 #3-5/                = 9 =


         㦠  ॣ AL ᮤন  ᬥ饭 0  ⥫-
         ᥣ (extra segment),    ᥣ .




        TASM2 #3-5/               = 10 =

                                 ୠ⨢ ଠ                          
        -----------------------------------------------------------------

             ࡮ ᥬ ন ୠ⨢    䨪
        ८।  ᥣ,    䨪 ࠧ頥  -
        쭮 ப.  ଠ   SEGCS  䨪  ८-
          ᥣ  CS:, SEGDS -  䨪 ८। ᥣ-
         DS:, SEGES -  䨪 ८।  ᥣ  ES:  
        SEGSS  -  䨪 ८। ᥣ SS:.   
         ⮫쪮  ᫥ ப ,      ᫥-
        騥  ப. ਬ, ᫥騥 樨 뢠 ᮤন
        ॣ DX  ᬥ饭 999h  ⥫쭮 ᥣ:

                 .
                 .
                 .
                 mov   si,999h
                 seges
                 mov   [si],dx
                 .
                 .
                 .

              ୠ⨢   ᯮ짮    㪠
        䨪ᮢ  ८।  ᥣ⮢    ,  
        ࠭ (ਬ, LODSB). ਬ,  ॣ AL 㦠-
          SS:SI:

                 .
                 .
                 .
                 segss
                 lodsb
                 .
                 .
                 .

                  䨪 ८। ᥣ⮢  ࠡ          
        -----------------------------------------------------------------

             䨪 ८। ᥣ⮢ ࠡ    -
        . ਬ,   ᯮ짮  ப 
         饭  ⥫쭮 ᥣ,   :

                lods es:[ByteVar]

        TASM2 #3-5/               = 11 =


        ⨬,  :

                stos ds:[ByteVar]

        ࠡ  㤥. ᫨  ⠥ ८। 㪠 -
        ࠧ  饭  ப 樨  ⥫쭮 ᥣ-
        ,  ࡮ ᥬ ᮮ ,   ⨬.  ,
        ᫨      ८। ᥣ ᯮ 䨪 SEGCS
         ,  ࡮ ᥬ  ,   
         ८।,   ⮬ 砥 訡  . -
        ਬ, 樨:

                 .
                 .
                 .
                 segds
                 stosb
                 .
                 .
                 .

         ਢ  樨 訡,   STOSB 㤥  믮-
           ⥫ ᥣ,    ᥣ .

             室 ⠪   ,  䨪  ८।
        ᥣ⮢       ⥪. ᥭ  ⥪  -
        祭  ⥪ ᥣ 믮  ᥣ  ⥪.  ਬ,
        :

                 .
                 .
                 .
                 segcs
                 push   [bx]
                 .
                 .
                 .

        ᯮ 䨪 ८। ᥣ  롮 ⮣  ᥣ-
        ,    ண 㦭  ᨬ  ⥪ 祭. 
        祭 뢠  ᬥ饭  SP-2    ᥣ  ⥪,  
        筮.

              饬 砥 ᫥  ᬥ訢 䨪 ८-
          ᥣ⮢    䨪ᠬ REP, ᪮  

        TASM2 #3-5/               = 12 =

        ஡  砥 뢠 ७ ⠪ 樨 (஡-
          ⮬ ᪠   6).

                               ᪮쪨 ᥣ⠬                     
        -----------------------------------------------------------------

             䨪  ८।  ᥣ⮢    ᯮ짮,
        ᫨     ᪮쪨 ᥣ⠬.  室-
          , ᫨  室 믮  
          ⥪,   ᥣ  ( 筮 ந室, ᫨ ⥪ -
          ᪨ ।塞 ६,    ᥣ
          -    ᪨  ६).   砩 - 
        ணࠬ ᮤন  64 , - 祣 ⠪   -
        ॡ   ᪮쪨 ᥣ⠬.

               ᮡ  ਬ 䨪ᮢ ८।-
         ᥣ⮢ -  ᬥ蠭 ᯮ짮 ப  ப-
         権. ਬ, ।,      ᨬ  
        ப    祭ﬨ,  訬  20h,   ८ࠧ 
        ஡.  ᫥饬   楫 襭 䥪⨢ ᯮ-
         䨪 ८। ᥣ⮢:

                 .
                 .
                 .
                 mov   ax,SEG StringToConvert
                 mov   es,ax
                 mov   di,OFFSET StringToConvert ; ES:DI 㪠뢠 
                                                 ; ८ࠧ㥬 ப
                 cld                             ; ᤥ ⠪, ⮡
                                                 ;  STOSB
                                                 ; 㢥稢 DI
        ConvertLoop:
                 mov   al,es:[di]                ;  ᫥騩
                                                 ; ᨬ
                 and   al,al                     ;   ப?
                 jz    ConvertLoopDone           ; , 믮
                 cmp   al,20h                    ; 㦭  
                                                 ; ८ࠧ ?
                 jnb   SaveChar                  ; , ࠭ 
                 mov   al,' '                    ; ८ࠧ 
                                                 ; ஡
        SaveChar:
                 stosb                           ; ࠭  ᨬ
                                                 ;   뫪 

        TASM2 #3-5/               = 13 =

                                                 ; ᫥騩
                 jmp   ConvertLoop               ; ஢ ᫥騩
                                                 ; ᨬ
        ConvertLoopDone:
                 stosb                           ;  ப - 0
                 .
                 .
                 .

                                     ⪨                            
        -----------------------------------------------------------------

              ⪨ (⪨  ࠭祭   ⢨)  -
            ⥫  ࡮ ᥬ.  -
        ਬ,    ᯮ짮.

             ।,  室 㫥     ᪮쪮  ⥩
        ,  믮  㭪樨. ᬮਬ ᫥騩
        ਬ:

                 .
                 .
                 .
        Sub1     PROC
                 sub   ax,ax
        IntCountLoop:
                 add   ax,[bx]
                 inc   bx
                 inc   bx
                 loop  IntCountLoop
                 ret
        Sub1     ENDP
                 .
                 .
                 .
        Sub2     PROC
                 sub   ax,ax
                 mov   dx,ax
        LongCountLoop:
                 add   ax,[bx]
                 adc   dx,[bx+2]
                 add   bx,4
                 loop  LongCountLoop
                 ret
        Sub2     ENDP

        TASM2 #3-5/               = 14 =

                 .
                 .
                 .

                 믮   㭪樨,    
        ⮣  ᫥,   ᮤঠ  ⪨. ਬ,
        Sub1  Sub2 ᮤঠ ⪨, ⬥騥 砫 横.

               ணࠬ  ⮫쪮 ᪮쪮 ⮪,    
          ᯥ,  ⮡    ⪨  뫨 ࠧ묨.  
         ணࠬ   ⮪ ⠭ 㤭-
        ⥫쭮.    ⮬ 筮  ࠡ ணࠬ, 
          २뢠 ,    ணࠬ. -
          ⠪ 楤       ,
         ਢ  ⮬,   ணࠬ 㤥 믮 -
        室    ன ணࠬ. ਬ, ᫨  ᪮ 
         Sub1, ⮡  Sub2,  砩  
        ᫥饥:

                 .
                 .
                 .
        Sub2     PROC
                 sub   ax,ax
        LongCountLoop:
                 add   ax,[bx]
                 adc   dx,[bx+2]
                 add   bx,4
                 loop  IntCountLoop
                 ret
        Sub2     ENDP
                 .
                 .
                 .

         맮 室  । ணࠬ Sub1   祭
        묨 ᫥⢨ﬨ.

               室  ⠪ ⨯ ⪨, 
        ࠭祭   ⢨ ⤥쭮 ணࠬ,  -
          䫨 ( ⪠)  㣨 ணࠬ.  -
         ⨯ ⮪ 뢠 묨 ⪠.

               ⠪  ⪨?   ⪨,    
        㬮砭 筮 稭   ᨬ @@, ࠭祭  -
         ⢨ ﬨ, 祭묨   -

        TASM2 #3-5/               = 15 =

         ⪠. ( ⪨ -   ⪨,  ।
          ४⨢ PROC  ⪨, 騥 稥, -
           稭   ᨬ @@.)  ᠥ ࡮ ᥬ-
        ,     ⪨      -
        , ࠭祭 訬 묨 ⪠.

             䨪,   ।      ४⨢
        LABEL,   ਢ  砫    䨪-
        ஢.

             ਬ,   ᯮ짮  ⪨    ⮣,
        ⮡  ஢ ਬ, ਢ  砫  ࠧ-
        , ᫥騬 ࠧ:

                 .
                 .
                 .
        Sub1     PROC
                 sub   ax,ax
        @@CountLoop:
                 add   ax,[bx]
                 inc   bx
                 inc   bx
                 loop  @@CountLoop
                 ret
        Sub1     ENDP
                 .
                 .
                 .
        Sub2     PROC
                 sub   ax,ax
                 mov   dx,ax
        @@CountLoop:
                 add   ax,[bx]
                 adc   dx,[bx+2]
                 add   bx,4
                 loop  @@CountLoop
                 ret
        Sub2     ENDP
                 .
                 .
                 .

                㦭   ⮬, ⮡ ⪨ 横 
        ணࠬ    室   䫨  ⪠ 横 㣮 -
        ணࠬ,   ⭮,   ணࠬ 砩  -

        TASM2 #3-5/               = 16 =

        ३   㣮 ணࠬ.

               , । ᯮ짮  ⮪  
        㪠  ४⨢ LOCALS.  ० MASM  ⪨  㬮-
        砭 饭  । ⥬,      ᬮ    ᯮ짮,
           ࠧ襭   ४⨢ LOCALS.   襭
        ०  ⪨  㬮砭 ࠧ襭,    
           ४⨢ NOLOCALS.

              ⪨  ⠪,        
        ணࠬ ᪮쪮 ⪨ 室     -
        , ਤ뢠   㭨 . ਬ,    -
        짮    ⪨,  ஢   ᪮쪨
        祭:

                 .
                 .
                 .
                 LOCALS
                 cmp   al,'A'
                 jnz   @@P1
                 jmp   HandleA
        @@P1:
                 cmp   al,'B'
                 jnz   @@P2
                 jnz   HandleB
        @@P2:
                 cmp   al,'C'
                 jnz   @@P3
                 jmp   HandleC
        @@P3:
                 .
                 .
                 .

              ᯮ짮  ⮪   ਤ 
         ⮬, ᮤঠ  ⪨ ⨯ P1  P2 -   ணࠬ.

             㦭   ⮬,   쭠 ⪠ ࠭稢-
          ⢨ 쭮 ⪨. ਬ, ᫥ ᫥-
        ⥫쭮 権 ᥬ஢  㤥:

                 .
                 .
                 .
        Sub1     PROC NEAR

        TASM2 #3-5/               = 17 =

                 .
                 .
                 .
                 LOCALS
        @@CountLoop:
                 add   ax,[bx]
                 jnz   NotZero
                 inc   dx
        NotZero:
                 inc   bx
                 inc   bx
                 loop  @@CountLoop
                 .
                 .
                 .

             ஡  ⮨  ⮬,   뫪  
          @@CountLoop    樨 LOOP  । @@CountLoop
        室 쭠 ⪠ NotZero.   ⢨  쭮
        ६  ࠭ ⮫쪮  襩 쭮 -
        , ⮬  ࡮ ᥬ ᥬ    LOOP,
        쭠 ⪠ @@CountLoop 㦥  㤥.

              䨪 쭮 䨪 (ᨬ @@)  
            㣨 ᨬ,   ᯮ짮-
          砫  䨪.   ᤥ, 㪠 
        ᨬ 䨪  ⢥ 㬥⮢ ४⨢ LOCAL:

                LOCALS__

               ⢥ 䨪  쭮  䨪  
        ᯮ짮  ᨬ ન.    -
        ,     ᯮ짮   -
        ஢   㫥,  㦥  䨪, 稭騥 
        ᯮ㥬  㬮砭 䨪 䨪.

               ⠪ ࠧ  䨪 쭮  -
        ,    䨪 ⮬᪨ ࠧ 
        ⮩  ப, 筮 ⠪,  ᫨   ᯮ짮 ४⨢
        LOCALS    -  㬥⮢. ᫨    饭
         䨪஢ 㪠 ४⨢  NOLOCALS,    ࡮
        ᥬ  "ᯮ"  ᨬ 䨪,   . 
           ⠭  䨪஢   -
        묨 ࠭ 䨪ᠬ ᯮ짮 ४⨢ LOCALCS  -
        ⮢.


        TASM2 #3-5/               = 18 =

                      ⮬᪮ 祭 ࠧ 室               
        -----------------------------------------------------------------

                ࠧࠡ稪  8086 訫,    
          室   ন ⮫쪮 ⮢
        ᬥ饭 室.  砥,   ᫮ 室 
         । ࠢ ⮫쪮  । 128   ᠬ -
        樨 室.

             , 筮,   樨 室 ⮦ ਬ.
        ᫮ 室  ᯥ宬  ᯮ짮  ணࠬ, ᮧ-
           (⠪   ᫮ 室 
        ࠧ ⮫쪮 2 ).  樨 ᫮ 室 -
         8086  ਭ㦤  䥪⨢ , ᪮-
        ,   ᫮ 室 ⮨ ᫨誮   -
        ⨦      ⮢  ᬥ饭,   室   
        5-⮢ ᫥⥫쭮 権 ⨯:

                 .
                 .
                 .
                 jnz   NotZero
                 jmp   IsZero
        NotZero:
                 .
                 .
                 .

               㦥,  ࠭ 㧭, ⨦    㪠-
          ⪠       ᫮ 室, ⮬ 
        뢠 । 롮஬:   ३    -
        ।⢥ (  맮 訡 ᥬ஢), 
        ᯮ짮  ⠪ 室 ᫮ 室,  
        ⮬ 3   稢 ந  ६ 믮. ஬ ⮣
            ⭮:    横  -
        樨,     訡 Relative jump out of range
        (室  ⨬ ࠭).

              ࡮ ᥬ      ஡, 易-
           ᫮묨 室,  ⥫쭮 ਡ  ⮬,
        ᫨ ᯮ짮 ४⨢ JUMPS. ᫨  㪠  ४⨢,
        ࡮  ᥬ ⮬᪨ ८ࠧ  ᫮ -
        室  ᫮ 室, ᯮ騥 ᫮ 室, -
          㦭, ⮡  楫 ⪨.

              믮  ⮬᪮ ८ࠧ?  ᬮ-

        TASM2 #3-5/               = 19 =

        ਬ ᫥騩 ࠣ ணࠬ:

                 .
                 .
                 .
                 JUMPS
        RepeatLoop:
                 jmp  SkipOverData
                 DB   100h DUP (?)
        SkipOverData:
                 .
                 .
                 .
                 dec   dx
                 jnz   RepeatLoop
                 .
                 .
                 .

             ᭮,  ⪠ RepeatLoop ⨦    樨  JNZ,
        ᪮    256 . , ⠪  뫠 㪠
        ४⨢ JUMPS, 訡 ᥬ஢  .  -
          ࡮  ᥬ  ᥬ    ᫥騩 -
        :

                 .
                 .
                 .
        RepeatLoop:
                 jmp  SkipOverData
                 DB   100h DUP (?)   ; ६     CS
        SkipOverData:
                 .
                 .
                 .
                 dec   dx
                 jz    $+5
                 jmp   RepeatLoop
                 .
                 .
                 .

          樨 JZ ⮬᪨ ᯮ 樨 JZ
         JMP.

              ᫥ 㬠,     ᯮ짮  ४⨢  JUMPS

        TASM2 #3-5/               = 20 =

        ࡮ ᥬ ᥣ   ᫮/᫮ -
        室:  楫      ᫮  -
        室,   ᥣ ᯮ ᫮ 室 (८ࠧ 
        믮). ਬ,  ᫥饬 ਬ 室 㤥  믮-
             樨 JNZ, ⠪  ⪠ 室 -
        筮   ⨦, ᫨ ᯮ짮 1-⮢ ᬥ饭:

                 .
                 .
                 .
                 JUMPS
        RepeatLoop:
                 add   BYTE PTR [bx],1
                 inc   bx
                 dec   dx
                 jnz   RepeatLoop
                 .
                 .
                 .

               㦥 㯮, ⮬᪮ ।  ࡮  -
        ᥬ஬  ࠧ 権 室  蠥  ஡, -
          ᫮묨 室. ࡮ ᥬ ४᭮  ࠡ-
        뢠  ⮬᪮ । ࠧ   室
        (室  ⪨,  ᮤঠ    ,  ।饬
        樨 室).

               ࡮ ᥬ ࠡ⠥ 筮,    室
        ᥬ,  ⮬᪮ 祭 ࠧ 室  -
         । ॡ ࠧ㬭 ஬.       室
        ⠪ ,     室.   ,  -
         室 ।   ⪨ ᥣ   ᥬ-
           ࠧ襭 ⮬᪮ । ࠧ, 㦥,
         ᫨ ,  ᫥       -
         ᫮ 室,    ⥪  祭 ᪮쪮 -
        ⥫ 権 NOP (  ).    ஡
         , ᫨ 㪠   ࠬ /m ࡮ ᥬ-
          室 믮 ᪮쪨  室  (  
        ।⢮ ᪮쪮   ᥬ஢).

             ᫨  㬠,  ⠭ ⭮, 祬  ⮬-
        ᪮ । ࠧ  室    뫪  ।  
        ᥣ  ⨬ .  ࡮ ᥬ -
         樨 ᫮ 室,  ன  뫪 -
        ।,      ।,    室  ⪠
        ( ࡮ ᥬ ⮩ ⪨   㦨).  ᫨ ⮬-

        TASM2 #3-5/               = 21 =

        ᪮ । ࠧ஢ ᫮  室  ࠧ襭,  
        ࡮ ᥬ   ᣥ஢ ᫮ 室 (
        ࠧ஬ 2 ),  ᫨ 楫 ⪠ 室 筮 -
        ,  ᫮ 室 १ ᫮ 室 (2-⮢ -
        ,    ன ᫥  ࠧ஬ 3 )  -
        ⨢ 砥.   ᮦ,   ࡮ ᥬ  㦨
        室  뫪 ।,     , 室  2--
        ⮢    権 ࠧ஬  5 .

                ࡮ ᥬ    ࠧ
        ࠢ쭮.   ⮬    롮     १-
         5     権  ᫮/᫮  -
        室.  ᫥ ⮣,  ࡮ ᥬ ⥬ ⨣ 楫
        ⪨  ,     2-⮢ 樥,  -
        ᥬ  ᫮  室,    ᫥  樨
        NOP (⮡  १  5 ).

             ।, ࡮ ᥬ १ࢨ ᫥騥  -
        樨:

                  .
                  .
                  .
                  JUMPS
                  jz   DestLabel
                  inc  ax
                  .
                  .
                  .

             ᫨  JZ    楫 ⪨ ।-
        ⢥, ࡮ ᥬ ᥬ ᫥騩 :

                  .
                  .
                  .
                  jnz   $+5                ;  
                  jmp   DestLabel          ;  
                  inc   ax
                  .
                  .
                  .

             ᫨,  㣮 ஭,   JZ   楫
        ⪨ ।⢥,   ࡮ ᥬ ᥬ ᫥騥
        樨:

        TASM2 #3-5/               = 22 =


                  .
                  .
                  .
                  jz   DestLabel           ;  
                  nop                      ;   NOP
                                           ;  ࠧ 1 
                  nop
                  nop
                  inc   ax
                  .
                  .
                  .

             ࡮ ᥬ  १ࢨ஢   ⮬-
         । ࠧ ᫮ 室   뫪  ।  5
        ,  ⮬  ᫮  室   ⮬᪨ ।
        ࠧ,    ᢮ ⮪,  ६ -
        ﬨ NOP.    ⥫ 樨 NOP ਢ 
         ᪮ ࠡ (   ॡ    믮  3
        横    8086)  㢥稢 ꥬ ணࠬ.  
        ࠧ,     ᮢ⮢   ,    ࠧ
           ᪮ 믮  饥 祭, ᯮ짮
        ⮬᪮ । ࠧ஢ ᫮ 室  뫪-
         । 筮 ।.

             ᫨   ணࠬ,  ᮤঠ ᮪ந⥫
        ,   ࠧ ⮬᪮ । ࠧ ᫮-
         室  ᪨ ⪮ 襩 ணࠬ  -
           ᪨  ⪮.    ࠧ ⮬-
        ᪮  ।  ࠧ஢  室  묨 뫪 
           室  뫪 ।.      ᤥ-
        ,   ४⨢ JUMPS  ४⨢ NOJUMPS ( -
        頥 ⮬᪮ । ࠧ஢ 室).

             ਬ,  ᫥饬 ࠣ ணࠬ ⮬᪮ -
        । ࠧ஢ 室 ᯮ ⮫쪮   -
        室,    室  뫪 ।:

                   .
                   .
                   .
        LoopTop:
                   .
                   .
                   .

        TASM2 #3-5/               = 23 =

                   lodsb
                   cmp   al,80h
                   NOJUMPS
                   jb    SaveByteValue
                   neg   al
        SaveByteValue:
                   stosb
                   .
                   .
                   .
                   dec   dx
                   JUMPS
                   jnz   LoopTop
                   .
                   .
                   .

               ।⢥  2-⮢  ᫮ 室
          室  뫪   SaveByteValue,    ⭮
        室  LoopTop ࡮ ᥬ ᠬ 롥 訩 .

             ,  砫 ᥬ஢ ᥣ ( 㬮砭) 롨-
        ࠥ  ४⨢ NOJUMPS.  ᫨   ᯮ짮 ⮬-
        ᪮ । ࠧ஢ 室, 㦭  ࠧ  
         ४⨢ JUMPS.

                             뫪 ।                         
        -----------------------------------------------------------------

              ᫥ ࠧ   ਬ ⮣,   ᫮ -
        室  뫪 ।  ਢ  ⮬,   ࠧ-
         ⮬᪮ । ࠧ 室 ࡮ ᥬ
          䥪⨢ .    ⮨  ⮬,
         ஡  ࡮ ᥬ   맢      뫮
        ।  ( ० 뫮),  ⮬ ० 뫮 (
         뫮  ⪨,   室 -   ணࠬ-
        )   ᫥ .

             祬  ⠪?   ࡮ ᥬ ᥬ 室
        ,   믮  室,  த  ࢮ  ப
        室   ᫥.   砥,   ࡮ ᥬ
        ࠭᫨  ப  㫥,  ⥬  ப,  
        ப  ..      筮 祢, 
         ⨬   易  祢 :  ࡮  ᥬ
          ࠭  ப  祣,    ⨣ , -

        TASM2 #3-5/               = 24 =

        ⮬ 뫪 । ⠢ ࡮ ᥬ   ।-
        ,     ४묨. ᫨  ।-
          ᠬ    ४,  ࡮  ᥬ  
        ஢ ,  䥪⨢ ண  ᨬ쭮. 
        ᫨ ࡮ ᥬ ᣥ 䥪⨢ ,  
        室   ।騥 ப  믮 ४-
        ஢.  - ⮣  ᥬ஢ ॡ  -
        .

             ᬮਬ ᫥騩 ਬ:

                .
                .
                .
                jmp   DestLabel
                .
                .
                .
        DestLabel:
                .
                .
                .

              ࡮ ᥬ 砥 ப:

                jmp   DestLabel

           襫  । ⪨ DestLabel.  ⮣ ࡮ -
        ᥬ   ।,     ⪠  쭥  
        , ,  ᫨   (SHORT  NEAR),    
           1-⮢ ᬥ饭,   ⮣ ॡ 
        2-⮢ ᬥ饭.   ⮣,  ⮡ த ᥬ஢,
        ࡮  ᥬ  室     ।      ⪥
        DestLabel.

             ࡮ ᥬ  ।,    ⪠  
        쭥 (FAR),    १ࢨ஢    쭥 樨 JMP 5
        ⮢.   設⢮ 室 ।⠢ ᮡ 3--
           室,   뫮  ⥫  譨 2
               室  뫪 ।.   -
          ஭,  ࡮  ᥬ    ।,    
        DestLabel     ⮢ ᬥ饭    -
        樨 JUMP SHORT.   ஡ ⮨  ⮬,   -
        室   ⪨,  ᫨ ࡮ ᥬ १ࢨ-
         ⮫쪮 2 ,   訡.


        TASM2 #3-5/               = 25 =

              ⢥  ஬᭮ 襭 ࡮ ᥬ ।-
        ,   室  뫪 ।  , ᫨
           ⭮   権 SHORT  FAR PTR. 
        室  뫪 । ᥣ १ࢨ  . ᫨
        ,   室 쭨,    訡.  ⮬ 
        ᥣ  ᯮ짮   ᥬ஢  -
        室 ।  쭨 ⪨  FAR PRT.

              㣮 ஭, ᫨ 室  뫪 । 뢠
        ⪨,  ࡮ ᥬ ࠭᫨ ⪨ 室,    
          ⠢  3 ,   뫨 १ࢨ஢ 
        室,  砥 3 樨 NOP. ਬ, ࡮ ᥬ -
        ᥬ 樨:

                .
                .
                .
                jmp   DestLabel
        DestLabel:
                .
                .
                .

         :

                .
                .
                .
                jmp   SHORT DestLabel
                nop
        DestLabel:
                .
                .
                .

              ⠪ 室 ࠡ⠥ ४᭮   믮 ,
         ,  祬 ॡ. 筮, ⮡ ॢ  -
        室   ।  2-⮢ ,    ᯮ짮-
          SHORT.     ⠪ 㤮,  ᫨  ࡮ -
        ᥬ     ஢  ᮮ⢥騩  室
        ⮬᪨.

              ,    ०  뫪    
        ८ ९⢨. ᫨  ࡮ ᥬ  -
            楫 ⪨,    뫮  ᥬ஢ 
        䥪⨢ 室.    ᯮ짮 ⠪ 뫮 ࡮ -

        TASM2 #3-5/               = 26 =

        ᥬ      ﭨ  楫 ⪨,    
        襫  ,     ⮩ ⪨,    ᥬ-
        ஢  ᫮ 室.  ࡮ ᥬ ࠧ蠥 
        ,  ᤥ 饭 ।,      -
         த ࠡ,   業 祭  -
         ꥬ, 祬  室.

              ࡮ ᥬ ⥭ ⨯  室  (SHORT,  NEAR
          FAR),    㤥 ஢ ᨬ쭮 䥪⨢ .
          ⮣,    ⪨ 室  뫪
        । ᯮ짮  SHORT (,  筮,  FAR PTR
         쭨 室).

             室 -   ⢥ 樨,   ᫥
         ᯮ짮 ० 뫮.  䥪⨢  -
         ⠪ ஢  ᯮ짮 뫮 ।   -
        . ᬮਬ ᫥騩 ਬ:

                .
                .
                .
                .CODE
                .
                .
                .
                mov   bl,Value
                .
                .
                .
        Value   EQU   1
                .
                .
                .

              ࡮ ᥬ ⨣ 樨 MOV,  -
         ।, ।⠢  ᮡ Value ࠢ  
        ६    .  ᫨ Value -  ६  ,  
        ॡ 4-⮢ ,   ᫨ Value -  ࠢ-
          ⪠ (ਬ,   ᯮ,   ⠭),  
        㦭 2-⮢ .

              筮,  ⮡ த ᥬ஢, ࡮ ᥬ-
            ।  訩 砩,  ⮬  樨
        MOV १ࢨ  4  .    ⥬ 㤥 ⨣ ⪠
        Value  ,    ࠢ ⪠,    ६ 
        ,  ࡮ ᥬ 頥  樨 MOV  ନ-

        TASM2 #3-5/               = 27 =

         2-⮢   ࠭-⠭⮩ , ⮡ -
         १ࢨ஢ ⨩  ⢥ ,   
         樨 NOP.  ⨬,   祣 ⮣  稫  ,
        ᫨  Value 뫠 । । 樥 MOV, ⠪  -
         ᥬ  ,  Value -   ६  .

             ᪨,   ᯮ짮    뫮    
        㪠 ஡  ,  ⠪  ࡮  ᥬ  ᥣ
          ⠪ ⪠ ,   㦭.  १   -
        権,  ᯮ  뫪,  ᥬ  
        ᨬ쭮  䥪⨢.   , 
        ⥫쭮 ⠬,   ,  ᯮ짮 ०-
         뫮.

               㬠,    ஡ ० -
         ⮫  쥧   맮,      室?  ⢥
          ⥫.  쭨  맮   뫪 । 
         ८। ⨯ FAR PTR, ⠪  ࡮ ᥬ ।-
        ,    맮  ०騬 뫪  .
        ᪮  ⠪ ,  ⪨ 맮,  䥪-
        ⨢   맮   .

              ०騥  뫪  ਢ  訡 ᥬ஢-
        ,    䥪⨢ . ਬ,  ०騥 뫪 
        ࠢ    ᥬ஢,  ०騥 -
          쭨 ⪨   ᥬ஢  ८।
        ⨯.

              ᫨ ࡮ ᥬ  ஢ 䥪⨢ 
         ० 뫮,  ᥬ஢  믮  ,
        祬   뫮.  ந室 - ⮣,  ࡮ -
        ᥬ       樨    ०饩
        뫪   ࠧ  ᥬ஢,  ᫥ ⮣  -
        祭  ⨯ ⪨ ⠫ .

             뢮 ᥭ:  ᪮쪮  ,  ணࠬ 㦭 -
          뫮 ।,    ࡮ ᥬ ᣥ஢
         䥪⨢   쭮 ६.  ਬ, 
        ࠧ ।   砫 室 ,   ⮣,
           뫠 .      ०
        뫮,  ᥣ ᯮ  । ⨯,  -
         ࡮ ᥬ 筮 ,    ⨯ ⪨  ࠡ-
        ⠥. ᫨    ࠬ /m  ᪮쪮 室,
         㤥 ᣥ஢ ⨬ ,   ᥬ஢
        ॡ 襣 ६, 祬   室.


        TASM2 #3-5/               = 28 =

                                                                               
        ᯮ짮  ७  ப
        ---------------------------------------------------------------

               ࠡ,    ४᭮ 믮 -  
        騥  ⢨.     ⮬   ⪮
        祭  ४⨢ DB   ⫨ ਠ⮢  
        ⮣    室 ,      ⠭  -
         ࠡ. ⮡ ᢮   ⠪ த ⮭ -
        権,  ࡮ ᥬ ।ᬮ७ ப   -
        ७.

                                    ७                            
        -----------------------------------------------------------------

              ७ 稭  ४⨢ REPT   稢
        ४⨢  ENDM.      ७ ᥬ  ᫮
        ࠧ, ஥  ࠭ ४⨢ REPT. ਬ,  -
        ᥬ஢ 権:

                .
                .
                .
                REPT  10
                DW     0
                ENDM
                .
                .
                .

           ,    ᥬ஢ 権:

                .
                .
                .
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                DW     0
                .

        TASM2 #3-5/               = 29 =

                .
                .

                 㤨,  ᪮ ⮦ ᠬ  ᤥ-
          :

                DW    10 DUP (0)

             㥬   ७    ४⨢  =  ᮧ
        ⠡   楫 ᥫ:

                .
                .
                .
          IntVal =  0
                REPT 10
                DW  IntVal
          IntVal =  IntVal+1
                ENDM
                .
                .
                .

              ⮬  ᫥騩 :

                .
                .
                .
                DW     0
                DW     1
                DW     2
                DW     3
                DW     4
                DW     5
                DW     6
                DW     7
                DW     8
                DW     9
                .
                .
                .

             ஡ ᤥ    ४⨢ DUP!  ஬ ⮣,
        ᫨    100  楫 ᥫ,  ॡ
        ⮫쪮  祭 ࠭ ४⨢ REPT  100: , -
        筮, , 祬  100 ப.

        TASM2 #3-5/               = 30 =


               ४ ਬ ४⨢ REPT ⮨  -
        樨  ⠡,  ᯮ   ண 㬭  .
        ਬ,   ६ ᫠  0  99 ( ࠭
         BX)  10 (祭 ),   १ 頥  ॣ AX.

                .DATA
        TableOfMultipleOf10    LABEL   WORD
        BaseVal   =     0
                REPT    100
                DW      BaseVal
        BaseVal   =     BaseVal+10
                ENDM
                .
                .
                .
                .CODE
                .
                .
                .
                shl   bx,1              ; ⮢  ᪠  ⠡
                                        ; ᥩ ࠧ஬  ᫮
                mov   ax,[TableOfMultiplesOf10+bx] ;  १
                                        ; 㬭  10
                .
                .
                .


               ,  ⥪   ७  ᥬ-
         ⮫쪮  ࠧ,  ᪮쪮  㪠  ࠭ ४⨢ REPT.
         ࠧ  10-  믮  ७  ᮧ-
         9 ⥫    ⮬   ᥬ஢-
         10 宦 ⮣ .

              砥,     ७   ࠧ
         ⨬ ,  樨. ਬ,  -
            32-⮢   祭    -
         DX:AX  16:

                .
                .
                .
                REPT  4
                shr   dx,1
                rcr   ax,1

        TASM2 #3-5/               = 31 =

                ENDM
                .
                .
                .

              ७   묨.  ਬ,  -
         10 権 NOP:

                .
                .
                .
                REPT  5
                REPT  2
                nop
                ENDM
                ENDM
                .
                .
                .

                         ७  ࠬ-६                
        -----------------------------------------------------------------

             ࠬ-६  ७     -
         ४⨢ IRP  IRPC.

             ४⨢ IRP  ⠢     ᯨ᪥ ࠬ
         ࢮ ७ ,    -  ஬ -
           ..    ,  ᯨ᮪  㤥 ௠. -
        ਬ, 樨:

                .
                .
                .
                IRP   PARM,<0,1,4,9,16,25>
                DB    PARM
                ENDM
                .
                .
                .

        :

                .
                .

        TASM2 #3-5/               = 32 =

                .
                DB     0
                DB     1
                DB     4
                DB     9
                DB     16
                DB     25
                .
                .
                .

             ४⨢ IRPC  ࠡ⠥ 筮,  ⮫쪮  ⠢
          ७   ᨬ  ப. 騩 
        ⠭ 䫠 , ᫨ ॣ AL ࠢ   ᨬ
         ப, 饩  㬥⮬ IRPC:

                .
                .
                .
                IRPC   TEST_CHAR,azklg
                cmp    al,'&TEST_CHAR&'
                jz     EndCompare
                ENDM
        EndCompare:
                .
                .
                .

             ᠭ (&)  ᫥  ਬ  ᯮ    ⮣,
        ⮡    ᫥  ࠬ  ७  
        祪.  ᠭ -  ம,  ࠡ⠥  
        ७, ᪮  ७ ।⠢ ᮡ  
        ⨯ ப.  ᪠ ਬ ⠪ 㣨 -
        ।⢠,  ⠪,  ४⨢ LOCAL  EXITM.   ⮬  -
        ᪠ .

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

              ࠡ ப 쬠 :   ᢠ 
         ⥪ (ப), ⥬,  ࡮ ᥬ -
               室 ,   ᥬ 易 
        ⨬  ⥪.  ,   ப -
              ⥪  ⮩ ப,  ⮬  ᠭ
        ⠭ ⥪ ப     ᯮ-

        TASM2 #3-5/               = 33 =

         ନ "७".

                 㦨 砥 䠩. -
         ࡮ ᥬ 砥 ४⨢ INCLUDE,  ᥬ
        ⥪, ᮤঠ騩   䠩 ( ᫨   ᮤঠ 
        室 㫥,   ᯮ ४⨢ INCLUDE). ᫨ -
        㦨    ४⨢  INCLUDE  ⥬   䠩,  
        ࡮ ᥬ ᭮ ᥬ  ⥪.

             ப  砥 䠩  ⮬  ,  
        ⥪  ⥫ ப ᥬ  ࠧ,   -
        㦨   ப.    ப  ⫨
        ⥫쭮 襩 ,  祬 砥 䠩,  ⠪  
         । ࠬ    ᮤঠ  -
        .  ࠡ뢠 ⥫쭮 ॥, 祬 砥 䠩,
        ⠪  ⥪ ப    ॡ      ᪠  (
        䠩).  ᬮਬ ᭮ ࠡ ப.

              ᫥饬  ࠣ  ணࠬ ப MULTIPLY_BY_4
        ᯮ  㬭 祭  ॣ AX  4  ࠭-
         १  ॣ DX:AX:

                .
                .
                .
        MULTIPLY_BY_4  MACRO
                sub   dx,dx
                shl   ax,1
                rcl   dx,1
                shl   ax,1
                rcl   dx,1
                ENDM
                .
                .
                .
                mov   ax,[MemVar]
                MULTIPLY_BY_4
                mov   WORD PTR [Result],ax
                mov   WORD PTR [Result+2],dx
                .
                .
                .

              ࡮ ᥬ 砥  ப MULTIPLY_BY
        _4,   ᥬ  ⮩ 窥 4 樨, ⠢騥 ⥫
        ப.    ⮦ ᠬ,  ᫨ 뫠 । -

        TASM2 #3-5/               = 34 =

          MULTIPLY_BY_4,    ᯮ짮 筮
        ⠪,    ᯮ 樨 MOV  MUL. 筮, 
        ந ⮨  5 権  8086,   -
           ࠧ  ⠥,  ᫨ ᯮ짮 -
        ப, 祬  .

              ப      ਬ     ࠢ
        ᯥ宬 ᯮ짮 ணࠬ   MyltiplyBy4:

                .
                .
                .
        MultiplyBy4   PROC
                sub   dx,dx
                shl   ax,1
                rcl   dx,1
                shl   ax,1
                rcl   dx,1
                ret
        MultiplyBy4   ENDP
                .
                .
                .
                mov   ax,[MemVar]
                call  MultiplyBy4
                mov   WORD PTR [Result],ax
                mov   WORD PTR [Result+2],dx
                .
                .
                .

               ,  ணࠬ  ப?    饬
        砥    襣  ꥬ   ,  ᫨ ᯮ짮
        ணࠬ,  ᪮   ᥬ ⮫쪮  ࠧ, 
         ⥫ ணࠬ ᮤঠ 맮.     -
            ப,  ᪮     
        ६  ࠡ 権 CALL  RET. ஬ ⮣    
        ப  ᯮ짮  樨   -
         ᫥ ⫨饣 ,  ணࠬ .

              饬 砥  ᯮ짮 ணࠬ  -
        樨 ꥬ   ப  㢥祭 ᪮   -
        .

              த    ।⠢ ப?   -
         ࠭稢 ⮫쪮 訬 ࠦ,  ⠪  ப-

        TASM2 #3-5/               = 35 =

          ਭ ࠬ  ᮤঠ ४⨢ ᫮-
          ᥬ஢.  ࠬ  ப  㪠뢠,   
        ࠭ ४⨢ MACRO. ਬ, VALUE  LENGTH -  ࠬ-
         ப FILL_ARRAY,   । ᫥騬  -
        :

                .
                .
                .
        FILL_ARRAY   MACRO   VALUE,LENGTH
                REPT LENGTH
                DB   VALUE
                ENDM
                ENDM
                .
                .
                .

              맮  ப   ࠬ  㪠뢠,  
        ࠭ 맮 ப.  ਬ,  ப FILL_ARRAY
         뢠, :

                .
                .
                .
        ByteArray LABEL     BYTE
                FILL_ARRAY  2,9
                .
                .
                .

             ࠬ,  㪠뢠  맮 ப (2   9
         ਢ ਬ),  뢠 䠪᪨ ࠬࠬ. -
        ࠬ,   㪠뢠  । ப (VALUE 
        LENGTH    ਬ) 뢠 ଠ묨 ࠬࠬ. 
         맮 ப ।  ७ ଠ  -
          ⠭  祭 ᮮ⢥ 䠪᪨ -
        ࠬ஢. ⮬:

                .
                .
                .
        ByteArray  LABEL   BYTE
                FILL_ARRAY 2,9
                .
                .

        TASM2 #3-5/               = 36 =

                .

        ਢ  ᫥饬   ᥬ:

                .
                .
                .
        ByteArray  LABEL   BYTE
                REPT 9
                DB   2
                ENDM
                .
                .
                .

              ஢맮 祭 䠪᪨ ࠬ஢ ⠢-
            ଠ ࠬ஢  ம।,  ⮬ 
         ஢ ࠧ ப,    ஢-
        뢥 䠪᪨ ࠬ.  ਬ, ᫨   樠-
        ஢ ᨢ ByteArray ⠪ ࠧ, ⮡    8 -
        ⮢  祭 0FFh,   ByteArray2 - ⮡    100 -
        ⮢  祭 0, ,  㦭  ⮣ ᤥ, :

                .
                .
                .
        ByteArray   LABEL  BYTE
                FILL_ARRAY 0ffh,8
        ByteArray2  LABEL  BYTE
                FILL_ARRAY 0,100h
                .
                .
                .

             ଠ ࠬ  ᯮ짮    -
        ப.    ஡,  ଠ ࠬ
        ᬥ訢  㣨 ⥪⮬. ਬ,  ப:

                .
                .
                .
        PUSH_WORD_REG  MACRO  RLETTER
                push  RLETTERx
                ENDM
                .
                .

        TASM2 #3-5/               = 37 =

                .

        ࡮  ᥬ    ,     ப  RLETTER, -
        祭  RLETTERx,   ଠ쭮 ࠬ,   -
        ࠭  樨  PUSH,  ⮬  ।,    
        ࠭.  ⭮,  ᥭ  ⥪ RLETTERx -
          ᯥ,  ⠪   ,     ६-
          ⥬  .   砥  १ 祭 
        㤥.

             襭   祭  ଠ쭮  ࠬ  
        ᨬ &.   ࡮ ᥬ 㦨 ⥪ ப-
        ,  祭  ᨬ &,   ஢ ᭠砫,   
         ⥪  ଠ쭮 ࠬ.  ᫨    ⠪,    
        ⠢ 祭  ࠬ. ᫨ ⠪ ⥪  -
          ଠ쭮 ࠬ,   ࡮ ᥬ 
        ᠭ (&).

             ਬ, ᫥饥 ७ ப PUSH_WORD_REG:

                .
                .
                .
        PUSH_WORD_REG   MACRO  RLETTER
                push    &RLETTER&x
                ENDM
                .
                .
                .
                PUSH_WORD_REG

        ᥬ  push bp.

             ᠭ ॡ ⮫쪮 ⠬,   뫪    ଠ
        ࠬ 室  ᮬ. ਬ,  ᫥饬 ⥪ 
         㦭:

                .
                .
                .
        PUSH_WORD_REG   MACRO  REGISTER
                push   REGISTER
                ENDM
                .
                .
                .

        TASM2 #3-5/               = 38 =


              ᯮ짮 ᠭ  ।  ਭ,
        ⮬  ᯮ   ⮬ 砥,  ᫨  ᮬ,
        㦭 ,  .




        TASM2 #3-5/               = 39 =

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

               㦥 , ப  ᮤঠ  -
        ७.  ப  ⠪  뢠  㣨  ப.
        ਬ:

                .
                .
                .
        PUSH_WORD_REG   MACRO  REGISTER
                push   REGISTER
                ENDM
                .
                .
                .
        PUSH_ALL_REG   MACRO
                IRP    REG,<AX,BX,CX,DX,SI,DI,BP,SP>
                PUSH_WORD_REG  REG
                ENDM
                .
                .
                .

              ப PUSH_ALL_REG  ᮤন    ७,
        ,       ᢮   ।,   ᮤন   맮   ப
        PUSH_ALL_REG.




        TASM2 #3-5/               = 40 =

                                ப  ᫮                         
        -----------------------------------------------------------------

             ,  魮 ।⢮,  㯭  ப-
        , -      ४⨢ ᫮ ᥬ-
        ஢.     ப ᥬ஢  ࠧ-
          ,  ᨬ  ﭨ ࠢ ⮪ 
        ࠬ஢  맮 ப.

              ୥     ࠭ ਬ ப,
        믮饩 㬭.   砥, ᫨ ⥫ ।-
         ப,  ।⠢ ᮡ ⥯ ᫠ 2,   -
          ண 믮 㬭  㤥 ᯮ짮 -
        樨 ᤢ  横᪮ ᤢ,   ⨢ 砥 ᯮ㥬
         MUL. ப 룫廊 ᫥騬 ࠧ:

                .
                .
                .
        MULTIPLY MACRO  FACTOR
        ;
        ; ஢,   FACTOR ⥯ 2
        ;
        IS_POWER_OF_TWO  = 0
        COUNT            = 15
        POWER_OF_TWO     = 800h
                REPT     16
        IF POWER_OF_TWO EQ FACTOR
        IS_POWER_OF_TWO  = 1          ; ⥫ ।⠢
                                      ; ᮡ ⥯ ᫠ 2
                EXITM
        ENDIF
        COUNT            = COUNT - 1
        POWER_OF_TWO     = POWER_OF_TWO SHR 1
                ENDM

        IF IS_POWER_OF_TWO
                sub   dx,dx
                REPT  COUNT
                shl   al,1
                rcl   dx,1
                ENDM
        ELSE
                mov   dx,FACTOR
                mul   dx
        ENDIF

        TASM2 #3-5/               = 41 =

                ENDM
                .
                .
                .

             MULTIPLY  室 ࠡ ஢,  믮   㬭
         ⥯ 2,  ᥬ ᮮ⢥騩 . ⮬ :

                MULTIPLY 10

        ᥬ :

                .
                .
                .
                mov   dx,10
                mul   dx
                .
                .
                .

         :

                MULTIPLY 8

        ᥬ  ᫥騩 :

                .
                .
                .
                sub   dx,dx
                shl   ax,1
                rcl   dx,1
                shl   ax,1
                rcl   dx,1
                shl   ax,1
                rcl   dx,1
                .
                .
                .

             㦭 뢠,   ७ ப 믮  
        ६  ᥬ஢,      ६ 믮.   맮
        ப MULTIPLY ਢ  ᥬ஢  : -
        ४⨢  IF  ⮩ ப ।,   樨 -
        ᥬ஢.   ⠩ ப  ணࠬ,  ᫮-

        TASM2 #3-5/               = 42 =

          ᥬ஢    ࠬ  if   묨  몠
        ᮪ ஢.

                                                                               
        襭 ७   ४⨢ EXITM
        -----------------------------------------------------------------

              ᫥ ਬ ᮤন ४⨢,     
          ᬠਢ - ४⨢ EXITM.   ४⨢  㪠뢠
        ࡮ ᥬ,   㦭 ४ ७ ⥪饩 -
           ७.  ᫨  ⥪  ப  
         ७    ⭮襭  㣮 ப-
           ७,  ७ 譥  -
          ப த.

              襬  ਬ ४⨢ EXITM ४頥 ७ 
        ७,  ᮤঠ饣 EXITM,    ७  ப
        MULTIPLY,   ᮤন  ७, த. -
        ᪨   ਬ 樨 REPT  EXITM ᯮ  ᮢ-
        ⭮  祭  横 while  몥 .   
        㦭 㯮  ⮬,  横 while  MULTIPLY -  横 ⠯
        ᥬ஢,  騩 ।,   㦭 ᥬ-
        ஢,   横 ⠯ 믮.




        TASM2 #3-5/               = 43 =

                        । ⮪   ப                
        -----------------------------------------------------------------

                ⥭樠  ஡    ப ,
           ।  ப . ਬ, ᫥-
        騩    ਢ    訡 - ୮ । ⪨
        SkipLabel, ᪮  ⪠ ।  ७ ப-
         DO_DEC:

                .
                .
                .
        DO_DEC  MACRO
                jcxz   SkipLabel
                dec    cx
        SkipLabel:
                ENDM
                .
                .
                .
                DO_DEC
                .
                .
                .
                DO_DEC
                .
                .
                .

                ,   ࡮ ᥬ ।ᬮ७ ⮥ -
          ஡   ४⨢ LOCAL.   ४⨢  -
        ப  ਢ  ⮬,    ⢨ 㪠 ⪨
         ⮪ ࠭稢  ப. ਬ, ४-
          LOCAL  ᯮ짮,  ⮡ ਢ ।騩 ਬ 
        ४⭮ :

                .
                .
                .
        DO_DEC  MACRO
                LOCAL  SkipLabel
                jcxz   SkipLabel
                dec    cx
        SkipLabel:
                ENDM
                .

        TASM2 #3-5/               = 44 =

                .
                .
                DO_DEC
                .
                .
                .
                DO_DEC
                .
                .
                .

             ᫨ ४⨢ LOCAL ᯮ  ப,  
        㪠뢠 ।⢥  ४⨢ MACRO.    
        ४⨢  LOCAL 묨   ᪮쪮 ⮪. 
        ⠪ ᯮ짮 ᪮쪮 ४⨢ LOCAL:

                .
                .
                .
        TEST_MACRO  MACRO
                LOCAL  LoopTop,LoopEnd,SkipInc
                LOCAL  NoEvent,MacroDone
                .
                .
                .
                ENDM
                .
                .
                .

             , ᢠ   ⢨⥫쭮    ⪠,
         :

               ??XXXX

         XXXX  -    ⭠筮  ᫮       0 
        0FFFFh. ⥫쭮,    ᢠ 訬 ⪠ -
        ,   稭  ᨬ ??,    ਢ 
        䫨  묨 ⪠,  㥬묨 ࡮ ᥬ஬.

             ०騥 뫪  ப  ᪠:  ப-
           ।  ⮣,    뢠.   ᢥ
        ⮣,  ࠭ ਫ   ० 뫪,  
        ।  ,  ⠪   ࡮ ᥬ  ,  ᪮쪮
          㦭 १ࢨ஢   ப,     
        ०  뫪.     㣮 ஭ ப 

        TASM2 #3-5/               = 45 =

        ।    室 .

              ப  ᮤঠ  ⨬   ᥬ-
         ப.   砥  ᥡ ४⨢ । , 
        ⠪    ४⨢ । ᥣ⮢,   ⨯ ⮪
         ४⨢ ࠢ ⨭.

              ᪮쪮  ४⨢,   ᮧ ᯥ樠쭮 
        ᯮ짮    ப.    ४⨢  IFDIF,   IFIDN,
        IFDIFI, IFIDNI,  IFB  IFNB.  ⠪ ᪮쪮 ४⨢ ᫮-
         ࠡ⪨ 訡,   ᯮ  ப.  
        ४⨢ ERRDIF, ERRIDN, ERRDIFI, ERRIDNI, ERRB  ERRNB.  
        ४⨢ ᪠뢠    6   "ࠢ筮 㪮⢥"
        (  3).

              ⠪ ᪮쪮 ᯥ樠 権,   
        ᯮ짮  ப:

                &             ⠭
                <>           ப  ࠫ쭮 ⥪
                !             ᨬ  窠
                %             ᫥ ࠦ
                ;;            

              ⠭  &  㦤    ।饬 ࠧ,
        饭 ப.    㣨 ᯥ樠 樨 -
          ।  "ࠢ筮 㪮⢥".

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

              祭 㭪権 ࠢ ᫮묨 ࠬ  -
          ࡮ ᥬ ।ᬮ७  ४⨢: STRUC, RECORD
         UNION.    ⨫,    ४⨢ -
         ⥬,   ᯮ  몠 ᮪ ஢.  -
        ⢨⥫쭮,  ஥   ४⨢  -
          ࡮  ᥬ    ⥬,    ᯮ   몠
        ᮪ ஢.

              ४⨢ ।    몥 ᥬ-
        ,   묨,  ⥬    ⠪ ࠧ-
        ,  ᯮ騥  몠 ᮪ ஢. ਬ,  -
          ᥬ    ⢨        
        ࠭稢 ⮩  ன,  ⮬      
           㭨쭮  室 㫥.

        TASM2 #3-5/               = 46 =


             ஬ ⮣,    ⫨稥  몮   ᪠,   몥 -
        ᥬ ४⨢ ।   -   㤮⢮, 
         室:   ࠡ  ࠬ ᥩ, 묨
         ꥤﬨ ᥬ    ᯮ  ४⨢  ।
          .        ४⨢ 祭 㤮  
        ⮨ .

             饥  㦤 ⭮  ࡮ ᥬ,  -
        饬    ० MASM.   襭 ० (Ideal) ࡮ -
        ᥬ ন ⥫쭮    ४⨢  -
        ।    .   ७ ।⢠ 襭
        ०     11.

             । ⥬,    筥 ᪠뢠     
        ࡮ ᥬ,  ⮨ ᤥ  砭:  ᫨   -
            ४⨢ ०騥 뫪, -
        ,    ꥤ  ᮤঠ    ⥪.

                                    ४⨢ STRUC                            
        -----------------------------------------------------------------

             ४⨢ STRUC,     । 
        ,    ।   ⮬ 砥,    室
           묨, ࠧ묨  ᪨ 㯯.

              ,    몮 , ४⨢ STRUC 筠
          몠 .

             ਬ, ।,       । 
        ,  ᮤঠ ,   室   짮⥫.
          :

           CLIENT    STRUC
           NAME      DB        ' 㪠뢠 ...'
           AGE       DW        ?
           INCOME    DD        ?
           CLIENT    ENDS

              CLIENT (짮⥫) ᮤন  :  NAME
        ᮤন  ( 20 ᨬ ),   AGE ᮤন ,
         ࠭,   16-⮢ 祭,   INCOME, ᮤ-
        饥 室 (࠭,  32-⮢ 祭).

              CLIENT  ᯮ짮 ᫥騬 ࠧ:

        TASM2 #3-5/               = 47 =


                .
                .
                .
           CLIENT    STRUC
           NAME      DB        ' 㪠뢠 ...'
           AGE       DW        ?
           INCOME    DD        ?
           CLIENT    ENDS
                .
                .
                .
                .DATA
        MisterBark   CLIENT    <'John Q. Bark',32,10000>
                .
                .
                .
                .CODE
                .
                .
                .
                mov     ax,[MisterBark.Age]
                mov     bx,OFFSET MisterBark
                mov     ax,WORD PTR [bx.INCOME]
                mov     dx,WORD PTR [bx.INCOME+2]
                .
                .
                .

              ਬ ⮨ ஡ ᬮ. ⬥⨬ ᭠砫, 
        ।   ४⨢ ENDS.     -
        ४⨢,   稢 । ᥣ⮢.  ਬ, 
        ।   ᥣ .

                .
                .
                .
        _Data   SEGMENT WORD PUBLIC 'DATA'
                .
                .
                .
        Test    STRUC
                .
                .
                .
        Test    ENDS

        TASM2 #3-5/               = 48 =

                .
                .
                .
        _Data   ENDS

             -, ⬥⨬,    ६  MisterBark   
        CLIENT ᮧ ⠪,   ᫨  ⢮  ⨯    
         CLIENT (䠪᪨,   ⠪ ⨯    ᮧ,
        ।  CLIENT).  ᫨   CLIENT  ਬ-
          SIZE,   祭 26 (ࠧ ).

              ᮧ ६ MisterBark  㣫 ᪮ ।-
        ७  ࠬ ᠭ.   ࠬ ⠭ 砫-
        묨  祭ﬨ  ᮮ⢥    ६  MisterBark.
        ப  'John Q.  Bark' -  砫쭮 祭  NAME,  32 -
        砫쭮 祭  AGE,   10000 - 砫쭮  祭  
        INCOME.

               ॡ । 砫 祭    ,
        ।  . ਬ:

        MisterBark      CLIENT  <>

         樠   MisterBark, 

        MisterBark      CLIENT  <,,19757>

        樠 ⮫쪮  INCOME.  㣫 ᪮ ॡ-
         㪠뢠,  ᫨   樠஢.

             ᫨  ᮧ ६     ।  -
        砫쭮 祭,      ᯮᮡ,   -
          砫쭮 祭   .  ᫨   -
        砫쭮  祭    । ୮ ⨯,
         ⮬  ᢠ 㪠 祭 ( 㬮砭).

             ਬ,  ᫥饬 ࠣ ணࠬ 砫쭮 祭
         ⮫쪮    MisterBark ( NAME)  ᮧ-
         ६ MisterBark. , । 砫쭮 祭,
           AGE  ।   CLIENT,  ⮬
         㤥 祭  AGE  MisterBark.   INCOME -
        祭   ,  ⮬   樠 -
        祭 0. ਬ:

                .
                .

        TASM2 #3-5/               = 49 =

                .
        CLIENT  STRUC
        NAME    DB     ' 㪠뢠 ...'
        AGE     DW     ?
        INCOME  DD     ?
        CLIENT  ENDS
                .
                .
                .
                .DATA
        MisterBark     CLIENT  <'John Q. Bark>
                .
                .
                .

              १ 믮  ணࠬ  NAME 樠-
         祭 'John Q. Bark',  AGE - 祭 21,  -
         INCOME - 祭 0.  ⨬,   砫쭮  祭  
        NAME,   ᮧ ६ MisterBark, ⬥ -
        砫쭮 祭,   ।  CLIENT.

               樨 DUP      樠஢  ᨢ
        . ਬ:

        Clients        CLIENT      52 DUP (<>)

              ᮧ ᨢ Clients, 騩  52  -
         CLIENT,    樠 祭ﬨ  㬮-
        砭.

             ᫨   ᭮  ﭥ   ਬ 室 ,  
        㢨   -  (.).   ।⠢ -
           樨 +  樨  .  , ᫥-
        騥 ப 믮  ⢨:

                .
                .
                .
                mov     ax,[bx.AGE]
                mov     ax,[bx].AGE
                mov     ax,[bx+AGE]
                mov     ax,[bx]+AGE
                .
                .
                .


        TASM2 #3-5/               = 50 =

              窨  ᯮ   뫪 
        ᮤন  祭 몠 ,  ⠪ ᯮ 窠.
          ⠪,  ⮡ 뫮 ⭮,    ᯮ  
        .   ᯮ짮  ,   
        ࠢ (.  +).

              ,  ।    ४⨢ STRUC,  
        ⢨⥫쭮 ।⠢ ᮡ ⪨,  ࠢ  ᬥ-
              .  ᯮ   ࠭ । 
        CLIENT  MisterBark,   ᪠,  ᫥騥  ப -
        :

                .
                .
                .
                mov     [MisterBark.AGE],ax
                mov     [MisterBark+20],ax
                .
                .
                .

        
                .
                .
                .
        AGE_FIELD       EQU 20
                .
                .
                .
                mov     [MisterBark+AGE_FIELD],ax
                .
                .
                .




        TASM2 #3-5/               = 51 =

                o⪨  २⢠ ᯮ짮 ४⨢ STRUC        
        -----------------------------------------------------------------

              祣  㦭 ᯮ짮 ४⨢  STRUC?  -,
            ᯥ稢  ⨯ .  ࡮ ᥬ
        ,   MisterBark.AGE  ࢮ ਬ -  ६ ࠧ-
        ஬  ᫮, ᪮ AGE -   ,  ࠦ
        MisterBark+AGE  ஬ ਬ   饣  ࠧ.

             -,    । , 祬
         ᬥ饭 ⠭,     ᢠ.  -
        ,  ᫨  訫,    NAME    30 ᨬ-
        ,   諮      NAME  ।-
         CLIENT. ᫨   ᯮ짮 ᢠ,  諮 
            ᬥ饭  AGE  INCOME.  -
           뫠  ஬ ࠡ.

             , ४⨢ STRUC 砥 ᮧ   樠
         .

              ,  ४⨢ STRUC  㤮 ᯮᮡ ᮧ
           㯠  .  㣮 ஭,  -
            몥 ᥬ ᯮᮡ 訡  襩 ⥯,
        祬    몥 .  ਬ,   ᯮ
          뫪     ॣ,   ࡮ ᥬ 
        ᯮᮡ ᮮ, ᮤন  ॣ 㪠⥫  ⨬ 
        ⮣ ⨯  .   ᫥饬 ࠣ ணࠬ -
         BX 㦠 祭 0,   ࡮  ᥬ    
        ,  ᯮ    ᬥ饭  0  ⨬  
        DATA,  :

                .
                .
                .
                mov     bx,0
                mov     dx,[bx.AGE]
                .
                .
                .

                ஡  몠 ᥬ,    ࠦ 
        த.   롮  ⥬, ⮡    ᢮
         ணࠬ஢  ⥬, ⮡    ᠬ ᥡ. 
        ᥬ ।⠢  ᢮. 㦭     
         :   뫪    ࡮ ᥬ -
         믮 ⮫쪮 ࠭祭 ஢  訡. ⢥⢥-

        TASM2 #3-5/               = 52 =

          ࠢ 㧪 㪠⥫   .

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

             ᪮쪮 ᠤ  䠪,     , -
            ⢨⥫쭮    ⪠,    
         室 㫥 㭨.  ਬ, ᫨    -
        室  㫥 ।  CLIENT,    㣮 
              ᯮ짮    INCOME ( 
        㣮 ).  INCOME -   ⪠  祭 22  ,
        筮,   室 㫥   ᮤঠ  ⪨ 
          ⥬  .   ᫥饬 ࠣ ணࠬ - -
        ⪨ ८। AGE 㤥 ஢ 訡:

                .
                .
                .
           CLIENT    STRUC
           NAME      DB        ' 㪠뢠 ...'
           AGE       DW        ?
           INCOME    DD        ?
           CLIENT    ENDS
                .
                .
                .
           AGE  EQU  21
                .
                .
                .




        TASM2 #3-5/               = 53 =

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

                묨, ਬ:

                .
                .
                .
                .DATA
                .
                .
                .
           AGE_STRUC  STRUC
           YEARS      DW   ?
           MONTHS     DW   ?
           AGE_STRUC  ENDS
                .
                .
                .
           CLIENT    STRUC
           NAME      DB        ' 㪠뢠 ...'
           AGE       AGE_STRUC <>
           INCOME    DW        ?
           CLIENT    ENDS
                .
                .
                .
           MisterBark   CLIENT   <>
                .
                .
                .
                .CODE
                .
                .
                .
                mov     dx,[MisterBark.AGE.MONTHS]
                mov     si,OFFSET MisterBark
                mov     cx,[si.AGE.YEARS]
                .
                .
                .

               AGE_STRUC   AGE      CLIENT
          ,   ⥬   CLIENT MisterBark 
        뫠   MONTHS  YEARS.


        TASM2 #3-5/               = 54 =

                                樠                          
        -----------------------------------------------------------------

             ⭮⥫쭮 樠樨   㦭 ᤥ ᪮쪮
        ।०.  -,  ᫨   ⠥  樠஢
        ப    ப,   ன ॢ蠥 
        ,  㤥 ஢ 訡 ᥬ஢.

             -, ⢥  ,  ஥  樠-
        ஢ ப 祭 -  ப . 騩  -
          ᥬ஢  㤥:

                .
                .
                .
        TEST    STRING
        TEXT    DG      30 DUP (' ')
        TEST    ENDS
                .
                .
        TStruct TEST <'Test string'>
                .
                .
                .

         ᫨ ப TEXT 樠஢ ﬨ,  ⠪   ࡮  -
        ᥬ ᬠਢ TEXT,  ᨢ  30 ஡,   -
          30 ᨬ. ⨬,  ᫥騩 :

                .
                .
                .
        TEST    STRUC
        TEXT    DB      ' ᫥ ப.....'
        TEST    ENDS
                .
                .
                .
        TStruct         TEST <'Test string'>
                .
                .
                .

               㤥 ᥬ஢.


        TASM2 #3-5/               = 55 =

             -,    樠஢   -
         ,   ਭ    , 樠-
        ஢  ,  ᠬ 襥,     (
          ᮧ  宦  ⮩ ).  ਬ,   ᫥饬
        ࠣ ணࠬ,   ᮧ  TestStruc, 
           B 樠 祭 2,    ६  ன
           ⠥ ࠢ 祭  㬮砭 20h (-
        ):

                .
                .
                .
        T       STRUC
        A       DB      0ffh,0ffh
        B       DB      0ffh,0ffh
        T       ENDS
                .
                .
                .
        TestStruc       T       <1,2>
                .
                .
                .

                ࠧ  㤨  ४⨢ STRUC  -
         MASM.  襭 ० (० IDEAL) ४⨢ STRUC -
        ⥫쭮    魠    ᯮ짮  ।,
        㯭  몠 ᮪ ஢ (  襭  ०  ࡮
        ᥬ ᪠뢠   11).




        TASM2 #3-5/               = 56 =

                                   ४⨢ RECORD                            
        -----------------------------------------------------------------

             ४⨢ RECORD    ।    
          ᫮. ।    ᯮ짮  -
        樨 ᮪  楫 뤥        ,  
        ⠪  ⢥ 稪 ᤢ  ࠢ ࠢ 
        ⮢ .  ४⨢ RECORD   ⭮襭    
        ᪠ record.

             ।,   ।  ,  -
        ন 1-⮢ 䫠  12-⮢ 祭.   ᤥ 
         ४⨢ RECORD ᫥騬 ࠧ:

        TEST_REC        RECORD   FLAG1:1,FLAG2:1,FLAG3:1,TVAL:12

               ਬ ।  䫠 FLAG1, FLAG2  FLAG3
              TVAL.  祭,  㪠뢠  
         ᫥ ,  ࠧ ⮣    ( 
        䫠  ࠧ 1 , TVAL - 12 ).

              ࠧ    ࠭    ?   쭮
        ᫮. ࢮ  (FLAG1) -  ᠬ  ( 騩)
         . ஥  (FLAG2) -  ᫥騩  稬 
          ..,     ⨣ 祭 TVAL,  ஥ -
        稢  ᠬ 襬  .     
        ࠧ ⮫쪮  15      ᫮ ⠥ ⥭ (-
         ᥣ  筮 8  16 ).  믮  ᫥饥
        ࠢ:      楫 ᥣ ࠢ ࠢ  ࠭
          ᫮.

               㦥 ᪠,   ᫮.  ᭥ -
        樨 ਢ ਬ.   ⨯ TEST_REC ।   
        ப :

        TRec    TEST_REC        <1,0,0,52h>

               ᮧ ६ TRec ⨯  TEST_REC.  -
        祭  㣫 ᪮ ।⠢ ᮡ 砫 祭 -
        ⢥  ,  ⮬    TRec FLAG1 樠
        祭 0,    TVAL 樠 祭 52h.  .
        9.1  ࠧ饭  砫 祭   
        ६ TRec.

                      FLAG1       FLAG3
         ᯮ |   FLAG2   |           TVAL

        TASM2 #3-5/               = 57 =

                  |     |     |     |             |
               ---|-----|-----|-----|-------------|----------------------
               |  v  |  v  |  v  |  v  |          v                     |
        TRec   |  0  |  1  |  0  |  0  |         52h                    |
               |     |     |     |     |                                |
               ----------------------------------------------------------
               15    14    13    12   11                             0

             . 9.1.  ᯮ   砫쭮 祭   
        TREC.

             ᫨ 騩 ࠧ  ( 㬬  ) ⠢
        8   ,    ࠭  ,   ⨢ 砥
         ࠭  ᫮.  ᪫祭  砥,  ࠧ襭
        ᥬ஢   ᯮ짮  80386 ( ⮬ 砥
        ᪠   32 ),  ,  ࠧ  ॢ蠥
        16 ,  ন.

             樠 ६  ⨯      筠
        樠樨 ୮ ६.  ᫨    砫쭮
        祭      ᮧ ६ ⨯ -
        ,    樠 ⨬ 祭  (    
        ᫥ ਬ).

             ᫨  ᮧ ६-    砫쭮
        祭    ,    ᯮ㥬 
        㬮砭 祭.    ᮧ ⨯ ,    -
             ᯮ㥬   㬮砭 祭. -
        :

        TEST_REC        RECORD  FLAG:1=1,FLAG:1=0,FLAG3,TVAL:12=0fffh

          㬮砭 祭 1  FLAG1, 祭 0  FLAG 2 
        0FFFh -  TVAL ( FLAG3  祭  㬮砭   -
        ).  㬮砭  ,  祭 ண   -
        , ਭ 祭 0, ⮬  㬮砭 FLAG3 ᢠ-
         祭 0.

              ᫥,  c ⮬ । TEST_REC  ᮧ
        TRec:

                .
                .
                .
                .DATA
                .

        TASM2 #3-5/               = 58 =

                .
                .
        TEST_REC        RECORD  FLAG:1=1,FLAG:1=0,FLAG3,TVAL:12=0fffh
                .
                .
                .
        TRec    TEST_REC  <,1,,2>
                .
                .
                .

         樠 ᫥騬 ࠧ:

             -  FLAG1 樠 祭 1;
             -  FLAG2 樠 祭 1;
             -  FLAG3 樠 祭 0;
             -  TVAL 樠 祭 2.

             饥 祭 ६- TRec - 6002h.  ⨬, 
        砫 祭,    ᮧ , ८।
        砫 祭,   । .

             ᫥ । ⨯  祭 㣨 ⨯ .
        , ਬ,  ᯮ짮 ࠭ ⨯   樨
        SIZE,   । ᨢ ᥩ   樨 DUP.
        ਬ,   । ᨢ  90 ᥩ ⨯ TEST_REC:

        TRecArray       TEST_REC        90 DUP (<1,1,1,0>)

                 ,   ᥩ ।⠢
        ᮡ ⪨.  ᪮ । ⪨  室 㫥 -
         ⮫쪮  ࠧ,   砥,       ᥩ
            室 㫥 㭨.

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

             ,   ,  ࠧ  ᮧ ,
          ࠭ ࠧ   ,  㯨  -
         㯠  .       ᭮  㬠,
             筮 ⠪,      -
        , ਬ:

                mov     al,[TRec.FLAG2]      ;  ࠡ  㤥!


        TASM2 #3-5/               = 59 =

           ⠪.   8086  ࠡ  ⮫쪮    8-  
        16-⮢묨  ࠭    ,  ⮬  㧨
        1-⮢ , ਬ,  ॣ.   ﬨ ᥩ -
          ᫥饥:  ।  ࠧ  , ।-
        , ᪮쪮  㦭 ஢ ࠢ        ⮣,
        ⮡ 뤥 , ᮧ . 㣨 ᫮,  
        8086    ।⢥ ࠡ   ﬨ ᥩ,
        ࡮  ᥬ ন ࠡ  ⨬ ﬨ   -
         権,  AND  SHR.

             祭    ।⠢ ᮡ  ᫮  ,
           㦭 ᤢ ,  ⮡ ஢ ࠢ  
         (    0    0 ). ਬ:

                .
                .
                .
                mov     al,FLAG1
                mov     ah,TVAL
                .
                .
                .

        㦠  AL 14   AH 0, ⮬:

                .
                .
                .
                mov     ax,[TRec]
                mov     cl,FLAG1
                shr     ax,cl
                .
                .
                .

        ࠢ ࠢ   FLAG1 TRec  AX.

             祭 ᠬ  ⨯  -  祭   ᫮,
        ஥   ஢   ᮧ    -
        묨 砫묨 祭ﬨ. ਬ, :

             mov        ax,TEXT_REC <1,1,1,0fffh>

        㦠  AX 祭 7FFFh - 祭, ஥    -
        ,  ᫨  ᮧ ⨯   TEST_REC  砫묨 -
        ﬨ <1,1,1,0FFFh>.  㦭 뢠 ࠧ稥  㧪 AX

        TASM2 #3-5/               = 60 =

        ⨯  TEST_REC (  ᫥ ਬ)   㧪  -
         AX ⨯  TREC,   ਬ:

                .
                .
                .
        TEST_REC        RECORD  FLAG1:1=1,FLAG2:1=0,FLAG3:1,TVAL:12=0fffh
                .
                .
                .
        TRec            TEST_REC <,1,,,2>
                .
                .
                .
                .CODE
                .
                .
                .
                mov     ax,[TRec]
                .
                .
                .

         ॣ  AX  㦠 祭 6002h (祭 ६
        TRec).




        TASM2 #3-5/               = 61 =

                                      WITH                             
        -----------------------------------------------------------------

              WITH 頥 ࠧ      -
        . ਬ,  ᫥饩 ப  ॣ AL ࠭ -
        祭 15 (᫮    TEST_REC):

                mov   al,WITH TEST_REC   ; ࠧ    

          祭 1 (    䫠)  ࠭ 
        ॣ AL, AH  BL  祭 TVAL -  ॣ BH:

                .
                .
                .
                mov     al,WITH FLAG1
                mov     ah,WITH FLAG2
                mov     bl,WITH FLAG3
                mov     bh,WITH TVAL
                .
                .
                .




        TASM2 #3-5/               = 62 =

                                      MASK                             
        -----------------------------------------------------------------

              MASK 頥 , 室  뤥 -
              樨 AND. ਬ:

                mov     ax,MASK TEST_REC

        뢠 祭 7FFFh  ॣ AX,  樨:

                .
                .
                .
                mov     ax,MASK TEST_REC
                mov     dx,[TRec]
                and     dx,ax
                .
                .
                .

        뢠 祭  TRec  ॣ  DX,  ࠧ᪨  
        15,      TEST_REC.

              MASK    ,   ॡ 뤥 -
        쭮  .  ।, ⠭  䫠 FLAG3
         TRec:

                .
                .
                .
                mov     ax,[TRec]
                and     ax,MASK FLAG3
                jz      Flag3NotSet        ; 䫠  ⠭
                .
                .
                .

             ⨬,    樨 AND  ᯮ ᯮ짮-
          TEST.   믮   ஢ઠ,    
        ।饬  ਬ,   ⮬    ॣ 
        祩 :

                .
                .
                .
                jz      Flag3NotSet

        TASM2 #3-5/               = 63 =

                .
                .
                .

              MASK  ᯮ짮  ࠡ  ﬨ -
          ⠭  ﬨ ᤢ (  㢨 ).




        TASM2 #3-5/               = 64 =

                              祣 ᯮ ?                     
        -----------------------------------------------------------------

               㧭,   ।⠢ ᮡ      
        ᯮ.    ⢨⥫쭮  室
         ᯮ짮 ᥩ? 筮,  ᯮ , 
         祭 㤮:   ᪮쪮     
             ᫮.   ᯮ㥬  ⥬
        -뢮 (BIOS) ६ ⠪ ஢   -
        ᥩ.  ਬ,  訩  䫠 㤮 BIOS,   ஬
        ࠭ ⭮  ⭮ ᯥ祭 ଠ (⨢-
         ,  ᫮  ᪮  ..) -   
        :

         EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1

        :

             NUMDISKS - ᫮ ⠭ ᪮   ᪮,
        - 1.

             VIDEO - 뢠,   ⨯ ᯫ   
         ⨢.

             RSRVD - ,  १ࢨ஢  ᯮ짮  ࠧ-
         ப  IBM.

             MATHCHIP = 1,  ᫨ ⠭  䬥᪨  ᮯ
        (⨯ 8087).

             AREDISKS = 1,  ᫨ ⠭ ᪮   ᪮.

             ਢ ਬ 㭪樨,   ᯮ   EQ_FLAG
         樨    ⠭  ᯫ  
        䫠-६  BIOS:

        ;
        ; 頥 ⥪饥 祭  ᯫ 
        ; 䫠-६  BIOS
        ;
        ; : 
        ;
        ; 뢮:
        ;     AL = 0, ᫨ ᯫ      ࠭
        ;          1, ᫨ ࠭ 梥⭮ ᯫ  4025
        ;          2, ᫨ ࠭ 梥⭮ ᯫ 8025

        TASM2 #3-5/               = 65 =

        ;          3, ᫨ ࠭ ஬ ᯫ 8025
        ;
        ; ᯮ㥬 ॣ: AX, CL, ES
        ;
        EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1
        ;

        GetBIOSEquipmentFlag       PROC
                mov     ax,40h
                mov     es,ax            ; ES 㪠뢠  ᥣ 
                                         ; BIOS
                mov     al,es:[10h]      ;  訩  䫠
                                         ; 
                and     al,MASK VIDEO    ; 뤥  ᯫ
                                         ; 
                mov     cl,VIDEO         ;  ᫮  
                                         ; ᤢ  ࠢ (ࠢ-
                                         ;  ࠢ   )
                shr     al,cl            ; ஢ ࠢ  
                                         ; ᯫ 
                ret
        GetBIOSEquipmentFlag       ENDP

             ਢ ਬ ⥫쭮 㭪樨,  ⠭-
          䫠  BIOS   祭:

        ;
        ; ⠭ 祭  䫠  BIOS
        ;
        ; :
        ;     AL = 0, ᫨ ᯫ      ࠭
        ;          1, ᫨ ࠭ 梥⭮ ᯫ  4025
        ;          2, ᫨ ࠭ 梥⭮ ᯫ  ० 8025
        ;          3, ᫨ ࠭ ஬ ᯫ 8025
        ;
        ; 뢮: 
        ;
        ; 蠥 ॣ: AX, CL, ES
        ;
        EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1
        ;

        SetBIOSEquipmentFlag       PROC
                mov     ax,40h
                mov     es,cx           ; ES 㪠뢠  ᥣ 
                                        ; BIOS

        TASM2 #3-5/               = 66 =

                mov     cl,VIDEO        ;  ᫮  
                                        ; ᤢ । 祭
                                        ;   ࠢ  
                                        ;  ᯫ 
                shl     al,cl           ; ஢ 祭
                mov     ah,es:[10h]     ;  訩  䫠
                                        ; 
                and     ah,NOT MASK VIDEO ;   ᯫ
                                        ; 
                and     al,MASK VIDEO   ; ᯥ ࠢ쭮 -
                                        ;   祭 
                                        ; ᯫ 
                or      al,ah           ;   ᯫ
                                        ; 
                mov     es:[10h],al     ; ⠭  䫠
                                        ; 
                ret
        SetBIOSEquipmentFlag       ENDP

               ࠧ  㤨  ४⨢  RECORD ०
        MASM.    襭  ० (IDEAL)   ४⨢ -
        쪮 ⫨砥  ० MASM (  ஡    襭
        ० ᪠뢠   11).




        TASM2 #3-5/               = 67 =

                                    ४⨢ UNION                            
        -----------------------------------------------------------------

             ४⨢ UNION ᯥ稢 ᯮᮡ,   ண -
         뫠   祩 ,       ᪮쪨
        ⨯.  ४⨢ 筠  union 몠 .

             ।,    稪,   ᯮ-
        ,  8-⮢ 稪,   -  16-⮢.  
        ,  ᫥饥 ꥤ:

                .
                .
                .
        FLEX_COUNT      UNION
        COUNT8          DB      ?
        COUNT16         DW      ?
        FLEX_COUNT      ENDS
                .
                .
                .

             ⨬,    ४⨢ STRUC,  ४⨢ UNION  
         ᮮ⢥饩 ४⨢ ENDS.

              ⮬  ।饣  । ꥤ FLEX_COUNT 
         ᮧ  ᯮ짮 ⠪  稪 ᫥騬 -
        ࠧ:

                .
                .
                .
                .DATA
        Counter         FLEX_COUNT      <?,?>
                .
                .
                .
                .CODE
                .
                .
                .
                mov     [Counter.COUNT16],0ffffh
        LoopTop:
                .
                .
                .

        TASM2 #3-5/               = 68 =

                dec     [Count.COUNT16]
                jnz     LoopTop
                .
                .
                .
                mov     [Counter.COUNT8],255
        ShortLoopTop:
                .
                .
                .
                dec     [Counter.COUNT8]
                jnz     LoopTop
                .
                .
                .

                ᯮ짮 ,   窨 ᯮ-
          뫪    ꥤ  (  ⠪  ᯮ짮
         +). 뫪  ६    ꥤ -
        ⭠ ᯮ짮 ८। ⨯.  ।騩 ਬ
        ⥭ ᫥饬:

                .
                .
                .
                .DATA
        Counter         DW      ?
                .
                .
                .
                .CODE
                .
                .
                .
                mov     WORD PTR [Counter],0ffffh
        LoopTop:
                .
                .
                .
                dec     WORD PTR [Counter]
                jnz     LoopTop
                .
                .
                .
                mov     BYTE PTR [Counter],255
        ShortLoopTop:

        TASM2 #3-5/               = 69 =

                .
                .
                .
                dec     BYTE PTR [Counter]
                jnz     LoopTop
                .
                .
                .

             २⢮ ᯮ짮  ꥤ    ࠢ  -
        짮 ८। ⨯ ⮨  ⮬,    襩
        ⭮ ᯮ ४⭮   ꥤ, 祬
        㤥  ࠧ ᯮ  ८। ⨯.  ஬ ⮣,
            ६-ꥤ ⠭ -
        ,  ᫨  ᬮ   ।  ६,  ⮬
        ணࠬ,   ன ᮤঠ ꥤ, ࠧ  -
          㦨.

              ꥤ  ᯮ짮    ꥤ  
        . ਬ, ᫥饥 ꥤ  ࣠
          4-⮢ ६      㪠⥫  (⨯
        ᥣ:ᬥ饭)  ࠧ஬     ᫮,    ६-
        -ᬥ饭 ࠧ஬  ᫮   ६-ᥣ  ࠧ஬  
        ᫮:

                .
                .
                .
        SEG_OFF         STRUC
        POFF    DW      ?
        PSEG    DW      ?
        SEG_OFF         ENDS
                .
                .
                .
        PUNION          UNION
        DPTR    DD      ?
        XPTR    SEG_OFF <>
        PUNION          ENDS
                .
                .
                .
                .CODE
                .
                .
                .

        TASM2 #3-5/               = 70 =

                mov     [bx.XPTR.POFF],si
                mov     [bx.XPTR.PSEG],ds
                .
                .
                .
                les     di,[bx.DPTR]
                .
                .
                .


                 ᯮ짮 ४⨢ STRUC  RECORD,   -
        ,  ।塞   ४⨢ UNION,  ।⠢ ᮡ
          ⪨.    襭 ० ४⨢ UNION ⥫쭮
         魠  ।⠢ ⢮ ।,   㯭
          몠  ᮪ ஢ ( 襭 ० ᪠뢠 
         11).




        TASM2 #3-5/               = 71 =

                                                                               
        ४⨢ । ᥣ⮢
        -----------------------------------------------------------------

                5  㦥 ᪠뢠  ⮬,  ᯮ짮 -
        饭 ४⨢ । ᥣ⮢.   㦥 ⠪  -
        筮    ⠭  ४⨢ । ᥣ⮢,  ⮡
        ᮧ ࠡ ணࠬ.    㤨   ⠭-
          ४⨢  ।  ᥣ⮢  ஡    
        ஡ ଠ  ⮬,  ।⠢ ᮡ 饭 -
        ४⨢  । ᥣ⮢.   ᬮਬ ⠪ ਬ ண-
        ࠬ,  ன ᯮ ᪮쪮 ४⨢ । 
          ,  ⮡   稫 ।⠢  ⮬,   ࠡ⠥
        ணࠬ,   ᪮쪨 ᥣ⮢.

             ᯮ,   饭  ४⨢  ।  ᥣ⮢
         ᯮ짮,    , 祬 ⠭ ()
        ४⨢ । ᥣ⮢.  ᫥ ࠧ  ᬮ-
        ਬ   ⠪  ⠭  ४⨢  ।  ᥣ⮢,  
        SEGMENT, GROUP  ASSUME.




        TASM2 #3-5/               = 72 =

                                                                               
        ४⨢ SEGMENT
        -----------------------------------------------------------------

             ४⨢ SEGMENT  ᯮ  ⮣,  ⮡  ᥣ-
        .   ४⨢ SEGMENT  ᮮ⢥⢮  ४⨢
        ENDS,  ᥣ.  ⫨稥  饭 ४⨢ -
         ᥣ⮢,  ४⨢ SEGMENT    -
        ࠢ ਡ⠬  ᥣ.

              ଠ ४⨢ SEGMENT  ᫥騩 :

              SEGMENT ࠢ ஢ ᯮ짮 ''

           ࠢ",  "஢",   "ᯮ짮"   
        "" 易⥫.       㤨 ।-
        .

                               ""  "ࠢ"                      
        -----------------------------------------------------------------

              ""      ᥣ.   ᥣ⮢ 
        ⪠,  ⮬  ᢮ 室       㭨-
        .  襭 ᥣ     ᯮ짮 
        ४⨢ ENDS.

              "ࠢ"  ࠭ ,   ன 
        稭 ᥣ. ⨬ ᫥騥 ࠭ ࠢ:

         BYTE  -  ᯮ ᫥騩 㯭  .
         DWORD -  ᯮ ᫥騩  , ஢    ࠭
                    ᫮.
         PAGE  -  ᯮ  ᫥饩 ࠭ (ࠢ 
                  ࠭,  256 ⠬).
         PARA  -  ᯮ ᫥騩    ࠣ (ࠢ
                  , ⭮ 16 ⠬.
         WORD  -  ᯮ ᫥騩 ,  ஢    ࠭
                  ᫮.

              設⢠  ணࠬ 室 ࠢ 
        ࠭ .  設⢥ 16-ࠧ來 ஢ (⠪, 
        AT)  ।⥫쭮 ࠢ  ࠭ ᫮,  ⠪ 
        16-ࠧ來   䥪⨢ ࠡ  묨,  -
        ஢묨    ࠭ ᫮.   ⥬  稭  32-ࠧ來
         ।⥫쭥  ࠢ    ࠭  
        ᫮.  ࠢ   ࠭ ࠣ 室  ᥣ-

        TASM2 #3-5/               = 73 =

        ⮢,     ꥬ 64.

                                  "஢"                         
        -----------------------------------------------------------------

              "஢" ࠢ ⥬ ᯮᮡ,    -
        ண ᥣ  ⥬    㣨      -
           㫥   .     ਭ-
         ᫥騥 祭:

                        AT                 PRIVATE
                        COMMON             PUBLIC
                        MEMORY             STACK
                        VIRTUAL

               ⠪ ᬮ  ᫥  ࠧ  ("饭
        ४⨢ । ᥣ⮢"),   ⨯ ஢-
        , ᯮ㥬  몠 ᮪ ஢.

              ஢ AT ਢ  ⮬,   砫  ᥣ
        㤥 ࠧ  㪠   .    
        ,  ⮣ ᥣ  ⨯ ஢ (-
        ⠭) AT ᯮ,    㯠   -
        ,  ⠪,  ᥣ    ⥬ -뢮 
        ᯫ . ਬ:

                .
                .
                .
        VGA_GRAPHICS_MEMORY SEGMENT AT 0A000h
        BitMapStart     LABEL   BYTE
        VGA_GRAPHICS_MEMORY ENDS
                .
                .
                .
                mov     ax,VGA_GRAPHICS_MEMORY
                mov     es,ax
                ASSUME  ES:VGA_GRAPHICS_MEMORY
                mov     cx,08000h
                sub     ax,ax
                cld
                rep     stosw
                .
                .
                .

        TASM2 #3-5/               = 74 =


        頥 ᪨ ࠭  VGA.

              ஢ COMMON ,  砫  ᥣ-
          砫 㣨 ᥣ⮢   ⥬        ࠢ-
         ⠪ ࠧ,   ᥣ  ४뢠  㣠.
        騩 ࠧ ᥣ ।⠢ ᮡ ࠧ 襣  ᥣ-
            .    ᯮᮡ ᯮ짮 ⨯ -
        ஢ COMMON ⮨  祭 䠩,   ஬ ।-
          ᥣ  COMMON,    㫥,    뫪 
         ᥣ,  祬  㫨  ᮢ⭮ ᯮ-
             ᥣ.

              ஢ PUBLIC 㪠뢠 騪,   㦭
        믮 ⥭  ᥣ   㣨  ᥣ⠬  
        ⥬    ,   祬 ᥣ ⠢  让
        ᥣ.  騩 ࠧ ᥣ ।⠢ ᮡ 㬬 ࠧ஢
          ᥣ⮢   ⨬ .  騩 ࠧ ᥣ⮢ PUBLIC 
         ॢ 64 (  ࠧ   㣨  ᥣ⮢).  
        PUBLIC ᯮ,  ᪮쪮 㫥 ᮢ⭮ ᯮ
            ᥣ,    । ᢮ ᮡ⢥-
         ६. ६  ᥣ PUBLIC   ४⨢
        GLOBAL  ᯮ ﬨ ᮢ⭮.

              ஢ MEMORY -  ⮦ ᠬ,   ⨯ PUBLIC.

              ஢ STACK 㪠뢠 騪,    㦭
        믮 ⥭  ᥣ⮢      ᥣ-
        ,   ந 䠩 .,  ⮡  믮 ணࠬ -
         SS:SP 㪠뢠   ⮣ ᥣ.    ᯥ樠
        ⨯ ஢,   ᯮ짮 ⮫쪮  -
            祣 .

              ஢ VIRTUAL ।  ᥣ  ᯥ樠쭮
        ,  㤥 ஢,   ,  -
        ᮥ  ६   㣮 ᥣ. ।-
        ,   ᥣ VIRTUAL ᮥ  ᥣ,    
        .  ⮣ ᥣ ᥣ VIRTUAL ᫥ ਡ. -
        ४⨢ ASSUME ᬠਢ ᥣ VIRTUAL,    த-
        ⥫᪮ ᥣ, 㣨 ᫮, ᥣ VIRTUAL -
        ,    ᥣ.  騪 ᬠਢ ᥣ
        VIRTUAL,   ,   㤥 ᯮ짮 ࠧ묨
        ﬨ.     ᮢ⭮ ᯮ짮  ࠧ 
        ᪨ , ᮤঠ騥  砥 䠩.

             , ⨯  ஢ PRIVATE 㪠뢠 騪,

        TASM2 #3-5/               = 75 =

          ᥣ  ᫥      㣨  ᥣ-
        ⠬.     । ᥣ,  
        묨  ⭮襭    ( ⮬  㦭  -
            䫨  ᥣ⠬  ⥬  ,
        ᯮ騬  㣨 . ᫨ ⨯ ஢  㪠-
        뢠,   ᥣ⮢  㬮砭  ⨯ ஢-
         PRIVATE.

                                                                               
        祭  "ᯮ짮"  ""
        -----------------------------------------------------------------

              "ᯮ짮"  ४⨢ SEGMENT ।祭 ⮫쪮
         ࠡ  ஬ 80386.  ஡  ⮬  -
        뢠   10.

              "" ᯮ  ࠢ 浪,  ஬
        騪 ࠧ頥 ᥣ.   ᥣ   ࠧ-
           뢭  ,  ᨬ   浪 
        室 .   ࠧ "饭 ४⨢ ।  ᥣ-
        ⮢    ,  ᯮ㥬  몠 ᮪ ஢.
            ᮡ  ᮣ襭.  ( ஡
          㯮冷稢 ᥣ⮢ ᪠뢠  ᫥饬 ࠧ.)

                    , ⨯,   ஢  ᥣ            
        -----------------------------------------------------------------

             騩 ࠧ ᥣ⮢   ࠭祭  ⮫쪮  㯭
          ६  믮 ணࠬ .   ࠧ ⤥
        ᥣ⮢   ॢ 64.

             ⨬,  ⨯  (᫨  )  -
          窨.     㭨   室-
         㫥,    ᯮ㥬   㫥 ⪠ 
         ⮦ ,     , 㪠  ⮬ 㫥. -
        ,    㡥,    ।  ᥣ 
        室  㫥      ਡ,   ⨢ 砥
        ࡮ ᥬ 㤥 ஢ 訡.

              ᯮᮡ  ⠪ 訡 砥  ⮬, -
          ਡ ⮫쪮  ࠧ  । ᥣ  -
        室 㫥.  ᫨  ୮ । ᥣ  ਡ
        㦥  ,   ࡮ ᥬ ⮬᪨ ᯮ
        ਡ,   ࢮ । ᥣ.


        TASM2 #3-5/               = 76 =

             , ᥣ   묨,   砥,  
          । ᥣ  ⮣,    ।騩
        ᥣ, ਬ:

                .
                .
                .
        DataSeg    SEGMENT PARA PUBLIC 'DATA'
                .
                .
                .
        DataSeg2   SEGMENT PARA PRIVATE 'FAR_DATA'
                .
                .
                .
        DataSeg2   ENDS
                .
                .
                .
        DataSeg    ENDS
                .
                .
                .

              饬 砥    ,  
         ࠩ   砩,      -
         ப.  ⮡ । ᥣ   ப,  
        筮  室  ,   ⥬  ⥪騩 ᥣ-
        ,   ⮡  ᤥ,   ॡ  ⥪饥  ᥣ-
        ,    ⥪ ப  ᥣ 祢.  -
         ᥣ⮢   । ᥣ,      
         ⥪饣 ᥣ, ਬ:

                .
                .
                .
        TEST    MACRO
                .
                .
                .
        TestSeg         SEGMENT WORD PRIVATE 'FAR_DATA'
                .
                .
                .
        TestSeg         ENDS
                .

        TASM2 #3-5/               = 77 =

                .
                .
                ENDM
                .
                .
                .

             ᫥ 襭   ᥣ ࡮ ᥬ 
         ᥬ஢  ᥣ,    ⨢ 
        砫  ᥣ.




        TASM2 #3-5/               = 78 =

                                   冷 ᥣ⮢                           
        -----------------------------------------------------------------

              ᭮   室 ᯮ  ⮬,  -
         ᥣ⮢  砥 䠩 ..  -, 冷,  -
        ஬ ᥣ ᫥  믮塞 䠩,    -
        .  -,  設⢥ 砥,   㦭 ᮡ
        冷 ᥣ⮢,     ஬ 몠 -
         ஢  ४⨢ DOSSEG.  ᫨  믮 
         몮 ᮪ ஢,   浪 ᥣ⮢ 筮 ࠢ
         ⮣ 몠.  ᫨   ணࠬ ⮫쪮  몥
        ᥬ  㪠뢠 ४⨢ DOSSEG,     㯮冷稢
        ᥣ⮢   ᮡ ᮣ襭  Microsoft,   
        冷 ᥣ⮢ 㤥 ᫥騬:

         - ᥣ  CODE;
         - ᥣ    ᮬ,  ⫨  CODE,   騥 
           DGROUP;
         - ᥣ, 騥  DGROUP:

               ) ᥣ  ᮬ, ⫨  STACK  BSS;
               ) ᥣ  BSS;
               ) ᥣ  STACK.

             ᫨   㧭  浪,    騪 ࠧ-
        頥  ᥣ,   ᯮ짮 ࠬ -
         ப /s,   㪠 ⨫ TLINK,  㦭 -
         ஡ 䠩 奬 ᥣ⮢,  ᬮ  䠩.

             ⠥ ,  ࠧ 㯮冷稢 ᥣ, -
            믮   몮 ᮪ ஢   -
         ४⨢ DOSSEG?   ᥣ   ॡ  
        ⢥   ,   ⮣ ,     
        祭,   ᤥ ஥ ᭥ ( ᪮쪮 ᫮,
        祬  ).

              ⢨   浪 ᥣ⮢ (ਬ, 
         ४⨢ DOSSEG) 騪 㯯   ᥣ-
              (    ᥣ  । 
        ""  ४⨢ SEGMENT).   㯯 ᥣ⮢  
        䠩 .EXE   ⮬ 浪,    騪  㦨-
        .   砥,  冷,  ஬  ꥪ
        䠩,    冷 ᥣ⮢  䠩 .EXE.

                稫 ᥣ,  ண 㯮冷祭  -
        ᠬ.    㯮冷稢 ᥣ    ?  

        TASM2 #3-5/               = 79 =

        ⠪    䠩 .EXE  ⮬ 浪,    騪
         㦨.   䠪஢  㤥 冷,  ஬
          䠩 .OBJ.  㣮 䠪 -  冷,   ஬
        ᥣ ࠧ饭   䠩 .OBJ.

             ४⨢ .SEQ 㪠뢠 ࡮ ᥬ,    ᥣ  
        䠩 .OBJ 㦭 ࠧ  ⮬ 浪,     ᫥ 
        室 䠩.  ᫥⥫쭮 㯮冷稢 ᥣ⮢ -
        冷  ᥣ⮢  室 㫥    冷 ᥣ-
        ⮢  䠩 .EXE.  ० ࠡ, ਭ  ࡮ ᥬ-
              㬮砭,   ⮬   ᥣ    㯮冷稢
        ᫥⥫쭮,  ᫨   ४⨢ .SEQ ( ᫨ 
        ᯮ ४⨢ .ALPHA).

             ४⨢ .ALPHA 㪠뢠 ࡮ ᥬ,   ᥣ 
        ꥪ⭮ 䠩 㦭 ࠧ  䠢⭮ 浪.   㯮-
        稢   䠢 冷 ᥣ⮢   室 㫥
           冷 ᥣ⮢  䠩 .EXE.     
        ᥬ  ० ࠡ ᯮ  㬮砭, ⮬,
        ⮡ ⮡ ணࠬ ࠢ쭮 ࠡ⠫,     -
         ᯮ짮  ४⨢.

             ⠪, ⥯    ᥣ,  ᢮ 㯮冷祭 
        ᠬ,   㯮冷祭    ᮮ⢥⢨  浪
          ᫥.     ࠢ 㯮冷稢 ᥣ⮢ 
           ᮮ⢥⢨  ⥬ 浪,   ஬  
        ꥪ  䠩,  ⠪     ४⨢ .SEQ  .ALPHA.  ᫨
        ࠭ ४⨢ .SEQ,    冷 ᫥ ᥣ⮢  -
        塞 䠩 .EXE 冷 ᫥ ᥣ⮢   室-
         㫥.

                ,  㯮冷稢 ᥣ⮢  -    
        ⮥.  ,    ࠭,   ਤ ᯮ 
        浪 ᥣ⮢: 筮    祭,    ,
            㯮冷稢 ᥣ⮢  ,   ࠢ,  
         몠 ᮪ ஢  ४⨢ DOSSEG.




        TASM2 #3-5/               = 80 =

                                    ४⨢ GROUP                            
        -----------------------------------------------------------------

             ४⨢ GROUP ᯮ  ஢   -
         ᥣ⮢    ,  ᫥ 祣  ᥬ  ⨬
        ᥣ⠬   ᮢ ⭮⥫쭮  ᥣ⭮ -
        .

             ।,    ணࠬ,  頥  -
           ᥣ.  筮  室 㦠 ᥣ
        ॣ  㪠뢠 ४⨢ ASSUME  ࠧ,    
        ᭠砫    ᥣ,   ⥬  㣮.  -
        쭮 ६⥫쭮  ॡ 譥  ६.    
        ᪮஢ ᥣ   㯯   DataGroup,  -
          ॣ DS 砫 DataGroup, ᯮ짮 ४⨢ ASSUME
        DS  㯯 DataGroup,  ⥬      ⮬
            ᥣ⮢. ਢ ਬ ணࠬ:

                .
                .
                .
        DataGroup       GROUP   DataSeg1,DataSeg2
                .
                .
                .
        DataSeg1        SEGMENT PARA PUBLIC 'DATA'
        MemVar1   DW    0
        DataSeg1        ENDS
                .
                .
                .
                mov     ax,DataGroup
                mov     ds,ax
                ASSUME  DS:DataGroup
                .
                .
                .
                mov     ax,[MemVar1]
                mov     [MemVar2],ax
                .
                .
                .

              祣  ॡ ᯮ짮 㯯,  
           १     ᥣ   ⨯
        ஢ PUBLIC?  ⢨⥫쭮,   ணࠬ,  -

        TASM2 #3-5/               = 81 =

         ⮫쪮  몥 ᥬ,    让  室  
        㯯,   ᫨  ,  筮   ᯮ짮.
        㯯 ᯮ  ᭮,   ࣠ 䥩 -
        ᥬ      몮 ᮪ ஢.   ⭮,  㯯
        DGROUP ᯮ  몠 ᮪ ஢,  ⮡    뫮
           ⥪,  樠஢   ⨯ 
        ⠭⠬ ⭮⥫쭮  ᥣ⭮ ॣ.

              ᯮ짮  㯯 ᥣ⮢ 㦭 ᮡ  -
        祢 ࠢ:   ᥣ  㯯      ᥣ-
          ࠧ஢  64,  ⠪      㯭  -
          ᥣ⭮  ॣ.  㦭      ⮬,  
        冷 ᥣ⮢    䠪஢ ( ⮬ 㦥 ᪠-
        뢠  ।饬 ࠧ),  ⮬, ᫨   㤥 -
        ,  ᥣ         㣠  ⥫쭮
        ﭨ.    室  -     ᥣ-
         㯯,   ᥣ    ।   
        㣨  砫  㫥,    ।.

             , ᫨    믮      몮 ᮪
        ஢  -  ணࠬ ᯮ ४⨢  DOSSEG, 
         室 ᯮ  ⮬,  ⮡ ᮡ  ᥣ
        DGROUP .    騪 ⮬᪨ ந
         ᥣ DGROUP.

              ᥣ  㯯   ॢ ࠧ  64, 
           易⥫쭮      뢭묨.  
        ᥣ⠬, 室騬  㯯,   㣨 ᥣ.

                   ਬ砭: ᫨  ᯮ 㯯  ᥣ⮢,  
              㦭    㧪 ᥣ ( 뫪  㯯) ᥣ
              ⭮ ᯮ짮  ४⨢  ASSUME    㯯.  
              ⨢  砥 ࡮ ᥬ 㤥 ஢ ᬥ-
               ⭮⥫쭮 砫 ᥣ,    砫 㯯, 
              ᫨ ᥣ ॣ 㪠뢠  砫 㯯.  -
              ,   ᫥饬 ࠣ ணࠬ  ⮬  ।饣
              । DGROUP  訡:

                .
                .
                .
                mov     ax,DGROUP
                mov     ds,ax
                ASSUME  DS:Stack        ; 㤥 祭 ४⭮
                                        ; ᬥ饭!
                .

        TASM2 #3-5/               = 82 =

                .
                .

                ⮣ 㦭 ᯮ짮 ᫥饥:

                .
                .
                .
                mov     ax,DGROUP
                mov     ds,ax
                ASSUME  DS:DGROUP
                .
                .
                .

                    ,  ᫨  㦠 ᥣ ॣ,
              ⮡  㪠뢠  㯯 DGROUP, 㦭 㡥,  
              ᯮ  ४⨢ ASSUME  㯯,    -
               ⠢  ᥣ⮢.

              ஠ᥬ  Microsoft  MASM  ᮤন  訡,
        ⭮  ᯮ짮  㯯 樨 OFFSET.  訡-
          ⠪    樠樨    ᮬ  
        ⪠  㯯.  楫 ᮢ⨬ ࡮ ᥬ ந-
          訡.  ⮡  ,  㦭  ⪠ (   
        ᯮ   樨 OFFSET   樠樨 ) 㪠-
        뢠 䨪 ८।  ᥣ⮢.  (஡    ⮬
        ᪠뢠     6  ࠧ " 뢠 ᯮ짮 
        ࠭  ⠡  ८। 㯯").




        TASM2 #3-5/               = 83 =

                                   ४⨢ ASSUME                            
        -----------------------------------------------------------------

             ४⨢ ASSUME (ࠧ㬥, ।)  
        ᮮ ࡮ ᥬ,    ᥣ  㯯 㪠뢠
         ᥣ ॣ.  ⨬,       ᠬ, 
        ⢨⥫쭠 㧪 ᥣ⭮ ॣ  뫪  
        ᥣ (    ⤥쭮   樨 MOV).
        祭 ४⨢ ASSUME ⮨  ⮬,  ⮡  ࡮  -
        ᥬ    ஢ ⨬  뫮  -
           饭   ⮬᪨  䨪 -
        ८। ᥣ⮢ (᫨  ॡ).

             ४⨢ ASSUME   ॣ CS  ᫥ । -
            室 㫥.  ⮬ ࡮ ᥬ-
         ,   ᥣ ࠧ㬥 ࠧ饭 権
        ( 㦭  믮 室,  맮  ⠭ 砫-
          ணࠬ).

                室     室   -
         㣨 ४⨢ ASSUME ( 㪠  ࠧ ᥣ
        ॣ஢).  ࠧ㬥  ᥣ    ᥣ⭮ -
           ,    ⮣ .   -
        ४⨢ ASSUME       ।  ᥣ-
         ॣ.

                । ᥣ ॣ   
        ᥣ,   㯯,   뤥 ᥣ  ⪨  
        樨 SEG.  ஬ ⮣,  㪠 ࡮ ᥬ,  -
           ᥣ ॣ  㪠뢠    ᥣ,
         ᯮ짮 祢 ᫮ NOTHING.

             ਢ ਬ ४⨢ ASSUME:

        Stack    SEGMENT    PARA STACK 'STACK'
             DB  512 DUP (0)
        Stack    ENDS
        TGROUP   GROUP      DataSeg1,DataSeg2
        DataSeg1 SEGMENT   PARA PUBLIC 'DATA'
                .
                .
                .
        DataSeg1 ENDS
        DataSeg2 SEGMENT   PARA PUBLIC 'DATA'
                .
                .

        TASM2 #3-5/               = 84 =

                .
        DataSeg2 ENDS
                .
                .
                .
        DataSeg3 SEGMENT   PARA PUBLIC 'CODE'
        MemVar   DW  0
                .
                .
                .
        CodeSeg  SEGMENT   PARA PUBLIC 'CODE'
                ASSUME  CS:CodeSeg,DS:TGROUP,SS:Stack,ES:NOTHING
        ProgramStart:
                mov     ax,TGROUP
                mov     ds,ax
                ASSUME  DS:TGROUP
                .
                .
                .
                mov     ax,SEG MemVar       ; 筮 DataSeg3
                mov     es,ax
                ASSUME  ES:SEG MemVar
                .
                .
                .
        CodeSeg ENDS
                END     ProgramStart


             ᫨  ४⨢ ASSUME 㪠뢠 㯯,  ।-
        ,    ᥣ ॣ 㪠뢠   砫  
        㯯 ᥣ⮢.  ,  ᫨  ४⨢  ASSUME  㪠뢠
        ᥣ,  騩  㯯,   ࠧ㬥,  ᥣ-
         ॣ 㪠뢠  砫 ⮣ ॣ,    㯯.
          맢 ஡,  ᪮ 筮 ᥣ ॣ
        ⠭ ⠪ ࠧ,  ⮡ 㪠뢠  砫 㯯,
          室   ᥣ⮢.  ਬ,   ॣ AX 㤥
        㦥  ୮ 祩 , ⠪  DS 㪠뢠  -
         DGROUP,  ४⨢ ASSUME ४⭮ 뢠,  ॣ
        DS 㪠뢠  砫 DataSeg2:

                .
                .
                .
        TGROUP   GROUP   DataSeg1,DataSeg2
        DataSeg1 SEGMENT PARA PUBLIC 'DATA'

        TASM2 #3-5/               = 85 =

                .
                .
                .
        DataSeg1 ENDS
        DataSeg2 SEGMENT PARA PUBLIC 'DATA'
        MemVar  DW      0
        DataSeg2 ENDS
                .
                .
                .
        CodeSeg  SEGMENT PARA PUBLIC 'CODE'
                ASSUME  CS:CodeSeg
                .
                .
                .
                mov     ax,TGROUP
                mov     ds,ax
                ASSUME  DS:DataSeg2     ; ࠢ쭮!
                                        ; (㦭 TGROUP)
                mov     ax,[MemVar]     ; 㤥 㦥 
                                        ; ࠢ쭮 ᬥ饭
                                        ; (⭮⥫쭮 DataSeg2  
                                        ; ⭮⥫쭮 㯯 TGROUP)
                .
                .
                .

             ᫨  ᯮ 饭 ४⨢ । ᥣ-
        ⮢,    饬 砥    室  㪠뢠  ४⨢
        ASSUME,  ⠪  ࡮ ᥬ  ᮮ⢥騥 ।-
          ᯮ㥬 ᥣ ⮬᪨.  ,  ᫨
          ᯮ짮  饭  ४⨢ । ᥣ⮢ 
           ᥣ ॣ஢,  㦭 㪠 ᮮ⢥-
         ४⨢ ASSUME. ਬ,  , ⮡ ॣ
        DS 㪠뢠  ᥣ .DATA,  ᥣ .CODE, ᥣ .FARDATA ,
        , ᭮  ᥣ .DATA:

                .
                .
                .
                .DATA
                .
                .
                .
                .FARDATA
                .

        TASM2 #3-5/               = 86 =

                .
                .
                .CODE
                mov     ax,@Data
                mov     ds,ax
                ASSUME  DS:@Data
                .
                .
                .
                mov     ax,@Code
                mov     ds,ax
                ASSUME  DS:@Code
                .
                .
                .
                mov     ax,@FarData
                mov     ds,ax
                ASSUME  DS:@FarData
                .
                .
                .
                mov     ax,@Data
                mov     ds,ax
                ASSUME  DS:@Data
                .
                .
                .

               㦥 ⬥砫,   ४⨢ ASSUME  ࡮  -
        ᥬ    뫪    砥 室 -
         䨪 ८। ᥣ⮢.  ਬ,    ᫥饬
        ࠣ  ணࠬ  樨,    뫪  MemVar,
        㤥 饭 䨪 ES: (᪮ ४⨢ ASSUME ४⭮
        㪠뢠,  १ ॣ DS   ᥣ,   -
        室 ६ MemVar):

                .
                .
                .
        DataSeg SEGMENT PARA PUBLIC 'DATA'
        MemVar  DB  ?
                .
                .
                .
        DataSeg ENDS
                .

        TASM2 #3-5/               = 87 =

                .
                .
        CodeSeg SEGMENT PARA PUBLIC 'CODE'
                ASSUME  CS:CodeSeg,DS:NOTHING,ES:DataSeg
                .
                .
                .
                mov     ax,DataSeg
                mov     ds,ax
                mov     es,ax
                mov     [MemVar],1
                .
                .
                .

               ,  ४⨢ ASSUME 㦭 ᯮ짮-
         ⭮,  ⮡   ६ ᮮ⢥⢮ ⢨⥫-
         祭 ᥣ ॣ஢.

                      饭 ४⨢ । ᥣ⮢               
        -----------------------------------------------------------------

              ⠫ 饭 ४⨢  ।  ᥣ⮢
         㦥 㤨   5.   ᭮ ᯥ 饭 -
        ४⨢ । ᥣ⮢,       㦤,  
          ᥣ ᮧ 饭묨 ४⨢ ।-
         ᥣ⮢.     ଠ,   ॡ   
        ᥤ  ࠡ,    ᫨  ᯮ ᬥ 饭 
        ⠭ ४⨢ । ᥣ⮢,   室.

                㯯  ᥣ⮢,  ᮧ     ४⨢
        .CODE,  .DATA, .DATA?, .STACK, .CONST, .FARDATA  .FARDATA? -
           ,  롨ࠥ  ४⨢ .MODEL.  (᫨  
        ,       ᪠뢠   4.) ⢥-
        ⢨  ﬨ   ᥣ⠬, ᮧ묨  饭-
         ४⨢ । ᥣ⮢,   ᫥ ⠡-
        :


        TASM2 #3-5/               = 88 =


                   9.1. ᯮ㥬  㬮砭
               ᥣ  ⨯  ᢥ嬠  
        -----------------------------------------------------------------
        ४⨢       ࠢ  ஢       㯯
        -----------------------------------------------------------------
        .CODE       _TEXT      WORD         PUBLIC      'CODE'     DGROUP
        .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
        .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
        .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
        .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
        .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
        .STACK      STACK      PARA         STACK       'STACK'    DGROUP
        -----------------------------------------------------------------

                   9.2. ᯮ㥬  㬮砭
                  ᥣ  ⨯    
        -----------------------------------------------------------------
        ४⨢       ࠢ  ஢       㯯
        -----------------------------------------------------------------
        .CODE       _TEXT      WORD         PUBLIC      'CODE'
        .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
        .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
        .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
        .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
        .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
        .STACK      STACK      PARA         STACK       'STACK'    DGROUP
        -----------------------------------------------------------------

                   9.3. ᯮ㥬  㬮砭
                 ᥣ  ⨯  ।  
        -----------------------------------------------------------------
        ४⨢       ࠢ  ஢       㯯
        -----------------------------------------------------------------
        .CODE        _TEXT  WORD         PUBLIC      'CODE'
        .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
        .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
        .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
        .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
        .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
        .STACK      STACK      PARA         STACK       'STACK'    DGROUP
        -----------------------------------------------------------------


        TASM2 #3-5/               = 89 =


                   9.4. ᯮ㥬  㬮砭
               ᥣ  ⨯  ⭮  
        -----------------------------------------------------------------
        ४⨢       ࠢ  ஢       㯯
        -----------------------------------------------------------------
        .CODE       _TEXT      WORD         PUBLIC      'CODE'
        .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
        .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
        .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
        .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
        .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
        .STACK      STACK      PARA         STACK       'STACK'    DGROUP
        -----------------------------------------------------------------

                   9.5. ᯮ㥬  㬮砭
           ᥣ  ⨯  让  ᢥ塮让  
        -----------------------------------------------------------------
        ४⨢       ࠢ  ஢       㯯
        -----------------------------------------------------------------
        .CODE       _TEXT      WORD         PUBLIC      'CODE'
        .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
        .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
        .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
        .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
        .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
        .STACK      STACK      PARA         STACK       'STACK'    DGROUP
        -----------------------------------------------------------------

              ᫥ ,  筮 ⨫,     ணࠬ-
        , ᯮ 饭 ४⨢ । ᥣ⮢,  
        ॡ 㪠뢠 ४⨢ ASSUME, GROUP   ENDS.  ४⨢
        .MODEL  ⮬᪨  믮 ᮮ⢥騥 ४⨢ ASSUME
         ࠭   ( ⮬ ᯮ ᥣ,  -
          ਢ  ⠡). ४⨢ .MODEL 믮
        ⠪ । 㯯  DGROUP ( ᮮ⢥⢨  ⠡栬).

              ᠥ ४⨢ ENDS,  砫  ᥣ  -
         饭 ४⨢ । ᥣ ⮬᪨ -
        蠥 ⥪騩 ᥣ (᫨  ).

              ⥯ ᬮਬ      ⢥
        饭   ४⨢:  ४⨢  .DATA?,  .CONST,  .FARDATA  
        .FARDATA?  ᠬ  ४⨢ .FARDATA -  ⢥ -
        ४⨢,  㦭 ᯮ짮  ணࠬ, ᠭ ⮫-
          몥 ᥬ.  ⠫ ४⨢ 㦠  ᮮ⢥-

        TASM2 #3-5/               = 90 =

        ⢨ ᯮ㥬 ᥣ⮢ 몠 ᮪ ஢.

             ४⨢ .DATA? 稭 ᥣ,  ᮤন  DGROUP
        樠஢   ⨯.   ᥣ .DATA
         .DATA?  室    ⮩  㯯,   ४⨢ .DATA?
          ᮢᥬ  ,   ᯮ짮  ⮫쪮  ४⨢
        .DATA   ⥫   । 樠஢
          ᥣ .DATA (஬  砥,     ᮡ
        ᮣ襭 몮 ᮪ ஢).

                ⥣,   ४⨢ .DATA?,  ४-
         .CONST,   稭 ᥣ, ᮤঠ騩 -⠭
          ⨯.    ⠪  ࠧ ⠭  ᥣ
        .DATA   ४⨢ .CONST,  ᫨    㦭  ᮡ
        ᮣ襭, ਭ  몠 ᮪ ஢.

             ४⨢ .FARDATA ᯮ  ᮧ ᥣ 
        쭥 ⨯,  㭨쭮   室  ( 
         ᥣ  ᯮ ᮢ⭮  㣨 ﬨ).

              ᥣ 뢠  FAR_DATA,   ⨯ ஢-
         PRIVATE,  ⮬      㣨  ᥣ⠬.
        ४⨢ .FARDATA   ।  64  -
            㫥. 筮, ᫨  ᯮ ४-
         .FARDATA,    ⠭ ᥣ ॣ ⠪,  ⮡
         㪠뢠   ᥣ, ਬ:

                .MODEL  SMALL
                .DATA
        InitValue       DW  0
                .FARDATA
        MemArray        DW  100 DUP (?)
                .CODE
                .
                .
                .
                mov     ax,@Data
                mov     ds,ax
                mov     ax,[InitValue]
                mov     ax,@FarData
                mov     di,OFFSET MemArray
                mov     cx,100
                cld
                rep     stosw
                .
                .

        TASM2 #3-5/               = 91 =

                .

             ⨬,   ।।  ⪠  @FarData ᮤন 
        ᥣ, ।  ४⨢ .FARDATA.

              ᥣ,  ।   ४⨢ .FARDATA, 
        ᯮ ᮢ⭮  㣨 ﬨ,  ᮢ⭮  -
          ﬨ  ᯮ짮  ⤥  ६    ᥣ
        .FARDATA   ᯮ짮 ४⨢ GLOBAL.  ਬ,  -
        㥬  ६ MemVar 㤥 㯭  㣨  -
        .

                .MODEL  SMALL
                .FARDATA
                GLOBAL  MemVar:WORD
        MemVar  DW      0
                .
                .
                .

                  ६    뫠  㣮 㫥,
        ਬ:

                .MODEL   SMALL
                GLOBAL   MemVar:WORD
                .DATA
                .
                .
                .
                .CODE
                .
                .
                .
                mov     ax,SEG MemVar
                mov     ds,ax
                ASSUME  DS:SEG MemVar
                mov     ax,[MemVar]
                .
                .
                .

             ⬥⨬,   MemVar,    쭮  ६
        (GLOBAL),  ᫥   ⮣,   뢠 - ᥣ.
         室,  ⠪  쭮  ᠭ    ६
         믮   ᥣ ⮩ ६,   
        ᥣ⮢.

        TASM2 #3-5/               = 92 =


             ४⨢ .FARDATA?  筠 ४⨢ .FARDATA,    
        ᮧ ᥣ ⨯ PRIVATE    FAR_BSS.   FAR_BSS
        ᯮ  몠 ᮪  ஢    樠஢
          쭥 ⨯.  ᫨   ࣠ 䥩  몮
        ᮪ ஢,    ᫥ ।  樠஢
          쭥  ⨯   ᥣ .FARDATA    .FARDATA?.
         .FARDATA   ⥫ 64   쭨 -
          饭,    ᫨  ॡ  64  쭥
        ⨯,   ⭮ ॡ ᯮ짮 ⠭ ४⨢
        । ᥣ⮢.

             ᫨   ᯮ ४⨢  .FARDATA?,  ।।
        ⪠ @FarData? ᮤন  ᥣ, ।  ४⨢
        .FARDATA,  ஥    ᯮ짮  ४⨢ ASSUME  
        㧪 ᥣ ॣ஢.




        TASM2 #3-5/               = 93 =

                  ਬ ணࠬ, 饩  ᪮쪨 ᥣ⮢          
        -----------------------------------------------------------------

              ணࠬ ᮤন  ᥣ    ᥣ-
         .  ,  ⭮,   뢠騬 ਬ஬
        ணࠬ஢  ᯮ짮 ᪮쪨 ᥣ⮢,  
         ᯮ ⮬  ணࠬ,  ᮤঠ饩 ⭨  
        ப.   ணࠬ   ।⠢  ४祭 
        ᥣ⠬,  㧪 㪠⥫ ⨯ "ᥣ:ᬥ饭"  맮
          㣨 ᥣ⮢.

        ;
        ; ணࠬ  樨 ᯮ짮 ᪮쪨 ᥣ⮢
        ;   
        ;
        ; ப 뢠  ᮫, ࠭   ᥣ
        ; ,   ப  㣮 ᥣ  (
        ; ⮬ 믮   ८ࠧ   ॣ),
        ;  ⥬ ப 뢮  ᮫.  ⥭, 뢮 
        ; ஢ ப ᯮ 㭪樨  㣮 ᥣ
        ; .
        ;
        STACK           SEGMENT PARA STACK 'STACK'
                        DB      512 DUP (?)
        Stack           ENDS

        MAX_STRING_LENGTH   EQU 1000

        SourceDataSeg   SEGMENT PARA PRIVATE 'DATA'
        InputBuffer     DB      MAX_STRING_LENGTH DUP (?)
        SourceDataSeg   ENDS

        DestDataSeg     SEGMENT PARA PRIVATE 'DATA'
        OutputBuffer    DB      MAX_STRING_LENGTH DUP (?)
        DestDataSeg     ENDS

        SubCode         SEGMENT PARA PRIVATE 'DATA'
                ASSUME  CS:SubCOde
        ;
        ; ணࠬ  뢠 ப  ᮫.  ப
        ; ⬥砥 ᨬ  ⪨,  ८ࠧ
        ;   ᨬ  ⪨/ॢ ப (
        ; 祬  뢮 ந室 ॢ  ᫥ ப).
        ;  襭 ப  0.
        ;
        ; :

        TASM2 #3-5/               = 94 =

        ;    ES:DI -  ᯮ ப
        ;
        ; 뢮: 
        ;
        ; ᯮ㥬 ॣ: AX, DI
        ;
        GetString       PROC FAR
        GetStringLoop:
                mov     ah,1
                int     21h     ;  ᫥騩 ᨬ
                stosb           ; ࠭ 
                cmp     al,13   ;   ⪨?
                jnz     GetStringLoop ; ,   믮
                mov     BYTE PTR es:[di],10
                mov     BYTE PTR es:[di+1],0 ;  ப
                                ; ᨬ ॢ ப  0
                ret
        GetString       ENDP
        ;
        ; ணࠬ  ஢ ப  ८ࠧ 
        ;   ॣ.
        ;
        ; :
        ;    DS:SI - ப  ஢
        ;    ES:DI - , 㤠 㦭  ப
        ;
        ; 뢮: 
        ;
        ; ᯮ㥬 ॣ: AX, DI, SI
        ;
        CopyLowerCase   PROC FAR
        CopyLoop:
                lodsb
                cmp     al,'A'
                jb      NotUpper
                cmp     al,'Z'
                ja      NotUpper
                add     al,20h          ; ८ࠧ  
                                        ; ॣ (᫨  孨
                                        ; ॣ)
        NotUpper:
                stosb
                and     al,al           ; cப 蠥 0?
                jnz     CopyLoop        ; , ᪮஢ 㣮
                                        ; ᨬ
                ret

        TASM2 #3-5/               = 95 =

        CopyLowerCase   ENDP
        ;
        ; ணࠬ  뢮 ப  ᮫.
        ;
        ; :
        ;    ES:DI -  㥬 ப
        ;
        ; 뢮: 
        ;
        ; ᯮ㥬 ॣ: AH, DL, SI
        ;
        DispleyString   PROC    FAR
        DisplayStringLoop:
                mov     dl,[si]         ;  ᫥騩 ᨬ
                and     dl,dl           ;  0, 騩 ப?
                jz      DisplayStringDone ; , 믮
                inc     si              ; 뫪  ᫥騩 ᨬ
                mov     ah,2
                int     21h             ; 뢥 ᨬ
                jmp     DisplayStringLoop
        DisplayStringDone:
                ret
        DisplayString   ENDP
        SubCode         ENDS

        Code    SEGMENT PARA PRIVATE 'CODE'
                ASSUME  CS:Code,DS:NOTHING,ES:NOTHING,SS:Stack
        ProgramStart:
                cld                     ; 㢥祭  ப
                                        ;  ॣ஢-
                                        ; 㪠⥫
        ;
        ;  ப  ᮫  InputBuffer.
        ;
                mov     ax,SourceDataSeg
                mov     es,ax
                ASSUME  ES:SourceDataSeg
                mov     di,OFFSET InputBuffer
                call    GetString       ;  ப  ᮫
                                        ;  ࠭   
                                        ; ES:DI
        ;
        ; 뢥 ᨬ ॢ ப, ⮡ த 
        ; ᫥ ப.
        ;
                mov     ah,2

        TASM2 #3-5/               = 96 =

                mov     dl,10
                int     21h
        ;
        ; ஢ ப  InputBuffer (室 ) 
        ; OutputBuffer (室 ), ८ࠧ   
        ; ॣ.
        ;
                push    es
                pop     ds
                ASSUME  DS:SourceDataSeg
                mov     ax,DestDataSeg
                mov     es,ax
                ASSUME  ES:DestDataSeg
                mov     si,OFFSET InputBuffer   ; ᪮஢  DS:DI
                mov     di,OFFSET OutputBuffer  ;  ES:DI,
                call    CopyLowerCase           ; ८ࠧ  
                                                ; ॣ
        ;
        ; 뢥 ப ( 㪢).
        ;
                push    es
                pop     ds
                ASSUME  DS:DestDataSeg
                mov     si,OFFSET OutputBuffer
                call    DisplayString           ; 뢥 ப, ᯮ-
                                                ;   
                                                ; DS:SI,  ᮫
        ;
        ; 믮.
        ;
                mov     ah,4ch
                int     21h
        Code    ENDS
                END     ProgramStart

             ⨬,    ਬ । ᭮ ணࠬ ᫥-
         ணࠬ.    ⮣, ⮡  ०-
         뫮,  ⠪  ணࠬ  ᭮ ணࠬ 室
         ࠧ ᥣ .  ᫨  ᭮  ணࠬ  ᫥
        ࢮ,       맮 ணࠬ  ਤ 㪠
        ८। FAR PTR,  ⠪  ࡮ ᥬ   믮-
          ⮬᪮  ᥬ஢ ० 뫮 쭥
        ⨯.    ᯮ짮  ਬ ࣠樨  ணࠬ
          맮 ணࠬ ᯮ  뫪, -
         ࡮ ᥬ  ⮬᪨ ஢ 쭨 맮-
          ⠪ ணࠬ.

        TASM2 #3-5/               = 97 =


                㣨 ⭮襭  ணࠬ 쬠 .  
        뫪    ணࠬ  ᯮ    㪠⥫
        (ᥣ:ᬥ饭),  , ᫨  室,  ᭮ ணࠬ
        祭 ॣ஢ ES  DS ⠭   ࠧ  ᥣ
        .    ᯮ짮  ஢ ப
         ८ࠧ    ॣ ப  権.  -
           樨 LODS  㬮砭 ᯮ ॣ DS, 
         STOSW - ES,   樨 쭮 室  ᯮ짮-
              ணࠬ,   ॡ    ᥣ⠬
        ࠧ.






        TASM2 #3-5/               = 98 =

                      10.  80386  㣨              
        -----------------------------------------------------------------

                    ᬠਢ ணࠬ஢  몥 -
        ᥬ   8086.  (ᢥ   ⮬  ᬮ५
        ⠪  8088,  ᯮ   IBM PC 
        XT,  ᪮   ᭮ ⥭  8086,  -
        饭  8-ࠧ來  設 .)  8086 -   -
        ⢥ ,  ন ࡮ ᥬ஬.  -
          ᥬ⢮  ࠧ ஢ 8086,  ,   
        iAPx86,  ᥬ⢮ ⥬᪨ ᮯ஢,  ࠧ-
        ⨥ ᮯ 8087.

              ࠧ ஬  ਨ  iAPx86  ,  
        ᮬ,  80386,  ஬ ᮭ -
         ⠫ ⮫  묨,   -.   , 
          ਨ iAPx86   襭  ࠢ 
        ﬨ  8086.   ᬮਬ ணࠬ஢-
           80386: 㢨,   ࠧ  ࡮ -
        ᥬ ᯮ짮 ।⢮  80386,   
        묨  ॣࠬ,  ० 樨  ﬨ 
        80386. ᫥ ⮣  ᬮਬ 魮 ᢮⢮ ࡮ ᥬ
        -   । 16-ࠧ來  32-ࠧ來 権
         ᥣ⮢,   ⠪  ਬ ணࠬ    
        80386.  ,   ⪮ ஠㥬,  ࠧ -
          80386     ᯮ짮 ᮯ-
        ஬ 80287  80387.

                    롮  ணࠬ  ᥬ ⨯             
        -----------------------------------------------------------------

              㬮砭  ࡮  ᥬ  ᥬ   ⮫쪮 
         8086.  ⮡ ࡮ ᥬ   ন  㣨
          ਨ iAPx86,   ᮯ,    㪠뢠
        ᮮ⢥騥 ४⨢. 騥 ४⨢ ᮮ ࡮ -
        ᥬ,  ⨯  㦭 ন  ᥬ-
         :

          .186       .286C       .287      .386C       .387       .8087
          .286       .286P       .386      .386P       .8086

               ४⨢   㪠뢠    室 䠩-
        ,  ᫥ 祣  ࠧ 㯠  ⢨.     室
        䠩  ࠧ ᪮쪮 ४⨢ 롮 ⨯ ,
         ⮬ ⥪騬 ஬ ⠥  ,  ࠭  

        TASM2 #3-5/               = 99 =

        ᫥ 㪠 ४⨢.

                    㪠 ४⨢ .8086,   ன
        ࡮ ᥬ 㤥 ᭮ ন ⮫쪮    8086.
        (  ⠫쭮     뫪   8086 -
          ࠢ ⥯    8088.)

               ⢥  ਬ  ਢ  ᫥  㭪,  
        ᪫뢠   32-ࠧ來 祭,  ᯮ  8086,
        ⥬ 80386,   ᭮ 8086:

                DOSSEG
                .MODEL  SMALL
                .CODE
        Add32           PROC
                mov     ax,[bp+4]       ;   
                                        ; 筨 1
                mov     dx,[bp+6]       ;   
                                        ; 筨 1
                mov     bx,[bp+8]       ;   
                                        ; 筨 2
                mov     cx,[bp+10]      ;   
                                        ; 筨 2
                .386                    ; ᯮ짮  ᫮
                                        ; ॣ  80386
                shl     eax,16
                mov     ax,dx
                rol     eax,16          ;  32  筨 1
                                        ;  ॣ EAX
                mov     dx,cx
                mov     edx,16          ;  32  筨 2
                                        ;  EDX
                mov     dx,bx
                add     eax,adx         ; ᫮ 筨 1  筨 2
                rol     eax,16
                mov     dx,ax           ;   
                                        ; १  ॣ AX
                .8086
                ret
        Add32           ENDP
                END

                                                                               
         80186  80188
        -----------------------------------------------------------------


        TASM2 #3-5/              = 100 =

               80186 (  ஬ ਨ iAPx86)
         ᭮ 祭  8086.   80186 ন-
          樨  8086,  ⠪ ᪮쪮  -
        権  ७   権  8086.
        ஬ ⮣,  믮  権 (ᮡ  ᫥-
          ᮢ )  80186 ࠡ⠥ ⢥ ॥
         8086, ⮬ ணࠬ, ᠭ  ࠡ  -
          8086,    80186 믮 ⥫쭮 -
        ॥.

               80188  ணࠬ ᮢ⨬   -
        ஬  80186.  ⢥  ⫨稥    砥 
        ⮬,    80186  16-ࠧ來 設 ,   -
         80188 - 8-ࠧ來.




        TASM2 #3-5/              = 101 =

                                                                               
        襭 ᥬ஢   80186
        -----------------------------------------------------------------

             প  ࡮ ᥬ  ᥬ஢  -
         80186 ࠧ蠥  ४⨢ .186.

                ᬮਬ    ७ 樨 -
         80186.  ஡ ଠ    80186
        ᮤন   3 "ࠢ筮 㪮⢠".

             ।  砫  ᬮ७ ⬥⨬,    8086 
        ᯮ     権,   㤥 㦤.
          ⮣  ணࠬ,   ᮤঠ    
        (  ७)  80186,    8086 -
          .

                                                                               
         樨
        -----------------------------------------------------------------

               権  80186 ᮤন  ᫥騥 
        樨:

           BOUND      INS       OUTS      PUSHA
           ENTER      LEAVE     POPA

                                樨 PUSHA  POPA                        
        -----------------------------------------------------------------

             樨 PUSHA   POPA ।⠢ 䥪⨢ ।⢮,
          ண      ⥪  ᥬ
         ॣ஢. 権 PUSHA   ⥪ ᥬ  -
        ஢  ᫥饬 浪: AX, CX, DX, BX, SP, BP, SI, DI. -
         POPA  ॣ DI,  SI,  BP, BS, DX, CX  AX (
         믮 ⢨, ⭮ ⢨ 樨 PUSHA). -
         SP 樥 POPA  ,   ⮣  祭
        SP 㢥稢  16 -   ॣ஢, ᥭ  ⥪
         樨 PUSHA,  祭 SP, ᥭ  ⥪  -
        樨  PUSHA,  頥 樥 POPA  뢠.   ᥣ-
         ॣ,  䫠  㪠⥫ 権 PUSHA   POPA  
        .

              ਬ, :

                .186

        TASM2 #3-5/              = 102 =

                .
                .
                .
        SampleFunction  PROC
                pusha
                .
                .
                .
                popa
                ret
        SampleFunction  ENDP
                .
                .
                .

        ࠭  8  ॣ஢    権, 
        16 権,   ॡ   ࠧ쭮 ࠭-
          祭 ॣ஢.  ( 뢠  ࠧ襭 ᯮ-
         ᯥ樠 権  80186 㪠뢠  ४-
        ⨢ .186.)

             ,     PUSHA 믮 ॥,  祬 -
        ᥬ ⤥ 権 PUSH,   , 祬   
        樨  PUSH.  ᫨    ࠭ ⮫쪮 ᪮쪮 -
        ஢,   ᤥ    樨 PUSH.  
        砭  ᤥ ⭮⥫쭮 権 POPA  POP.

             । ᯮ짮 ᯥ᪨   80186 -
        権 (⠪,   PUSHA  POPA)   ࠧ    -
        ᥬ஢   ४⨢ .186.




        TASM2 #3-5/              = 103 =

                               樨 ENTER  LEAVE                        
        -----------------------------------------------------------------

             樨  ENTER  LEAVE ᯮ  ⮣, ⮡ -
          ⬥ ࠭ ⥪,   । ࠬ
          ᪨ ६ 㯭 ⭮⥫쭮 ॣ-
         BP.  樨 ᮡ   ࣠樨 䥩
        ᥬ  몠,  ਥ஢묨  ࠡ  ⥪ (-
        ਬ,  몮 ). (. ,  ᮤন ଠ  -
        樨 䥩 㭪権 ᥬ  ࡮ , ਫ, 
        ஬    䥩  ࡮ ஫,   ,  
        뢠 䥩  ࡮ ᪠,   ⠪ ਫ, -
        饭 䥩  ࡮ ᨪ.)

               ENTER ࠭ ॣ BP 뢠饩 ணࠬ,
        ⠭  ⠪ ࠧ,  ⮡  㪠뢠  砫 -
        ।  ࠬ஢ (᫨  )   ࠭ ⥪,
        ⠭,    室, SP  뤥 ࠭⢠
          ६,     㪠⥫  -
         ⥪ 몠 ᮪ ஢   ࠭ ⥪  (᫨ 
        室).

               LEAVE  ⢨, ⭮ 樨 ENTER,
         ⠭ BP  SP   ﭨ, ஥   ।
        믮 ᮮ⢥饩 樨 ENTER.

             ਬ,  ᫥    ᯮ ENTER  -
         ᮢ⨬   ࠭ ⥪ ( ⮬ 20 ⮢ १ࢨ-
           ६),    LEAVE ᯮ-
        ,  ⮡ ⬥ ࠭ ⥪   ⠭  ࠭  ⥪
        뢠饣 :

                .
                .
        SampleFunction  PROC
                enter 10,1
                .
                .
                .
                leave
                ret
        SampleFunction  ENDP
                .
                .
                .


        TASM2 #3-5/              = 104 =

              ࠭ 樨  ENTER ।⠢ ᮡ 16--
         ஬筮 祭,  饥 ᫮ ⮢,  १ࢨ-
              ६   ࠭ ⥪.  ன
        ࠭ 樨 ENTER -  8-⮢  ஬筮 祭,
        饥  ஢  㭪樨,   ன  ᮧ-
          ࠭ ⥪.  ࠭ , ᪮쪮 ࠧ -
         ᪮஢ 㪠⥫ ࠭ ⥪  ࠭ ⥪ 뢠-
            ࠭ ⥪.

             ⬥⨬,   ⮡  ࠢ   뢠騩 ,
        ᫥  樨  LEAVE  室   RET.  
        LEAVE ⬥ ⥪ ࠭ ⥪,     믮  
        ࠢ.

             樨  ENTER  LEAVE  ࠭  ॣ஢ -
        뢠饣 .   ⮩ 楫  ᫥  ᯮ짮  樨
        PUSHA  POPA ( PUSH  POP).




        TASM2 #3-5/              = 105 =

                                    BOUND                            
        -----------------------------------------------------------------

              BOUND ஢,  16-⮢ 祭 室-
            ,   ᬥ묨 ᫮ ,
         ⮬  ࠭ ᠭ  ,  ᯮ  -
        ।⢥   ࠭楩.   ࠭ ,
         祭  ,  ⮬   ᨬ -
            -32768  +32767 ⥫쭮.  祭,  ᮢ騥 
          孥 ࠭楩,  ᬠਢ,   ਭ騥
         .

               BOUND  ᯮ 筮  ⮣,  ⮡ -
         室  ࠭ ᨢ.  ਬ,  ᫥饬 ࠣ-
         ணࠬ ஢,  室  祭 ॣ BX 
          0  99 ⥫쭮 । ᯮ짮    -
        ⢥   100-⮢ ᨢ TestArray.

                .
                .
                .
                .DATA
        TestArrayBounds LABEL   DWORD
                DW      0       ;  ࠭ ᨢ
                DW      99      ;  ࠭ ᨢ
        TestArray       DB      100 DUP (?)
                .
                .
                .
                .CODE
                .
                .
                .
                mov     ax,@Data
                mov     ds,ax
                .
                .
                .
                bound   bx,[TestArrayBounds]
                mov     al,[TestArray+bx]
                .
                .
                .

             ᫨ 祭 ॣ BX  室   ,
          뢠 INT 5. । ᯮ짮 樨

        TASM2 #3-5/              = 106 =

        BOUND  , 筮, ⠭ ࠩ 뢠.

               ࠭  樨 BOUND ।⠢ ᮡ 16-ࠧ-
        來 ॣ 饣 祭,  ᮤঠ騩 ஢塞  -
        .  ன ࠭ 樨 BOUND -   ᫮, ᮤ-
        饥 .     ᫮  ᮤন  16-⮢  
        ࠭   襬 ᫮  16-⮢  ࠭   
        ⢥ 襣 ᫮.

             ⭮⥫쭮 樨  BOUND ᫥ ᤥ   -
        :  㪠⥫ 権, ᨬ  ⥪  樨 -
         INT 5  室 ஢塞 祭  ࠭  -
        ,  㪠뢠    ᠬ    BOUND,       ᫥
        . ᫨   㤥 ᪮४஢ ࠡ稪 -
         INT 5 । 믮 樨 IRET,     -
         BOUND ᭮ ᣥ 뢠 INT 5,   ⠪  ᪮-
        .  ⮬  ࠡ稪 뢠 INT 5  権 BOUND
         뢥 ᮮ饭   ணࠬ  믮 -
        樨 IRET,  ᪮४஢ ᫮ 室  ࠭ -
         । 믮 樨 IRET  த ࠡ.




        TASM2 #3-5/              = 107 =

                                 樨 INS  OUTS                         
        -----------------------------------------------------------------

              樨 INS    OUTS  ᯥ稢  䥪⨢ ।
          ⠬ -뢮  .

              MOVS ६頥     ( ᫮) 
         -뢮,    㪠뢠 ॣ DX,   ᨢ 
        ,   㪠뢠 ES:DI, 㢥稢 DI  1 (  2)
        ᫥ ⮣,    ( ᫮) 㤥 । ( 㬥-
         SI, ᫨ ⠭ 䫠 ࠢ).  ॣ DX -
         INS  .     砥  ப 権, -
         믮    ,  ᯮ짮  ES    ⢥
        ᥣ⭮ ॣ 楫 ᥣ ८। .

              OUTS ६頥     ( ᫮) 
        ᨢ  ,    㪠뢠 DS:SI,   -뢮-
        ,   㪠뢠 ॣ DX,  㢥稢 祭 SI  1
        ( 2) ᫥ 뫪   ( ᫮),   㬥
        ॣ SI,  ᫨ ⠭ 䫠 ࠢ.  ॣ DX -
         OUTS  .    䨪 ८।  ᥣ-
           ᥣ ॣ,  ⫨  ॣ DS.
         ᫥饬 ࠣ ணࠬ  INSB  (⮢ ଠ)
        ᯮ   ஢  300h        -
        -뢮 3000h,   ⥬ ᯮ  OUTSB  -
        ஢ ஢  ⮣  ⮢      -뢮
        3001h:

                .
                .
                .
                cld
                mov     ax,@Data
                mov     ds,ax
                mov     es,ax
                mov     dx,3000h
                mov     di,OFFSET Buffer
                mov     cx,300h
                rep     insb            ; ᪮஢ 300  
                                        ;   
                mov     dx,3001h
                mov     si,OFFSET Buffer
                mov     cx,300h
                rep     outsb           ; ᪮஢ 300h  
                                        ;   
                .

        TASM2 #3-5/              = 108 =

                .
                .




        TASM2 #3-5/              = 109 =

                                                                               
        ७ ᨨ 権  8086
        -----------------------------------------------------------------

                権  80186  ᫥騥 -
        ७ ᨨ 権  8086:

                IMUL            ROL             SAR
                PUSH            ROR             SHL
                RCL             SAL             SHR
                RCR

                        ᥭ  ⥪ ஬ 祭                
        -----------------------------------------------------------------

               ६    8086     ⥪ ⮫쪮
        ॣ஢ ࠭  ࠭  ,  80186 
           ⠪  ஬ 祭:

                push 19

             ᥭ  ⥪ ஬ 祭  ᯮ짮
         ।  ⥪ 㭪 ࠬ஢-⠭.  ਬ, 
         8086  㭪樮쭮 맮 :

                Average(5, 2);

         ᫥騩 :

                mov     ax,2
                push    ax
                mov     ax,5
                push    ax
                call    _Average
                add     sp,4

           稨  80186   ८ࠧ  ᫥-
        騩 :

                push    2
                push    5
                call    _Average
                add     sp,4

             ⨬,    8086   樨  PUSH 
        ।⢥ 祭, ᨭ⠪ ࡮ ᥬ ᨨ 2.0

        TASM2 #3-5/              = 110 =

            室 䠩 ⠪ .  
         㤥  㦥,        ꥪ⭮ 
        10-⮢ ᫥⥫쭮,    -
        , ࠭  ॣ  䫠.

                横᪨ ᤢ c ।⢥묨 祭ﬨ       
        -----------------------------------------------------------------

               ६    8086    ⮫쪮 믮
        ᤢ  横᪨ ᤢ  1    ᫮ ,  
        ॣ CL,   80186  믮 ᤢ  横-
         ᤢ  祭-⠭:

                .
                .
                .
                ror     ax,3
                shl     dl,7
                .
                .
                .

              㤮 ᯮ짮  믮 ᤢ   ᪮쪮
        ⮢  室 㧪  ॣ CL 稪 .  -
        ਬ, ᫥騩   8086 믮 㬭 ᮤন-
         ॣ AX  256:

                .
                .
                .
                mov     cl,8
                shl     ax,cl
                .
                .
                .

               ᯮ짮  権  80186  ਭ
        :

                shl     ax,8

                          ।⢥ 祭                 
        -----------------------------------------------------------------


        TASM2 #3-5/              = 111 =

               8086    㬭  ⮫쪮 8-  16-ࠧ來
        ॣ  ࠭    AL  AX,  ࠧ १  
        ॣ AX     ॣ஢ DX:AX.    80186 -
        ᬮ७    㬭,  ᯮ, 
        16-ࠧ來 㬭 㤥 ࠧ  16 .

                    㬭 ६ 16-ࠧ來 -
          16-ࠧ來 ।⢥ 祭,   १ -
        ࠭ ⭮  16-ࠧ來 ॣ.  ਬ, ᫥ -
         㬭 ᮤন DX  4,   ந 뢠 
        ⭮  DX:

                imul    dx,4

              ࠭,      ।⠢  ᮡ   
        16-ࠧ來 ॣ 饣 祭,  ६ -
        筨    ᮬ⥫  ਥ    ந-
        . ன ࠭,   ।⠢ ᮡ ।-
        ⢥ 16-⮢ 祭, -  㣮 ᮬ⥫.

                ଠ 㬭 ६ 16-ࠧ來  -
           ࠭    16-⮢ ।⢥ -
        ,   ࠭  १   16-⮢ ॣ. -
        ਬ, ᫥    㬭  ᮤন ॣ DX 
        600h  頥 ந  ॣ CX:

                imul    cx,dx,600h

             筮, ᫥  㬭 16-ࠧ來  -
        祭  [BX+SI+1]  3  頥 ந  ॣ AX.

                imul    ax,[bx+si+1],3

                ଥ  樨 IMUL  ࠭ ।⠢
        ᮡ ਥ.   ࠭    16-ࠧ來 騬
        ॣ஬. ன ࠭,     16-ࠧ-
        來 騬 ॣ஬  祩  ,    筨
          ᮬ⥫. ⨩ ࠭,   
        16-⮢ ।⢥ 祭,  -  㣮 ᮬ⥫.

             ᫨  㬠,   ⠭ ᭮,   ࢠ  
         㬭 -   ⢨⥫쭮 ⢮ ன 
        . ਬ, ᫥ :

                imul    si,10


        TASM2 #3-5/              = 112 =

          ᮪饭 ଠ 樨:

                imul    si,si,10

                 樨 IMUL  ᮮ⢥騩  -
           㤥 .    ,  㤮 
         ᯮ짮     樨  IMUL  
         ࠭,       ॣ ᯮ  
        筨,   ਥ.

                  㬭      १,
          頥  16 ,  . ᫨  -
        騥  (।,   १   ।⠢  ᮡ
        祭  ),  ⠭ 䫠 ७  ९-
        .    ଠ 樨 㬭 㬭  祭  
           祭  ࠧ, ᪮ १
          ⮫쪮 16 ⮢,  訥 16 ⮢ ந (-
        祭  १ ६  祭  , ⠪ 
         祭) ᥣ ᮢ.  ⥫쭮,  -
        祭   㬭  ᯮ짮 ⮫쪮 
        IMUL.




        TASM2 #3-5/              = 113 =

                                     80286                            
        -----------------------------------------------------------------

              80286   ஬ ਨ iAPx86, 
         ࠭ ࠭祭    1 ,   
        ন  ⠪    㠫 .  
        80286 ন  樨 ஢ 8089  80186  -
         ⮣  ᯮ짮 ⥫ 樨, ᯥ-
        稢騥 ࠢ   ࠧ⮩ ⥪ன.

              80286   ० 権:  ॠ ० 
        饭 ०.   80286  ॠ쭮 ० ࠪ-
        ᪨ 筠 ࠡ  80286 (  ᯥ稢  
          権,    80186).   ०,  -
        ஬  ,  ᯮ饬  80286 (⠪,   PC
        AT    IBM) ࠡ 設⢮ ਪ த⮢ (-
        , ࡮ ᪠  Quattro)  樮 ⥬ PC-DOS.

             ।⢠ ࠢ        80286  㯭
        ⮫쪮  饭 ०.  ⮫쪮  ⮬ ०  -
           믮 ᪮쪮    뢠  ﭨ
          㣠 .   ⮬  ᮢ  , ꥬ
        ன ॢ蠥 1 .  ⮬ ०    -
        ஬ 80286 ࠡ⠥ 樮 ⥬ OS/2.

              ࠡ   饭 ०   80286 ᯮ-
         ᫥騥 樨:

                CLTS    LIDT    LMSW
                LGDT    LLDT    LTR

              樨  80286 ।祭 ⮫쪮  -
        짮 樮 ⥬.   ਪ  ணࠬ  
        室 ( ) ᯮ짮 樨 饭
        ०.  ᯮ짮  権  饭 ०  -
         80286  饬 砥 쭮 ᫮.   ⥬   -
         㪮⢥ ᢥ  㤥.

               80286    ⥫ -
        ﭨ  ॣ 䫠:       -뢮
        ਢ஢ ஢.    樨 饭  ०,
          ।祭 ⮫쪮  ᯮ짮  ⥬ ண-
        ࠬ ᯥ祭,  ⮬ ਪ ணࠬ   
          ࠡ.    80286  ⠪ ᪮쪮  -
        ஢,   묨  ࠡ ⮫쪮     権
        饭 ०.   ॣ ,  ॣ ᫮ ﭨ

        TASM2 #3-5/              = 114 =

        設  ॣ ⠡  ਯ஢. ਪ묨 -
        砬  ॣ  ᯮ, ⮬   㪮⢥
          㤥  뢠.




        TASM2 #3-5/              = 115 =

             ᥬ஢  ᯮ짮 権  80286      
        -----------------------------------------------------------------

              ࡮ ᥬ ࠧ ᥬ஢  ᯮ짮-
         権  80286 (饭 ०)     -
         ४⨢ .286. ( ᮢ⨬   ࠭ ﬨ
        ᥬ஢  ࡮  ᥬ  ন  ⠪  ४⨢
        .286.)

             ⨬,   ४⨢ .286  ࠧ蠥 প 
        権  8086  80186,  ⠪   80286 -
        ন      権   ࠭ ஢
        ਨ iAPx86.

             প 権  饭  ०    80286
        ࠧ蠥   ४⨢ .286.  樨 饭 ०
         80286 ⠪ ࠧ  ४⨢ .286 (   
        믮 ४⨢ .286).

              ஡  ଠ     80286
        ᮤন   3 "ࠢ筮 㪮⢠".

              ,    8086  80186    ᯮ
        樨 饭 ०  80286.  ⮣  ண-
        ࠬ,  樨 饭 ०,   8086
          80186  ࠡ  .    80386 ন
         樨 饭 ०  80286,  ⠪    -
        樨 饭 ०.




        TASM2 #3-5/              = 116 =

                                                                               
         80386
        -----------------------------------------------------------------

              80386 ।⠢ ᮡ ⥫    -
        樨 ப஢,  ᯥ稢   ७ -
        樨,  ७  32-ࠧ來 ॣ஢,  ᥣ
        ࠧ஬    4     㫨஢ ६
        ࠡ ᪮쪨 ஢ 8086,   ᤢ  横᪨
        ᤢ,  ࠭ ,  ᪮ ⠩, 祬  -
          ᥬ⢠ iAPx86 ( ਢ  襩 ᪮-
         ࠡ)  ..     ,   প 
        ⥩  80386 室 ᯮ짮   -
        ७  몠  ᥬ  ஢ 8086/80186/80286.  ࡮
        ᥬ ᯥ稢   ७   80386,
        ন   ०  ।⢠.

              80386  -  ࠧ ,   ᪮쪮 -
        浪  ᫮,  祬  8086,  ⮬    ᬮ
         墠  ᯥ ணࠬ஢   80386.
          ᬮਬ,   প  80386 ᯥ-
         ࡮ ᥬ.

                   롮 ० ᥬ஢   80386           
        -----------------------------------------------------------------

                80286,   80386   ⨯  -
        権 - ਢ஢  ਢ஢. ਢ-
         樨  믮  ணࠬ.   ਢ-
        ஢   樨      믮  ⮫쪮  ணࠬ,
        믮  ⥪饬 ஢ ਮ 0 ( ਢ-
        ஢ ஢).  ਢ஢ 樨  80386
        ।⠢ ᮡ ७  ⢠  ਢ஢  -
        権   80286 (樨 饭 ०)  ⠪
        ।祭 ⮫쪮  ᯮ짮 樮 ⥬.

             প ਢ஢  権    80386
        ࠧ蠥  ४⨢ .386. ( ᮢ⨬   ࠭
        ᥬࠬ ࡮ ᥬ ন ⠪  ४⨢ .386,
          ⠪  ࠧ蠥  ᥬ஢  権 
        80386.)

             ⨬,  ४⨢ .386  ࠧ蠥 ⠪ ᯮ짮-
           権   8086  80186,  ,  ஬ ⮣,
         ਢ஢ 権   80286,  ᪮
          80386  ন   権  ࠭

        TASM2 #3-5/              = 117 =

        ஬ ਨ iAPx86.  ᯮ짮 ਢ஢ -
        権    80386 ࠧ蠥 ⠪   ४⨢ .386
        (   믮 ४⨢ .386).       80386
        ন    ਢ஢ 樨  80286,
        ४⨢ .386  ࠧ蠥 প  ਢ஢
        権  80286.




        TASM2 #3-5/              = 118 =

                                  ⨯ ᥣ⮢                          
        -----------------------------------------------------------------

               80386 ন  ᥣ ࠧ஬
        64  (   80286)   ᥣ  4 
        ॡ   ⨯ ᥣ⮢ - USE16  USE32.

              뫪  ᥣ ࠧ஬ 64 16-ࠧ來 ᬥ饭 -
         ࠭     ᭮ ॣ (BX,  SI,  DI
         BP),   ᯮ짮  ⢥ ।⢥ ᬥ-
        .  ⮬ ० ࠡ⠥  80286 ( 8086).  -
         80386 ᥣ⠬,  騬 ᨬ ࠧ 64,   ⨯
        ᯮ짮 USE16, ਬ:

                .386
                .
                .
                .
        DataSeg Segment USE16
        Var1    DW      ?
        Ptr1    DW      Var1
        DataSeg         ENDS
                .
                .
                .
        CodeSeg SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,DataSeg
                mov     fs,ax
                ASSUME  FS:DataSeg
                mov     [Var1],0         ; ⠭ Var1  祭 0
                mov     bx,[Ptr1]        ; 㧨 16-ࠧ來
                                         ; 㪠⥫  Var1
                inc     WORD PTR fs:[bx] ; 㢥 祭 Var1
                .
                .
                .
        CodeSeg         ENDS
                .
                .
                .

             ⬥⨬ ᯮ짮  FS  -      ⥫
        ᥣ⮢ (  GS)  80386.

             ⬥⨬ ⠪,    ᬥ饭  ࠭        

        TASM2 #3-5/              = 119 =

        32-ࠧ來  ॣ஢    80386   ᯮ짮
         樨  ᥣ USE16,  ᫨ ᫨ 稭  ᬥ饭  
        ॢ蠥 0FFFFh (65535).

              뫪     祩  4-⮢ ᥣ 㦭
        ᯮ짮 32-ࠧ來 ᬥ饭 ᠭ     32-ࠧ-
        來 ॣ஢  㪠뢠 ।⢥.  ⠬ -
         80386,    ᨬ  4 , -
         ⨯ USE32, ਬ:

                .386
                .
                .
                .
        BigDataSeg      SEGMENT USE32
        Var1    DW      ?
        Ptr1    DD      Var1
        BigDataSeg      ENDS
                .
                .
                .
        CodeSeg SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,BigDataSeg
                mov     fs,ax
                ASSUME  FS:BigDataSeg
                mov     [Var1],0          ; ⠭ Var1  祭 0
                mov     eax,[Ptr1]        ; 㧨 32-ࠧ來
                                          ; 㪠⥫  Var1
                inc     WORD PTR fs:[eax] ; 㢥 祭 Var1
                .
                .
                .
        CodeSeg         ENDS
                .
                .
                .

             ⬥⨬ ᯮ짮    ⢥  㪠⥫  ॣ EAX.
         80386  ᯮ짮   ⢥    -
              ᭮ ॣ  ᥬ 32-ࠧ來 
        ॣ஢ (EAX,  EBX, ECX, EDX, ESI, EDI, EBP  ESP). ( -
        ஡ .   ࠧ " ० 樨").

              ८।  ᯮ㥬  㬮砭 ࠧ ᬥ-
        饭  ࠭  ᯮ짮 樨 SMALL  LARGE.

        TASM2 #3-5/              = 120 =

         SMALL ਢ  ⮬,   㤥 ᯮ짮 16-ࠧ-
        來 ᬥ饭,  LARGE 㦤 ᯮ짮 32-ࠧ來 ᬥ-
        饭. ਬ:

                .386
                .
                .
                .
        CodeSeg SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,DateSeg
                mov     ds,ax
                ASSUME  DS:DataSeg
                mov     ax,[LARGE TestLoc]
                .
                .
                .
        CodeSeg ENDS

                .
                .
                .
        DataSeg SEGMENT USE32
        TestLoc DW      0
        DataSeg ENDS
                .
                .
                .

              ᯥ譮 ᯮ  ०  뫪    TestLoc
        (  TestLoc  室    ᥣ USE32).   ⮬ 
        LARGE ਬ  ⮣,  ⮡ 뫪  TestLoc  ⢫-
             32-⮢ ᬥ饭.   ८। LARGE
         ஢  訡,  ⠪  ᥬ  ।,
           ०饩 뫪  ᥣ CodeSeg ⨯ USE16 ᯮ-
         16-ࠧ來 ᬥ饭.

              ᠬ  ⢨ 権 SMALL  LARGE   ⮭,
        祬 ⮩ 롮  16  32-ࠧ來 ࠧ஬ ᬥ饭. -
         SMALL 㪠뢠 ࡮  ᥬ,      
        㦭  ᥬ஢  ᯮ짮 16-ࠧ來 ० -
        樨  8086,     ᮢ ⮫-
          64 .  㣮 ஭,  LARGE 㪠뢠 ࡮
        ᥬ,     㦭 ᥬ஢  ᯮ-
           32-ࠧ來 ० 樨 (.   ࠧ
        " ० 樨"),     ᮢ 

        TASM2 #3-5/              = 121 =

        4 ⠬ .

             ਬ, :

                .
                .
                .
                .386
        CodeSeg SEGMENT USE16
                .
                .
                .
                mov     ax,[SMALL ebx+esi+1]
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

        ᥬ  :

                mov     ax,[bx+si+1]

                SMALL 㪠뢠 ࡮ ᥬ,   㦭
        ᯮ짮 16-ࠧ來 ० 樨  8086,  -
        ⮬  EBX  ESI  ᥬ㥬  ᯮ ॣ
        BX  SI.  :

                .
                .
                .
                .386
        CodeSeg SEGMENT USE16
                .
                .
                .
                mov     ax,[SMALL eax+ecx+1]
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

        TASM2 #3-5/              = 122 =


        ᥬ஢  㤥, ⠪  ࠦ EAX+ECX+1  -
         ⨬ 16-ࠧ來 ० 樨.  ( 㣮 ஭,
          㢨   ࠧ  "  ०  樨",  EAX+ECX+1
        ।⠢ ᮡ ⨬ 32-ࠧ來 ० 樨.)

              ஡      SMALL  LARGE    -
        ⢨  ᥣ⠬ USE16  USE32 ᪠뢠   ࠧ-
          "蠭 ᯮ짮 16-  32-ࠧ來 権  ᥣ-
        ⮢".   ⮬ ࠧ ⠪  롮 ᥣ⮢ USE16 
        USE32.

              裡  ᯮ짮  ᥣ⮢  USE16  USE32 
        祭  ,  騩 ࠧ ᢥ 室.  
        ᭥  ⮣      ࠧ "32-ࠧ來 㪠⥫
        権".

             ᫨  । ᥣ    USE32,   USE16,
          ᥬ஢  80386 ᥣ ࠧ㬥 USE32.




        TASM2 #3-5/              = 123 =

              饭 ᥣ ४⨢  ⨯ ᥣ⮢  80386       
        -----------------------------------------------------------------

             ᫨  ᯮ  ४⨢ .386,  饭 ४⨢
        । ᥣ⮢,    㬮砭 ᥣ ࠢ 
        ࠭  ᫮ (DWORD).   , ᫨ , 
        ,    ᯮ  80386 ॥ ࠡ-
          묨, ஢묨  ࠭  ᫮.

               ᯮ 饭 ४⨢  ।  ᥣ-
        ⮢, ࡮ ᥬ  ᥣ USE32, ᫨ ४⨢
        .386 㪠 । ४⨢ .MODEL,   ᥣ USE16, ᫨ -
        ४⨢ .386 㪠 ᫥ ४⨢ .MODEL.  ਬ,  ᫥-
        饬 ࠣ ணࠬ ᮧ 32-⮢   ᥣ  -
        :

                .386
                DOSSEG
                .MODEL  LARGE
                .DATA
                .
                .
                .
                .CODE
                .
                .
                .

          ᫥饬 ࠣ ᮧ 16-⮢   ᥣ:

                DOSSEG
                .MODEL  LARGE
                .386
                .DATA
                .
                .
                .CODE
                .
                .

                              48-⮢ ⨯  FWORD                      
        -----------------------------------------------------------------

                ᯮ짮 ᥣ⮢ USE32  ⮨ 

        TASM2 #3-5/              = 124 =

        ⮬,  ࠧ 㪠⥫ 쭥 ⨯ (   㪠-
          ଥ "ᥣ:ᬥ饭")  祩  ᥣ USE32 -
         6  ,       4 ,  ⠪  ᬥ饭  ᥣ
        USE32  ࠧ 32 . ਬ,  ᯮ짮  ᥣ-
         USE16 쭨 㪠⥫   ࠧ஬ 8000h ⮢ -
          4   㦠 ᫥騬 ࠧ:

                .386
                .
                .
                .
        DataSeg SEGMENT USE16
        Buffer  DB      8000h DUP (?)
        BufferPtr LABEL DWORD
                DW      OFFSET Buffer
                DW      SEG    Buffer
        DataSeg         ENDS
                .
                .
                .
        CodeSeg         SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,DataSeg
                mov     ds,ax
                ASSUME  DS:DataSeg
                les     bx[BufferPtr]   ; 㦠  ES:BX 16-
                                        ; ⮢ ᥣ  16-
                                        ; ⮢ ᬥ饭 Buffer
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

              ᯮ짮   ᥣ USE32 㪠⥫ 쭥 ⨯
         Buffer 뢠  6   㦠  ᫥騬 ࠧ:

                .386
                .
                .
                .
        DataSeg SEGMENT USE32
        Buffer  DB      8000h DUP (?)

        TASM2 #3-5/              = 125 =

        BufferPtr LABEL FWORD
                DD      OFFSET Buffer
                DW      SEG    Buffer
        DataSeg         ENDS
                .
                .
                .
        CodeSeg         SEGMENT USE32
                ASSUME  CS:CodeSeg
                mov     ax,DataSeg
                mov     ds,ax
                ASSUME  DS:DataSeg
                les     ebx[BufferPtr]  ; 㦠  ES:EBX 16-
                                        ; ⮢ ᥣ  32-
                                        ; ⮢ ᬥ饭 Buffer
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

             ⬥⨬ ᯮ짮  ⨯  FWORD. 祭 -
         FWORD   6 .  筮  BYTE PTR, WORD
        PTR  DWORD PTR  ᯮ짮  FWORD PTR.

                lqs     esi,FWORD PTR [BufferPtr]

              । 6-⮢ ६    ⠪  
        ४⨢ DF:

                .386
                .
                .
                .
        DataSeg SEGMENT USE32
        FPtr    ?
        DataSeg ENDS
                .
                .
                .
        CodeSeg SEGMENT USE32
                ASSUME  CS:CodeSeg
                mov     ax,DataSeg
                mov     ds,ax

        TASM2 #3-5/              = 126 =

                ASSUME  DS:DataSeg
                mov     eax,OFFSET DestinationFunction
                mov     DWORD PTR [FPtr+4],ax
                jmp     [FPtr]
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .




        TASM2 #3-5/              = 127 =

                                     ॣ                             
        -----------------------------------------------------------------

               80386 騥 ॣ,  ॣ 䫠   㪠-
        ⥫  権   8086 㢥祭  ࠧ  32 ,
        ஬ ⮣    ᥣ ॣ.   . 10.1
          ॣ஢  80386,  ⮬ ७ 
         80386  ࠢ  ஬ 8086 客.


                   31                16 15                 0
                   ----------------------------------------- \
                   |###################|   AH    |   AL    |  |
           EAX     |###################|-------------------|  |
                   |###################|        AX         |  |
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|   BH    |   BL    |  |
           EBX     |###################|-------------------|  |
                   |###################|        BX         |  |
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|   CH    |   CL    |  |
           ECX     |###################|-------------------|  |
                   |###################|        CX         |  |
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|   DH    |   DL    |  |
           EDX     |###################|-------------------|  |  騥
                   |###################|        DX         |  | ॣ
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|                   |  |
           ESI     |###################|        SI         |  |
                   |###################|                   |  |
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|                   |  |
           EDI     |###################|        DI         |  |
                   |###################|                   |  |
                   -----------------------------------------  |
                   -----------------------------------------  |
                   |###################|                   |  |
           EBP     |###################|        BP         |  |
                   |###################|                   |  |
                   -----------------------------------------  |

        TASM2 #3-5/              = 128 =

                   -----------------------------------------  |
                   |###################|                   |  |
           ESP     |###################|        SP         |  |
                   |###################|                   | /
                   -----------------------------------------
                   -----------------------------------------
                   |###################|                   | ⥫
           EIP     |###################|        IP         | 権
                   |###################|                   |
                   -----------------------------------------
                   -----------------------------------------
                   |###################|                   | 
           EFLAGS  |###################|     FLAGS         | 䫠
                   |###################|                   |
                   -----------------------------------------
                   31                16 15                 0

                                       15                  0
                                       ---------------------
                                       |                   | \
                                CS     |                   | |
                                       |                   | |
                                       --------------------- |
                                       --------------------- |
                                       |                   | |
                                DS     |                   | |
                                       |                   | |
                                       --------------------- |
                                       --------------------- |
                                       |                   | |
                                DS     |                   | |
                                       |                   | |
                                       --------------------- |
                                       --------------------- | C
                                       |                   | | ॣ
                                ES     |                   | |
                                       |                   | |
                                       --------------------- |                             --------------------- |
                                       --------------------- |
                                       |###################| |
                                FS     |###################| |
                                       |###################| |
                                       --------------------- |
                                       --------------------- |
                                       |###################| |
                                GS     |###################| |

        TASM2 #3-5/              = 129 =

                                       |###################| |
                                       --------------------- |
                                       --------------------- |
                                       |                   | |
                                SS     |                   | |
                                       |                   | |
                                       --------------------- /
                                       15                  0


             . 10.1   80386.

             ஬ ⮣    80386  ᪮쪮 ᯥ樠
        ॣ஢,  ᪮쪮   ᪮쪮 ᮢ⨬  ஬
        80286, ࠡ  묨  ⮫쪮   ਢ஢-
         権.      80286,  ॣ ᯮ-
         ⮫쪮 ⥬ ணࠬ ᯥ祭,  ⮬  
        㪮⢥     ᪠뢠.




        TASM2 #3-5/              = 130 =

                              32-ࠧ來 騥 ॣ                      
        -----------------------------------------------------------------

             32-ࠧ來 ॣ 饣 祭 뢠 EAX, EBX,
        ECX, EDX,  ESI, EDI, EBP  ESP. 訥 16   ॣ஢ -
        ࠧ ⢮ 16-ࠧ來 ॣ஢   8086, 
         㦥    .  ਬ,  訥 16  ॣ EAX
        ।⠢ ᮡ ॣ AX. 筮, 訥 8  ॣ
        EAX ।⠢ ᮡ ॣ AL.   १  ࠧ -
         ॣ EAX  ⥯       ࠧ-
         :  32-⮢ ॣ EAX, 16-⮢ ॣ AX 
        8-⮢ ॣ஢ AH  AL.   ᠬ  ⭮    ॣࠬ
        EBX, ECX  EDX.

             32-ࠧ來 騥 ॣ    80386  ᯮ
        筮 ⠪,   16-  8-ࠧ來 ॣ. ਬ,  -
         ࠣ ணࠬ  EAX 뢠 1,  ॣ EBX  -
          祭 0,   祭 ॣ EAX c뢠 
        EBX:

                .
                .
                .
                mov     eax,1
                sub     ebx,ebx
                add     ebx,eax
                .
                .
                .

             32-ࠧ來 騥  ॣ  ᯮ짮 ⠪  -
        ࠧ,    16-ࠧ來 ॣ.

              饭  32-ࠧ來 ॣࠬ     ⮫쪮
          让 ⮪:   ।⢥ ᯮ짮-
         訥 16 ⮢ 32-ࠧ來  ॣ,    16-ࠧ來
        ॣ. ᫨     ᯮ짮 訥 8  ॣ AX,
           ᫠  ॣ AH,  ᫨   ᯮ-
         訥 16 ⮢ ॣ ESI,  ॣ,   -
         뫠  SI.    ⭮ ᯮᮡ 뫠,
        ᪠,  訥 16 , ਬ, ॣ EAX.   -
           ᬥ蠭 ࠡ  祭ﬨ  ࠧ஬  
        ᫮   ᫮,  ⠪ ⭮  .

             ⮡      訬 16 ⠬ 32-ࠧ來 -
        ,   믮 横᪨ ᤢ 16 ⮢  

        TASM2 #3-5/              = 131 =

        ࠢ,     訬 16 ⠬ ॣ  ᭮ -
          ॣ 横᪨ ᤢ  16. ਬ,  ᫥-
        饬 ࠣ ணࠬ  ॣ AX 㦠 16-⮢  -
        祭, 믮 横᪨ ᤢ ॣ EDX  16 , -
         ⠢ ( ⠬) 襥  襥 ᫮ EDX, AX
        頥  ॣ DX,  ᭮ 믮 ⠭ -
          襣 ᫮  EDX:

                .
                .
                .
                mov     ax,[Sample16BitValue]
                ror     edx,16
                mov     dx,ax
                ror     edx,16
                .
                .
                .

              १  稬 ᫥騩 䥪: 祭, ࢮ-
        砫쭮 㦥  ॣ AX,   १ 頥  -
        襥 ᫮ EDX.     㤭⥫쭠 楤, 믮
          ⠪ ,    .   㯯
        ᤢ  80386  믮  樨 ROR -
         ⮫쪮 3 横.




        TASM2 #3-5/              = 132 =

                                                                               
        32-ࠧ來 ॣ 䫠
        -----------------------------------------------------------------

             襥 ᫮ ॣ 䫠  80386 筮 -
         䫠    8086.  訥  16  ॣ 䫠
         8086 ᮤন   䫠.     䫠-
          뢠,  ࠡ⠥      80386 
        㠫  8086,   㣮 䫠 ।祭    -
        짮  ࠧࠡ⪥ । ⫠.  ਪ ணࠬ-
         ᯥ祭  䫠 筮  ᯮ.

                           32-ࠧ來 㪠⥫ 権                   
        -----------------------------------------------------------------

             ⥫ 権   80386  ࠧ 32 ,
         ⫨砥   16-⮢  㪠⥫  権  
        8086.  ७ 㪠⥫ 権 ন ᥣ
         ࠧ஬  4 .

             ७ 㪠⥫ 権    80386  ᮧ
          ᫮      ᢥ 室  .
        ਬ, ᫥騩  ᭮ । ᢥ 室 쭥-
         ⨯   16-⮢ ᥣ  32-⮢ ᬥ饭:

                jmp     [FWORD  PTR     JumpVector]

             ᬮਬ, , ᫥饥:

                jmp     [DWORD PTR JumpVector]

              ,  32-⮢  ᢥ  室  ⨯,  
        ᢥ 室 쭥 ⨯  16-⮢ ᥣ⮬  16--
         ᬥ饭?   ࠭ DWORD     
          ⨯ 室.

                 ਩ 樨 SMALL   LARGE.  -
        :

                jmp     SMALL [DWORD PTR JumpVector]

        ᥬ,   ᢥ  室  쭥 ⨯  ,
         16-⮢ ᥣ⮬  16-⮢ ᬥ饭, ᠭ
         JumpVector, 

                jmp     LARGE [DWORD PTR JumpVector]

        TASM2 #3-5/              = 133 =


        ᥬ,   ᢥ  室   ⨯  ,
         ⥪騬 祭 ॣ CS   32-⮢  ᬥ饭,
        ᠭ  JumpVector.  ࢮ 砥  SMALL 㪠뢠
        ࡮ ᥬ,  室 㦭 ஢,  室
         ᥣ USE16.  ᥣ USE16 32-⮢ ᢥ ࠭-
         樨 室   16-⮢ ᥣ  16--
          ᬥ饭.    ஬ 砥  LARGE 㪠뢠 ࡮
        ᥬ,  室 㦭 ஢,  믮騩
         ᥣ USE32.  ᥣ ⨯ USE32 32-⮢ ᢥ -
        室 ⮨ ⮫쪮  16-⮢ ᬥ饭.

             ⬥⨬,  樨 SMALL   LARGE  㪠뢠    
        ਬ   ᪮:    権  -
        祭.   樨 SMALL  LARGE 㪠뢠    
        ᪮,     ࠧ ࠭,   砥 -  ࠧ-
         室.    樨 㪠뢠  ᪮,  
          ࠧ . ਬ,   㪠뢠 ࡮ -
        ᥬ,   㦭 ᯮ짮  뫪  JumpVector 32--
        ⮢  ᬥ饭,     ᮮ頥 ,  㦭  ஢
        祭,  ᠭ  JumpVector,  32-⮢ ᬥ饭 -
         ⨯,     16-⮢ ᥣ  16-⮢
        ᬥ饭  ⨯:

                jmp     [LARGE DWORD PTR JumpVector]

             ⮬   蠥 室 ஡ । ⨯ -
        室.

              ⤥  ࠦ 樨 LARGE  SMALL  ᯮ-
          ,  ⠪    ᪮. ਬ, ᫥-
        騩    ᢥ 室 쭥 ⨯  16-⮢
        ᥣ    16-⮢  ᬥ饭,   ᠭ      ६
        JumpVector  ࠧ஬    ᫮,   ᠬ  
          32-⮢ ᬥ饭:

                jmp     SMALL   [LARGE DWORD PTR JumpVector]




        TASM2 #3-5/              = 134 =

                                ᥣ ॣ                       
        -----------------------------------------------------------------

               8086  ६ ᥣ ॣࠬ,  ন-
           8086     ᥣ ॣ
        -  FS  GS.     ॣ  ।祭  -
        ⭮ 㭪樨,      ० 樨  
        㬮砭   ᯮ.   ⮣ ᯮ짮 ॣ஢ FS 
        GS   易⥫,    㤮  -
        饭    ᪮쪨 ᥣ ࠧ.

              FS   GS ᯮ ⠪,      -
         ᯮ ॣ ES:    䨪 ८।-
         ᥣ. 䨪 ८।  㪠뢠 :

                .386
                .
                .
                .
        TestSeg SEGMENT USE16
        SCRATCH_LEN     EQU     1000h
        Scratch         DB      SCRATCH_LEN     DUP (?)
        TestSeg         ENDS
                .
                .
                .
        CodeSeg  SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,TestSeg
                mov     fs,ax
                mov     bx,OFFSET Scratcn
                mov     cx,Scratch_LEN
                mov     al,0
        ClearScratch:
                mov     fs:[bx],al
                inc     bx
                loop    ClearScratch
                .
                .
                .
        CodeSeg ENDS
                .
                .

            ४⨢ ASSUME:


        TASM2 #3-5/              = 135 =

                .386
                .
                .
                .
        TestSeg SEGMENT USE16
        SCRATCH_LEN     EQU     1000h
        Scratch         DB      SCRATCH_LEN     DUP (?)
        TestSeg         ENDS
                .
                .
                .
        CodeSeg  SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,TestSeg
                mov     gs,ax
                ASSUME  GS:TestSeg
                sub     bx,bx
                mov     cx,SCRATH_LEN
                mov     al,0
        ClearScratch:
                mov     [Scratch+bx],al
                inc     bx
                loop    ClearScratch
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

              ᫥ ਬ ४⨢  ASSUME  GS:TestSeg  㪠뢠
        ࡮ ᥬ,     饭    ६
         TestSeg 㦭 ⮬᪨    䨪  ८।
        ( ⫨稥  㯠   ॣ-㪠⥫), ⮬ 
        䨪 ८।  㪠뢠   㦭.    䨪
        ८।  ᮤন   믮塞 ,    
         樨,  頥     ॣ
        FS  GS.  ⥫쭮,  ⠬   ,  ᥣ
        FS  GS ।⥫쭥  ᯮ짮  ᥣ  ॣ  DS
        ( ES  ⢥ ਥ  ப 樨).

                                 ० 樨                         
        -----------------------------------------------------------------


        TASM2 #3-5/              = 136 =

              80386 ন  ० 樨  -
        ஢ 8086,  80186  80286   ⠪ ᯮ짮  -
         樨.   ⢥  ॣ   ᯮ짮
            쬨 32-ࠧ來  ॣ஢,    ⢥ -
        ᭮ ॣ -   8 32-ࠧ來  ॣ஢, -
         ॣ SP. (ᯮ,   8086  ᯮ짮-
          ⢥  ⮫쪮 ॣ BX   BP,      ⢥
         - ⮫쪮 SI  DI.)

             ।, ਬ,    ॣ  EDI  ᮤন 祭
        10000h,   EAX ᮤন 4.  ᫥騩  㤥 ।⠢
        ᮡ  ⨬    80386,  㢥稢
          ᬥ饭 10006h (10000h + 4 + 2)  ᥣ,    
        㪠뢠 DS:

                inc     BYTE PTR        [edi+eax+2]

             ਢ   ਬ  ⥩ 樨  -
         80386:

                .
                .
                .
                mov     ecx,[esp+4]
                mov     ebx,[esp+8]
                mov     WORD PTR [exc+ebx],0
                .
                .
                .

                  ०  樨    80386
        ᯮᮡ   襥.   ᫥    -
          㬭  2,  4  8.   ⮣ ᫥  ᭮
        ॣ  頥 *2, *4  *8 ( ।⢮ 뢠
         ⠡஢).  ਬ,   ࠧ஬ 
         ᫮  ⠡ DwordTable  㧨   ॣ EAX
        ᫥騬 ࠧ:

                .
                .
                .
                mov     ebx,8
                mov     eax,[DwordTable+ebx*4]
                .
                .
                .

        TASM2 #3-5/              = 137 =


         ⭮ ᫥饬:

                .
                .
                .
                mov     ebx,8
                shl     ebx,2
                mov     eax,[DwordTable+ebx]
                shr     ebx,2
                .
                .
                .

             ᭮ ⠡஢   १砩  
        㯥  ⠬,    ᨢ ᫮,   ᫮  -
         ᫮.  ਬ,  ᬮਬ ᫥騩 ࠣ ணࠬ,
            ᨢ ᫮  饬 浪:

                .386
                .
                .
                .
        CodeSeg SEGMENT USE32
                ASSUME  CS:CodeSeg
                .
                .
                .
        ;
        ; ஢ ᨢ ᫮  饬 浪.
        ;
        ; :
        ;    DS:EBX - 㪠⥫  砫 㥬 ᨢ ᫮.
        ;    EDX -  ᨢ ( ᫮).
        ;
        ; ᯮ㥬 ॣ:
        ;    AX, ECX, EDX, ESI, EDI.
        ;
        SortArray       PROC
                and     edx,edx
                jz      EndSortWordArray
                mov     esi,0                   ; ࠢ  0
                                                ;  ᥬ 㣨
        SortOnNextWord:
                dec     edx                     ; 㬥 稪
                                                ; ࠢ ᫮

        TASM2 #3-5/              = 138 =

                jz      EndSortWordArray
                mov     ecx,edx                 ; ᫮ ⮢,
                                                ;  묨 㦭
                                                ; ࠢ 
                                                ; 
                mov     edi,esi                 ; ࠢ 
                                                ;   ᥬ
                                                ; ⠢訬 -
                                                ; ⠬
        CompareToAllRemainingWords:
                inc     edi                     ;  ᫥饣
                                                ; ࠢ
                                                ; 
                mov     ax,[ebx+esi*2]
                cmp     ax,[ebx+edi*2]          ; ⥪騩 
                                                ;  ,
                                                ;   
                                                ; ࠢ?
                jbe     NoSwap                  ; ,  
                                                ; ⠬  㦭
                xchg    ax,[ebx+edi*2]          ;  ⠬
                                                ; ⥪騩  ࠢ
                                                ; 
        NoSwap:
                loop    CompareToAllRemainingWords
                inc     esi                     ; 뫪  ᫥騩
                                                ; , 
                                                ; 㦭 ࠢ 
                                                ; ᥬ ⠫묨
                                                ; ⠬
                imp     SortOnNextWord
        EndSortWordArray:
                ret
        SortWordArray   ENDP
                .
                .
                .
        CodeSeg         ENDS
                .
                .
                .

             楤 SortWordArray ࠭  ⮢    -
          ⥪饣   ࠢ ⮢  ॣ ESI  EDI.
         祭   㪠⥫ﬨ (⥯ﬨ  ᫠  2),  
        ᨢ    ᨢ ᫮.   ।⠢ ᮡ 

        TASM2 #3-5/              = 139 =

        ᪠  ᨢ,  筮 ⮬,   n  ।⠢
        ᮡ  ᨢ   몠 :

              i = Array[n];

                 楤 SortWordArray ⮨  ⮬,  
        ।⢮ ᭮ ⠡஢    80386  
          㬭   2   樨  , ८ࠧ,
        ⠪ ࠧ,   ᬥ饭  ᨢ ᫮.

             ᫨  樨    ᯮ  ⢥  -
        ,   ॣ ᥣ ⠥ . ᫨  -
        樨   ᯮ  ॣ,   ᠬ  ॣ 
          ᪮  ⠥  ॣ஬,   ᠬ ࠢ
        ॣ - . ᫨ , ,     ॣ-
           ᪮ 㪠뢠 ⠡஢,  ⠡-
        㥬 ॣ ᥣ ᬠਢ,   ॣ.

               ⮬,    ॣ஢   ,  ,
        ⠪   㬮砭  ॣ ࠢ ᥣ⮬,   -
          뫪   饭  .   -
        ,  ⢫塞   ᯮ짮 ॣ஢ EBP  ESP
         ⢥ , ਢ  뫪  ᥣ,   㪠-
        뢠 ॣ SS,     ,  ஬  ⢥ -
         ᯮ ॣ EAX,  EBX, ECX, EDX, ESI  EDI -
            뫪    ᥣ,     㪠뢠 ॣ DS.
        ਬ,  ᫥騥 樨 ਢ  뫪  ᥣ, -
        ।塞 ॣ஬ DS:

                mov     al,[eax]
                xchg    edx,[ebx+ebp]
                shr     BYTE PTR [esi+esp+2],1
                mov     [ebp*2+edx],ah
                sub     cx,[esi+esi*2]

         ᫥騥 樨 뫠  ॣ, ।塞 ॣ-
        ஬ SS:

                rol     WORD PTR [ebp],1
                dec     DWORD PTR [esp+4]
                add     ax,[eax*2+esp]
                mov     [ebp*2],edi

             롨ࠥ  㬮砭   ॣ  ᥣ  
        ८।    䨪 ८। ᥣ
           ४⨢ ASSUME. ਬ:

        TASM2 #3-5/              = 140 =


                .386
                .
                .
                .
        TestSeg SEGMENT USE32
        Array1  DW      100h DUP (0)
        TestSeg ENDS
                .
                .
                .
        CodeSeg SEGMENT USE16
                ASSUME  CS:CodeSeg
                mov     ax,TestSeg
                mov     fs,ax
                ASSUME  FS:TestSeg
                mov     dx,[ebx+Array1]         ;  ८।
                                                ;  १ ASSUME
                mov     esi,OFFSET Array1
                mov     cx,100h
        IncLoop:
                inc     WORD PTR fs:[esi]       ;  ८।
                inc     esi
                inc     esi
                loop    IncLoop
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

              ० 樨  80386 ࠡ ⮫쪮  32
        -ࠧ來묨 ॣࠬ 樨  .  16-ࠧ來 ॣ
         ᯮ짮 ⮫쪮   ࠭祭  㯠    ,
        ⠪,     8086. ਬ, ᫥  MOV
        㤥 訡筮   稨  80386:

                mov     ax,[cx+dx+10h]

             ᭮ ⠡஢  16-ࠧ來  ॣ஢  ⠪
         ᪠.  樨   16-  32-ࠧ來 ॣ-
           .  ⮬,  ਬ,  ᫥饥 ࠦ
        ᯮ짮  :


        TASM2 #3-5/              = 141 =

                add     dx,[bx+eax]




        TASM2 #3-5/              = 142 =

                                                                               
         樨
        -----------------------------------------------------------------

              ᬮਬ   ७ 樨 
        80386  (஡ 樨  80386 뢠  
        3 "ࠢ筮 㪮⢠").

                   ਬ砭: 㦭   ,     8086,
              80186    80286  ᯮ       -
              ७ 権,   㤥 뢠.  १
               ணࠬ,  ன ᯮ   ७-
               樨  80386   ࠭ 
              ࠡ  㤥.

               80386  ᫥騥  樨:

                      BSF     BTR     LFS     MOVZX
                      BSR     BTS     LGS     SETxx
                      BT      CDQ     LSS     SHLD
                      BTC     CWDE    MOVSX   SHRD

                                     ஢ઠ                               
        -----------------------------------------------------------------

             ﬨ ஢ન   80386  -
        樨 BT,  BTC,  BTR  BTS.  BT -  ᭮ 
        ஢ન ,   祭  ⨯  䫠 ७-
        .  ਬ,  ᫥饬 ࠣ ணࠬ 室  Bit3Is1
        ந室 ⮫쪮  ⮬ 砥,  ᫨  3 ॣ EAX  ⫨祭
         0:

                .
                .
                .
                bt      eax,3
                jc      Bit3Is1
                .
                .
                .
        Bit3Is1:
                .
                .
                .

             ᫨ ॣ  EAX  ᮤন  祭  00000008h,    ⮩

        TASM2 #3-5/              = 143 =

        ணࠬ ந  室    Bit3Is1.  ᫨  ॣ
        EAX ᮤন 祭 0FFFFFF7h,   室 믮    㤥.
          ࠭  樨 BT ।⠢ ᮡ 16-  32-ࠧ-
        來 騩 ॣ  祩  ,  ᮤঠ  ஢塞
        . ன  ࠭  -      ஢塞 ,  
        8-⮢  ।⢥  祭    ᮤন  16-  
        32-ࠧ來  饣 ॣ.  ᫨  ⢥ ண ࠭
        ᯮ ॣ,    ࠧ  ᮢ   ࠧ஬
        ࢮ ࠭.

             ⨬,   ஢塞       
        ॣ஬,  ⠪  ।⢥ 祭,   ,   ஬
        ஢ ,   ।⠢ ᮡ  祩 , ⠪
         ॣ.  ਬ, ⠭ 䫠 ७  ﭨ  5
        ᫮   Table+ebx+esi*2  ᫥騬 ࠧ:

                .
                .
                .
                mov     ax,5
                bt      WORD PTR [Table+ebx+esi*2],ax
                .
                .
                .

             㦭     ⮬,      ⮢ 뢠  0
        (訩 )  襣 ( 饣) . ᫨ ॣ
        AL ᮤন 祭 80h,   7  ॣ AL ⠭.

              BTC  筠 樨 BT,  ⮫쪮 㥬
         䫠 ७ 祭 ।⠢ ᮡ  
        .     䫠 ७ ⠭  祭 1,  ᫨
          ࠢ 0,    祭 0, ᫨   ࠢ 1.
          BTC  ࠭ 室 ᯮ짮 樨
        CMC,   ॡ  ﭨ 䫠  ७,  ⭮
        祭 ஢塞 .

              BTR ⠪ 筠 樨 BT,   ᫥ -
        ஢ ஢塞   䫠 ७  祭  ⠭-
         ࠢ 0. 筮,  BTS ⠭ ஢-
          ,  㥬    䫠  ७,    祭  1.  
        樨 ஢ન   ᯮ짮    ⠭
        ﭨ 䫠   樨 ( ⮬  ࠧ㬥,  
           ந 뢠  ஢મ 䫠  ⠭
           祭).


        TASM2 #3-5/              = 144 =

                                    ᬮ ⮢                             
        -----------------------------------------------------------------

              宦  ࢮ   ᫥ 㫥  -
        ࠭ ࠧ஬  ᫮   ᫮  ᯮ짮 -
        樨  BSF   BSR.   BSF ᬠਢ 室 -
        ࠭,  稭   0 (訩 ), ।  㫥
        .  ᫨   ࠭-筨  㫥묨,  䫠
         頥.  ⨢ 砥 䫠  ⠭,  
        楫  ॣ  (ਥ)    ࢮ 
        㫥 .

              ⢥ ਬ ਢ  ᫥騩  ࠣ  ணࠬ,
            BSF ᯮ,  ⮡ । ᯮ
        ࢮ (襣) 㫥   DX.     㫥
         DX 㤥 㦥   2, 祭 2 㦠  ॣ
        CX.

                .
                .
                .
                mov     dx,0001101010101100b
                bsf     cx,dx
                jnz     AllBitsAreZero
                shr     dx,cl
                .
                .
                .
        AllBitsAreZero:              ;   ࠢ 
                .
                .
                .

             CL ᯮ ⥬,   祭,  ஥ 㦭 ᤢ-
         DX,   १ 祣 祭 CX ᤢ  ࠢ  ஢
        ⮫쪮,  ᪮쪮  室,  ⮡ ६ 訩  
         0.

             ன ࠭ 樨 BFS -  16-  32-ࠧ來 -
        騩 ॣ  ᬠਢ 祩 ,   ࠭ -
         16-  32-ࠧ來 騩 ॣ,    㤥  -
            ࢮ  㫥   ᬠਢ .
         ࠭    ࠧ.

              BSR 筠 樨 BFS,    ᬮ  
        稭  襣 ( 饣)  ࠭-筨

        TASM2 #3-5/              = 145 =

         襬 .   ᫥饬 ਬ  襣  㫥
          TestVar (祭 27) 頥  ॣ EAX:

                .
                .
                .
        TestVar DD      0FFFFF00h
                .
                .
                .
                bsr     eax,[TestVar]
                .
                .
                .




        TASM2 #3-5/              = 146 =

                  ६饭   ७               
        -----------------------------------------------------------------

             樨 MOVZX  MOVSX   ஢ 8-  16-
        ࠧ來 祭  16-  32-ࠧ來 騩 ॣ  -
        室 ᯮ짮 譨 権  ७ 祭
            ࠧ.    MOVZX  訥 
        ਥ ﬨ,   MOVSX ࠭  祭
          ᮮ⢥⢨   ࠧ஬ ਥ.   樨 
        ⠭⭮ 樨 MOV.

             ਬ, ᯮ ஬ 権  8086, 
        ஢  祭  ॣ DL  ॣ BX -
         뫮  ᤥ ᫥饥:

                .
                .
                .
                mov     bl,dl
                sub     bh,bh
                .
                .
                .

               80386  ⮣ 筮  樨:

                movzx   bx,dl

             ७     権  8086 -
          ᫮.  ஢ ६   ( -
        )  ࠧ஬    TestByte  DX  ᯮ짮 樨
        MOVSX 㦭 뫮  믮 ᫥騥 樨:

                .
                .
                .
                mov     al,[TestByte]
                cwb
                mov     dx,ax
                .
                .
                .

                ᤥ    樨:

                movsx   dx,[TestByte]

        TASM2 #3-5/              = 147 =


             樨 MOVZX  MOVSX  ६ 8-⮢ 祭
         32-⮢ ॣ:

                mov     eax,al




        TASM2 #3-5/              = 148 =

                      ८ࠧ  ⨯ DWORD  QWORD               
        -----------------------------------------------------------------

              ८ࠧ 祭   ࠧ஬     -
          AL    祭    ࠧ஬  ᫮  祭 
          ॣ AL ࠧ஬  ᫮  祭   ࠧ-
        ஬      ᫮   80386 ।ᬮ७ ᮮ⢥-
        ⢥ 樨 CBW  CWD.    80386   
        樨 ८ࠧ, CWDE  CDQ,   ࠡ 
        32-ࠧ來묨 ॣࠬ  80386.

              CWDE ८ࠧ 祭     ࠧ஬  
        ᫮,  ᠭ  ॣ AX,  祭   ࠧ஬ 
         ᫮,  ⠪    CWD.  稥   ⨬
         ﬨ ⮨  ⮬,     ६   
        CWD 頥 32-ࠧ來 १  DX:AX,   CWDE -
        頥 頥 32-ࠧ來 १    ॣ  EAX,  
          ⥬  ᯮ짮   32-ࠧ來  
        80386.

             ਬ,  १ 믮 権:

                .
                .
                .
                mov     ax,-1
                cwde
                .
                .
                .

         ॣ EAX 㤥 ᠭ 32-⮢ 祭 -1.

              CWD  ८ࠧ  祭     ࠧ஬ 
         ᫮  ॣ EAX  祭    (8-⮢) 
        EDX:EAX. 樨:

                .
                .
                .
                mov     eax,-7
                cdq
                .
                .
                .


        TASM2 #3-5/              = 149 =

        ࠭ 祭 -7  64-⮢   ॣ஢  EDX:EAX.  
        ⮬  襥 ᫮ १ (0FFFFFFFh) 뢠  EDX,  
        襥 ᫮ १,  祭 0FFFFFFF9h (-7) -   ॣ
        EAX.

                                  ᪮쪨 ᫮                         
        -----------------------------------------------------------------

              ᪮쪨  ᫮,  ਬ ᤢ 32-⮢ 祭
         4  ,  ⠢   8086  嫮, -
            ᫮  ᤢ   ,   ⮬
         ६ । १ 䫠 ७      -
          㣮.  樨  80386 SHRD  SHLD ࠢ-
          ,  ᯥ稢 ᤢ  ᪮쪮 ⮢  -
        ஢  ॣ  祩 .

             ।, ਬ,   32-⮢ 祭 ᠭ  
          8086  ॣ DX:AX.    ᤢ 32-⮢
        祭  ( ࠢ  襬 )  4   -
         ᫥饥:

                .
                .
                .
                shl     ax,1
                rcl     dx,1
                shl     ax,1
                rcl     dx,1
                shl     ax,1
                rcl     dx,1
                shl     ax,1
                rcl     dx,1
                .
                .
                .

               80386   १  ,  ᯮ-
         ᥣ  樨:

                .
                .
                .
                shld    dx,ax,4
                shl     ax,4
                .

        TASM2 #3-5/              = 150 =

                .
                .

             (筮,  32-⮢ 祭  뫮   -
          ॣ EAX  믮 ᤢ   樨:

                shl     eax,4

           ਬ ।祭  ⮣,  ⮡ ந஢
        २⢠ ᯮ짮 樨 SHLD   ࠢ    -
        ﬨ  8086.)

              ࠭  樨  SHLD  -  16-  32-ࠧ來
        騩 ॣ  祩  ,      㦭  믮
        ᤢ.  ன  ࠭  ।⠢  ᮡ 16-  32-ࠧ來
        ॣ,    㦭 믮 ᤢ,  ⨩ ࠭ - 
        ᫮ ,    㦭 ⢨ ᤢ.  ࢮ 
        ண  ࠭    ᮢ.   ⨩   ࠭   
        ।⠢  ᮡ  ।⢥ 祭  ॣ CL.  
        ᫥  砥  楫  ࠭  ᤢ    ᫮   ,
        ।塞 ॣ஬ CL.

              SHRD  筠 樨 SHLD,    -
         ᤢ   饣 (襣)   ࠢ
         ⮢.   ᫥饬 ਬ 64-⮢ 祭, ᠭ-
          TestQWord ᤢ ࠢ  7 :

                .
                .
                .
                mov     cl,7
                mov     eax,DWORD PTR [TestQWord+4]
                shrd    DWORD PTR [TestQWord],eax,cl
                shr     eax,cl
                mov     DWORD PTR [TestQWord+4],eax
                .
                .
                .




        TASM2 #3-5/              = 151 =

                                ᫮ ⠭                          
        -----------------------------------------------------------------

             饥 ਬ  ᫮ ஢ப  室 ⮨ 
        ⠭ 祭 祩  ,  ⮡  ࠧ  ।
        ﭨ.  ਬ,   ⥫ ⠭ -
        祭  ६,    ६ ࠢ, 㪠⥫ ࠢ
        ,      ।饩  樨  ⠭ 䫠 ७.
         8086     믮  ⠪  権,
        ⠪    ⠭ 䫠,  ⮡ ࠧ १ -
        ન ᫮, ॡ ᪮쪮 権.   80386
          ᪮७  ⠪ 権 ஢ન  ⠭ ।ᬮ७
        魠 㯯 権 SET.

             ।, ਬ,    ⠭ ६ 
         TestFlag ⮫쪮  ⮬ 砥,  ᫨ ⠭ 訩 
        ॣ  AX.      8086   諮  ᤥ ᫥-
        饥:

                .
                .
                .
                mov     [TestFlag],0            ; ।, 
                                                ; 訩  
                                                ; ⠭
                test    ax,80h
                jz      MSBNotSet
                mov     [TestFlag],1
        MSBNotSet:
                .
                .
                .

                80386  ᯮ짮 ᫥騥 樨:

                .
                .
                .
                test    ah,80h
                setnz   [TestFlag]
                .
                .
                .

              ⮬ TestFlag 㤥 ⠭  祭 1, ᫨  7
        ॣ AH ࠢ 1,   祭 0, ᫨  7 ॣ AH ࠢ

        TASM2 #3-5/              = 152 =

        0.

             ஢         ᫮ 室 
        믮   樨 SET.  SETNC ⠭-
          楫 ࠭  祭 1,  ᫨ 䫠 ७ ࠢ 0,  
        뢠 祭 楫 ࠭  0, ᫨ 䫠 ७ -
          1.   SETS ⠭ ਥ,  ᫨ 䫠 
        ࠢ 1,   뢠 ,  ᫨ 䫠  ࠢ 0  . . -
        ࠭  樨  SET      8-⮢ 騬 ॣ஬ 
        8-⮢ ६  . 16-  32-ࠧ來 ࠭  -
        ᪠.




        TASM2 #3-5/              = 153 =

                            㧪 ॣ஢ SS, FS  GS                     
        -----------------------------------------------------------------

               8086 LDS    㦠  
        ॣ DS,  ⠪     ॣ஢     -
        樨,  , ⠪ ࠧ, 祭 䥪⨢ ⠭
        쭨  㪠⥫.   LES ᯥ稢  -
        ,    DS 㦠 ॣ ES.    80386
          㧪 쭨 㪠⥫  樨 LSS,  LFS 
        LGS,  㦠 쭨 㪠⥫  ᭮ ᥣ -
        ஢ SS, FS  GS ᮮ⢥⢥.

             ਬ,   ᫥饩  ணࠬ  GS:BX 㦠 㪠-
        ⥫ 쭥  ⨯    ⮢  ᨢ      
        A000:0000:

                .
                .
                .
        DataSeg SEGMENT USE16
        ScreenPointer   LABEL   DWORD
                dw      0
                dw      0A000h
        DataSeg ENDS
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .
        CodeSeg SEGMENT USE16
                ASSUME  CS:CodeSeg,DS:DataSeg
                mov     ax,DataSeg
                mov     ds,ax
                .
                .
                .
                lqs     bx,[ScreenPointer]
                .
                .
                .
        CodeSeg ENDS
                .
                .
                .

        TASM2 #3-5/              = 154 =


                 権 LDS  LES      権
        LSS,  LFS    LGS   㦠 㪠⥫ ⨯ SMALL  LARGE
        (. ࠧ "48-⮢ ⨯  FWORD").




        TASM2 #3-5/              = 155 =

                                                                               
        ७ 樨
        -----------------------------------------------------------------

                80386  ⮫쪮    -
        樨      ࠢ        ஬    権    ஬
        8086/80186/80286,    ⠪ ७ 騥 樨.  
        ᫥騥 樨:

                CMPS    JC      JNAE    JNLE    JPO     OUTS
                IMUL    JCXZ    JNB     JNO     JS      POPA
                INS     JE      JNBE    JNP     JZ      POPF
                IRET    JG      JNC     JNS     LODS    PUSHA
                JA      JGE     JNE     JNZ     LOOP    PUSHF
                JAE     JL      JNG     JO      MOV     SCAS
                JB      JLE     JNGE    JP      MOVS    STOS
                JBE     JNA     JNL     JPE

             ஬ ⮣,   80386  樨  ࠡ-
          32-ࠧ來묨 ࠭,       -
        .

                           樠 ᨨ 樨 MOV                   
        -----------------------------------------------------------------

              80386 ন  ᯥ樠    樨
        MOV,   ணࠬ, ࠡ饩  ஢ ਮ
        0 (஢  ᨬ묨 ﬨ) ६   
        32-ࠧ來묨 騬 ॣࠬ  ᯥ樠묨 ॣࠬ -
         80386.  ᯮᮡ    ᫥騬 ॣࠬ
         80386:

                CR0     DR0     DR3     TR6
                CR2     DR1     DR6     TR7
                CR3     DR2     DR7

             ਬ, ⫠  ॣ  DR0   㧨 ᮬ,
         㤥 墠뢠,   樨:

                .
                .
                .
                .386P
                .
                .
                .

        TASM2 #3-5/              = 156 =

                mov     eax,OFFSET FunctionEntry
                mov     dr0,eax
                .
                .
                .

         ⥬ ࠢ騥 䫠  㧨  ࠢ饣 -
         CR0  ॣ EDX   樨:

                .
                .
                .
                .386P
                .
                .
                .
                mov     edx,cr0
                .
                .
                .

             ⨬,  ⮡ ࡮ ᥬ  ᥬ஢ ᯥ-
           樨 MOV,   ⢮ ४⨢ .386
        (⠪    ਢ஢묨 ﬨ).

              饬 砥 ᯥ樠 ॣ,      -
                 樨 MOV,  ᯮ
        ⮫쪮 ⥬ ணࠬ ᯥ祭   ᯮ ਪ-
        묨 ணࠬ.




        TASM2 #3-5/              = 157 =

                                                                               
        32-ࠧ來 ᨨ 権  8086
        -----------------------------------------------------------------

              樨  8086 ७  ⠪  ࠧ,
        ⮡  뫮 ᯮ짮   樨  
        ࠭  80386.   믮 32-ࠧ-
        來  ⠭ 32-⮢ ॣ EBX  32-⮢ ६-
           EBP+EAX*8+10h.  ⮬  뫪  楫 祩-
          ᯮ 32-ࠧ來 ॣ:

                sub     DWORD PTR [ebp+eax*8+10h],ebx

              32-ࠧ來 ⥩,   設⢮ -
        権  8086,   ॡ    -
        権.   32-ࠧ來 ࠪ 樨 㪠뢠 筮 ࠭
         ⨯ ᥣ,   ஬ 믮 .   -
         権  8086 ॡ  ,
        㪠뢠,    ७  32-ࠧ來 ⥩ -
         80386.   ᬮਬ  樨.

                           ᨨ 権 LOOP  JCXZ                  
        -----------------------------------------------------------------

             樨 LOOP,  LOOPE,  LOOPNE  JCXZ  ࠡ  筮  
        16-ࠧ來 ॣ஬ CX.  8086 ।ᬠਢ  16-
        ࠧ來,  ⠪  32-ࠧ來   権. 32-ࠧ-
         ᨨ  ॣ CX  ࠡ  ॣ஬ ECX.

             樨 LOOP,  LOOPE  LOOPNE ᯮ  ⢥ -
        稪 横 ॣ CX  ECX,  ᨬ  ⨯ ᥣ (16
        -⮢   32-⮢).  ᫨   ᯥ,  ⮡ 
        ⢥ ॣ ࠢ 横 ᥣ  ᯮ짮 ॣ
        CX  (    32-⮢ ᥣ),   ᯮ ᫮ 
         権 (LOOPW,  LOOPWE  LOOPWNE).  筮, ᫨
        㦭 ᯥ ᯮ짮  ⢥ ࠢ饣 横 -
          ॣ  ECX,  ᯮ  ᫥騥    権:
        LOOPD, LOOPDE  LOOPDNE.

              LOOPD  㬥蠥 ᮤন ECX  믮 -
        室  㪠 ᬥ饭, ᫨ 頥 祭 ⫨筮 
        . ਬ, ᫥騩 横 믮 8000000000h ࠧ:

                .
                .
                .

        TASM2 #3-5/              = 158 =

                mov     ecx,8000000000h
        LoopTop:
                loopd   LoopTop
                .
                .
                .

              LOOPDE 㬥蠥 ᮤন ECX ॣ  믮-
         室  楫 ᬥ饭,   䫠  ࠢ 1,   ECX
         ࠢ 0. (LOOPDZ -    ଠ ⮩  樨.) -
        筮,  LOOPDNE 㬥蠥 祭 ॣ ECX  -
        室   楫 ᬥ饭,   䫠  ࠢ 0,   ECX 
        ࠢ 0. (LOOPDNZ -  ⭠ .) ਬ, ᫥-
        騩 横 ,  祭, 뢠   -
        -뢮  ॣ DX  ⠭ ࠢ 09h  ஢ઠ  
        㤥 믮 1000000000h ࠧ:

                .
                .
                .
                mov     ecs,1000000000h
        LoopTop:
                in      al,dx
                cmp     al,09h
                loopdne LoopTop
                jnz     TimeOut
                .
                .
                .
        TimeOut:
                .
                .
                .

             ⬥⨬,  ⢨ 樨 JNZ   ਬ  -
         १ ࠢ,    樨 LOOPDNE,  ⠪  -
        樨 横    ﭨ 䫠.   JCXZ -
          室,  ᫨ ᮤন CX ࠢ 0,   JECXZ 믮
        室, ᫨ ࠢ  ᮤন ECX. ਬ, ᫥騩 横
         ࠡ  32-⮢묨 稪.

                .
                .
                .
        LoopTop:
                jecxz   LoopEnd

        TASM2 #3-5/              = 159 =

                .
                .
                .
                jmp     LoopTop
        LoopEnd:
                .
                .
                .




        TASM2 #3-5/              = 160 =

                            ᨨ ப 権                   
        -----------------------------------------------------------------

               80386  ப 樨  ࠡ 
        ⠬,  ᫮   묨 ᫮.  ᨨ  権,
        ࠡ騥  묨 ᫮,   稢 㪢 D,  
         㪢 W  B.  ᫥騥 樨:

                CMPSD   MOVSD   SCASD
                INSD    OUTSD   STOSD
                LODSD

                 権 ࠡ⠥ ࠧ  32 ⠬ 
         㢥稢  㬥蠥   ७ ᮮ⢥騩
        ॣ-㪠⥫  4. ਬ,  ᫥饬 ࠣ ணࠬ
         MOVSD ᯮ  ஢    ᫮,
        稭   ᬥ饭 DwordTable    ᫮, 稭
         ᬥ饭 Buffer:

                .
                .
                .
                cld
                mov     si,OFFSET DwordTable
                mov     di,OFFSET Buffer
                mov     cx,2
                rep     movsd
                .
                .
                .

              ⮬ १ ᮮ⢥ ᫥饬 ,   ஬
        ᯮ  MOVSB.

                .
                .
                .
                cld
                mov     si,OFFSET DwordTable
                mov     di,OFFSET Buffer
                mov     cx,8

                rep     movsb
                .
                .
                .

        TASM2 #3-5/              = 161 =


               ᯮᮡ ᬮ७ ப 権 ⮨ 
        ⮬,  ப 樨 ࠧ஬   ᫮ 
        ப  ࠧ஬  ᫮,  ⮬,  ப-
          樨 ࠧ஬  ᫮ ᮮ⢥ ⮢ ப
        .




        TASM2 #3-5/              = 162 =

                                                                               
         IRETD
        -----------------------------------------------------------------

              IRETD  筠 樨 IRET.   
         ⥪ EIP,   ⥬ CS,    ᫮ (뢠 襥
        ᫮), ᫥ 祣  EFLAGS,   ᫮.

                                                                               
        樨 PUSHFD  POPFD
        -----------------------------------------------------------------

              PUSHFD   ⥪  32-ࠧ來 ॣ
        䫠  80386.  POPFD   ⥪ -
         32-ࠧ來 ॣ 䫠.

             樨  PUSHF  POPF   ⥪    -
         ⮫쪮 訥 16 ⮢ ॣ 䫠.

                                                                               
        樨 PUSHAD  POPAD
        -----------------------------------------------------------------

              PUSHAD   ⥪ ᥬ  32-ࠧ來  
        ॣ஢  ᫥饬 浪: EAX, ECX, EDX, EBX, ESP, EBP, ESI,
        EDI. 祭, ᨬ  ॣ ESP, ᮮ⢥ 祭
        ॣ ESP  砫 樨 PUSHAD.   POPAD -
          ⥪ ᥬ 32-ࠧ來  ॣ஢   ᫥饬  -
        浪:  EDI,  ESI,  EBP,  EBX, EDX, ECX   EAX.    ॣ
         ࠭  ⥪     樨  PUSHAD,    ⥬
        ⠭   樨 POPAD.   ESP 樥
        POPAD  ⠭.   ⮣ 믮 믮
        㢥祭  32, ⮡    쬨 32-ࠧ來 -
         ॣ஢,  ࠭ ࠭  ⥪. ࠭ ࠭ -
        祭 ESP .

             ࠢ  ⨬ ﬨ 樨 PUSHA  POPA, -
         ࠭  ⥪     ⮫쪮 訥 16 ⮢
         ॣ஢.




        TASM2 #3-5/              = 163 =

                              ᨨ 樨 IMUL                      
        -----------------------------------------------------------------

             ⥫쭮  ଠ 樨 IMUL,  ।ᬮ७ 
        ஢  8086/80186/80286      80386 ।ᬮ७
         ᠬ 㤮 ଠ 樨 IMUL:  騩 ॣ
         祩   㬭   騩 ॣ,  ⮬
        १ ᭮ ࠭    室 ॣ஢. -
        , :

                imul    ebx,[edi*4+4]

        㬭 ᮤন  ॣ  EBX  祭 ࠧ஬  
        ᫮, ࠭饥    edi*4+4,  १ ࠭
        ᭮  ॣ EBX.

                ,   ࠭  ⮩ ଥ 樨
        IMUL ।⠢ ᮡ 楫 ॣ.   ࠭  
         16-  32-ࠧ來 騬 ॣ஬.  ன ࠭ 
          16-  32-ࠧ來 騬 ॣ஬  祩
        .    ࠭  ᮢ. ᫨ १,
        ᬠਢ,  祭  , ᫨誮 , ⮡ 
         뫮 ࠧ  ਥ,  ⠭ 䫠 -
          ९.

               ,    80386  ⠪  -
        ७    樨  IMUL  ஢ 8086/80186/80286,
        ন騥 32-ࠧ來 ࠭.  ਬ,  ᫥饬 
        ECX 㬭  1000000000h,  १ ࠭  ॣ
        EBP:

                imul    ebp,ecx,100000000h

         ᫥  㬭 ECX  EBX, 뢠 १ 
        EDX:EAX:

                imul    ebx




        TASM2 #3-5/              = 164 =

            । 16-ࠧ來  32-ࠧ來 権  ᥣ⮢     
        -----------------------------------------------------------------

             筮  ॡ ᯮ짮 ⮫쪮  16-ࠧ來  ᥣ-
          (USE16).       ⮬ 砥   짮 
        䬥᪨  ᪨  32-⮢묨 ॣࠬ.

               ⠪ ᯮ짮  ⠭ 16-⮢  32
        -⮢  ᥣ⮢   .  ᫨    ணࠬ
        ᯥ祭  樮 ⥬      筮, 
         ,   ᮫⭮  稭 ᯮ짮 32--
         ᥣ .  ᫨   ਬ ᯥ樠   ४-
        祭   ०, 室  믮 32-⮢
        ᥣ⮢ ,    ࠢ DOS  ࠡ    ᬮ.
        ᫥騥  樮 ⥬  ।⠢  ᯮ-
        ,       짮 ࠡ    32-ࠧ來묨
        ᥣ⠬,   ਬ   ᫥.

                ᯮ짮 32-ࠧ來 ᥣ  
        ᯮ짮  ᢮ ணࠬ २⢠  "᢮"  -
        樨, ᯥ稢 32-ࠧ來묨 ॣࠬ  80386.

              ᬮਬ  ᭮ ᯥ ᯮ짮 ᥣ⮢
        USE16  USE32.  ᨬ ࠧ ॣ஢ USE16   -
         64, ⮬   祩 ᥣ USE16  뫠-
           16-ࠧ來  .    㣮 ஭,  ᥣ
        ⨯ USE32    ࠧ  4 ,  ⮬  뫪
         ந 祩 ⠪ ᥣ ॡ ᯮ짮 32-
        ࠧ來 .  (ਬ砭:  ᥣ⠬  ⨯ USE32 
        ࠡ ⮫쪮  饭 ०.)

             ᭮,  ᫨  㦥 ᥣ,  ࠧ ண ॢ蠥
        64,     ᯮ짮 ᥣ ⨯ USE32.  ,  
        ⠪  樨,    ன  易⥫쭮  ᯮ짮
        ᥣ USE16.    㤨  㬠, 祬  
                ᯮ짮  ᥣ USE32  ६.
        ⢥ 砥  ⮬ ᯮᮡ,      ண  
        80386  ন ࠭ ࠧ஬  ᫮   ᫮,  
        ⠪ 16-  32-ࠧ來 ᬥ饭.

              80386  ࠧ⨥  8086,   -
        ஬    ࠧ     ⢥ 묨 ࠧࠬ
        ࠭ (8   16 ) ᯮ  .    8086
          ⢮ ० 樨 (  㦥    
        ० 樨,    ᯮ ॣ BX, SI, DI 
        BP),    ন ⮫쪮  16-⮢  ᬥ饭.  

        TASM2 #3-5/              = 165 =

        ᫥饬 ࠣ  ணࠬ  ᯮ ࠭ ࠧ஬  8
        ,   樨   ᯮ 16-⮢ ० -
        樨 (ਭ   8086):

                mov     al,[bx+1000h]

              ᥣ  USE16  80386  롮  8- 
        16-ࠧ來묨 ࠭ ᯮ 筮   ,    
         8086,  16-⮢ ᬥ饭.    䨪
        ࠧ ࠭ (066h)     ᥣ  USE16  
        ८ࠧ  ⠪ ࠧ,    㤥 ন 32-ࠧ-
        來 ࠭.   ⮬ 砥  ࠧ ⠪ 樨 -
           8-  32-⮢묨 ࠭,    8- 
        16-⮢묨.

             筮,    ᥣ USE16  ८-
         ⠪ ࠧ,    ᯮ짮 32-⮢ ०
        樨  80386 (让 ,  뢠  ࠧ-
         " ० 樨").  ⮣ । 樥 -
        頥 䨪 ࠧ  (067h).

             ਬ,   ,  ᥬ㥬    ᫥饣 室
        ⥪:

                .
                .
                .
                .386
                .
                .
                .
        DataSeg SEGMENT USE16
        TestLoc DD      ?
        DataSeg ENDS
                .
                .
                .
        DataSeg SEGMENT USE16
                mov     ax,DataSeg
                mov     ds,ax
                ASSUME  DS:DataSeg
                db      66h
                mov     ax,WORD PTR [TestLoc]
                .
                .
                .

        TASM2 #3-5/              = 166 =

        CodeSeg ENDS
                .
                .
                .

        ⠪  䨪 ࠧ ࠭ ८ࠧ ࠧ ࠭ -
        樨    32 ,  4  TestLoc 㦠  EAX,    2
         TestLoc  AX.

             ஬ ⮣, 樨 ᥣ⮢  USE32 筮 -
           8-  32-ࠧ來 ࠭  32-ࠧ來 ० -
        樨  80386. , ⮡ ⤥ 樨 ࠡ⠫
         16-ࠧ來 ० (   ०  8086  ࠭-
         ࠧ஬  ᫮   ᮬ),     ᥣ  USE16,
          ᯮ짮  䨪   ࠧ ࠭  ࠧ
        .

              ⮨ ᯮ  ⮬,  ⮡  䨪 
        ࠧ஢  ࠭   ᮢ  ணࠬ   80386.
        ࡮ ᥬ 믮   䨪ᮢ,  室  
        ᯮ짮 16-ࠧ來 ।  ᥣ USE32  32-ࠧ-
         ।  ᥣ USE16 ஧   ணࠬ  -
        .  ਬ, ᫨   ᥣ  USE32 ᯮ ᫥-
         :

                mov     [bx],ax

         ࡮ ᥬ ⮬᪨  ।  樥  -
        䨪  ࠧ ࠭  ࠧ .  塞 
        䨪 㪠 ࠧ஢ ⮫쪮  ⮣,  ⮡  﫨  -
            롮  16-  32-⮢묨 ࠧࠬ ᥣ-
        ⮢:  㦭 ஢ ᫮ 㥬  䨪ᮢ  
        ࠧ.

             ।, ਬ,   ࠫ ᥣ USE16,  ⥬
        뫠  ࠭ ࠧ஬   ᫮, 㥬  -
         32-⮢ ० 樨, ਬ:

                mov     eax,[edx+ecx*2+1]

             ࡮ ᥬ  諮   ஢ 䨪 
        ࠧ஢ ࠭  ࠧ  ࠪ᪨     -
        樨 襩 ணࠬ,   ਢ   ⥫쭮 㢥-
          ࠧ    ந⥫쭮.   ᯮ짮
          ᥣ USE32  ⮩  ணࠬ 䨪 ᯮ짮 ࠪ-
        ᪨  ॡ .

        TASM2 #3-5/              = 167 =


                ,    롮  ᥣ  -
        쪮    ᫮,  祬   .  ᫨  㦥
        ᥣ,  ॢ騩 64,     ᥣ ⨯ USE32.
        ᫨   ॡ ᥣ,   ॢ騩  ࠧ 64,  
        ᫥  ᥣ USE32,  ᫨   ᯮ 32--
        ,    16-⮢ ࠭  ० 樨.  ᫨  ୮
        ⭮,  ᫥ ᯮ짮 ᥣ ⨯ USE16.   ᥣ
         ᪠,   ⨯ ᥣ 㤥  䥪⨢,  
        ᥣ  ᥬ஢ ᢮ ணࠬ ⥬  㣨 ᯮ-
          ᬮ,    砥 祭  㤥  -
        .

                 ⠪ 㢨,   祣  室
        樨 LARGE  SMALL, ⮡  뫮 ᥬ஢ ०-
        騥 뫪. ᪮ ⨯ USE ᥣ  । ᯮ-
          㬮砭 ࠧ  뫮,   ।, 
        ०騥 뫪    ࠧ,   ᥣ . -
         LARGE 㦭 ᯮ짮  ० 뫮   ᥣ-
        ⮢  USE16  ᥣ  USE32,    SMALL  -
         ᯮ짮  㪠  室  ᯮ짮  
        ० 뫮  ᥣ  USE16 16-⮢ 樨.

                          ਬ 㭪樨   80386                  
        -----------------------------------------------------------------

              ᬮਬ  ⥯  ਬ  ணࠬ  
        80386.  뫮  ᬮ  ணࠬ  -
          80386,    ᪮ 樮 ⥬,  ᯮ騥
         80386,   稫  筮 ப -
         (⮬    ᯮ짮 ⠭   -
        ,   祭  , 뢮  ࠭ ᯫ
          襭 ணࠬ).   ⮣  ᬮਬ 
        㭪, ᠭ  ᥬ   80386.

              襬  ਬ  㭪樨     CalcPrimes ᯮ
        २⢠  ࠧ஬  ᥣ⮢  USE32    १砩
         ᫥   ᥫ   . 㭪-
            ந    2   -
        쭮  ⮣  ᫠,      ந  
        让 ⠡,    ⮥.    ᯮ짮  
        8086   ⮤    ࠡ ⮫쪮  ᨢ, 
        ॢ 64 (ᨬ ࠧ ᥣ⮢),      
        ᮢ襭  ࠡᯮᮡ   ⨦ 1  (-
         ꥬ ,    ன    ᮢ  

        TASM2 #3-5/              = 168 =

        8086).

              ⫨稥    ⮣  ᥣ USE32  32-ࠧ來 ॣ
           80386  ࠡ    ⠡楩,  ࠧ
        ன ⨣ 4 .  ᪨,   80386 
           ࠭筮 ࣠樨  ࠡ    
        ꥬ    ࠡ (1000 )!  筮,  ६ ᫥
         ᥫ  ⮬ 砥    ⮬ ਥ -
        ,    ⨬    ,   ⫨稥  -
        ஢ 8086  80286 ⥪ 樨     
        80386   ࠭稢騬 䠪஬  ணࠬ,   -
         ᯮ짮 ⥫ ꥬ .

             室 ⥪ 㭪樨 CalcPrimes 룫廊  ᫥騬  -
        :

        ;
        ; ਬ    80386  ᫥ 
        ;  ᥫ    0  MAX_PRIME ⥫쭮.
        ;
        ; : .
        ;
        ; 뢮:
        ;     ES:EAX - 㪠⥫  PrimeFlags,  ᮤন 1 
        ;     ᬥ饭  ᫠, ஥  ,  0 
        ;     ᬥ饭  ᫠,  饣 .
        ;
        ; 蠥 ॣ:
        ;     EAX, EBX
        ;
        ; ᯮ , ਢ 짮 殫줮 
        ; ୠ PC Magazine (⮬ 7,  2).
        ;
                .386
        MAX_PRIMES      EQU     1000000         ;  ࠭
                                                ; ஢ન ⮣
                                                ; ᫠
        DataSeg SEGMENT USE32
        PrimeFlags      DB      (MAX_PRIME + 1) DUP (?)
        DataSeg ENDS

        CodeSeg SEGMENT USE32
                ASSUME  CS:CodeSeg
        CalcPrimes      PROC
                push    ds      ; ࠭ ॣ DS 뢠饩
                                ; ணࠬ

        TASM2 #3-5/              = 169 =

                mov     ax,DataSeg
                mov     ds,ax
                ASSUME  DS:DataSeg
                mov     es,ax
                ASSUME  ES:DataSeg
        ;
        ; ।,   ᫠    
        ; 묨.
        ;
                mov     al,1
                mov     adi,OFFSET PrimeFlags
                mov     ecx,MAX_PRIME+1
                cld
                rep     stosb
        ;
        ;  ᪫稬  ᫠,  騥 묨,  
        ; ந (஬ ந  1), 訥  ࠢ
        ; MAX_PRIMES,  ᥫ  MAX_PRIMES.
        ;
                mov     eax,2           ; 筥  2, ⠪  0  1
                                        ;     
                                        ; ᯮ짮  ᪫祭
                                        ; ந
        PrimeLoop:
                mov     ebx,eax         ; 砫쭮 祭 
                                        ; ᫥  ந
        MultipleLoop:
                add     ebx,eax         ; ᫨ ᫥饥 ந-
                                        ; 
                cmp     ebx,MAX_PRIME   ;  ஢ਫ  ந
                                        ;  ᫠?
                ja      CheckNextBaseValue ; , ३  ᫥饬
                                        ; 
                mov     [PrimeFlags+ebx],0 ;  ᫮  
                                        ; , ⠪   
                                        ;   १ ந-
                                        ; 
                jmp     MultipleLoop
        CheckNextBaseValue:
                inc     eax             ; 뫪  ᫥饥 砫쭮
                                        ; 祭 ( ᫥
                                        ;  ந)
                cmp     eax,MAX_PRIME   ;  ᪫稫  ந-
                                        ; ?
                jb      PrimeLoop       ; , ஢ ᫥饥
                                        ; ⢮ ந

        TASM2 #3-5/              = 170 =

        ;
        ;  㪠⥫  ⠡ ᮢ    
        ; ᥫ  ES:EAX
        ;
                mov     eax,OFFSET PrimeFlags
                pop     ds              ; ⠭ DS 뢠饩
                                        ; ணࠬ
                ret
        CalcPrimes      ENDP
        CodeSeg         ENDS
                END

                ,     80386 -
          ࠡ뢠 32-⮢  楫  ᫠    ᨢ  ࠧ஬
        1000000 ⮢. ᪨  㭪  ⮫쪮 20 . 
        १  믮 㭪 CalcPrimes 頥 让 㪠-
        ⥫ 쭥 ⨯  ⠡ PrimeFlags,   ன  ᬥ饭,
        ᮮ⢥饥  ,  ᮤন 1,  ᫨  ᫮ -
        ⮥,   0, ᫨ ᫮   . ਬ, PrimeFlag +3
        뫮   ࠢ 1,  ⠪  3 - ⮥ ᫮,   PrimeFlag+4 - 0,
        ⠪  4   .

              PrimeFlags  ᨬ쭮 ஢塞 ᫮ ।-
           ࠢ 䨪 MAX_PRIME.  ࠪ-
         뫮   㤮,  ᫨  뢠 ணࠬ ।
         㭪樨 CalcPrimes  ⠡ ந쭮 ࠧ,  ⠪-
          ᨬ쭮  ஢塞  ᫮  (஥ ।⠢ ᮡ
         ⠡ - 1).   㭪 㤮⢮﫠   -
        ॡ  뢠饩  ணࠬ  ᫥  ᥫ  
         㦭 뫮  ॠᥬ஢.    ਬ  쭠
        ⪠  PrimeFlags  ᯮ   ࠧ  ⮣,  ⮡
        ந஢ ᯮ짮 USE32.

             ਢ ਬ ᨨ CalcPrimes,   ࠡ⠥  -
        묨 ࠬࠬ (⠡楩   ⠡):

        ;
        ; ਬ    80386  ᫥ 
        ;  ᥫ    0  MAX_PRIME ⥫쭮.
        ;
        ; : (। 쭨 맮 ⨯ LARGE,  ஬ 
        ; ⥪ । 6 ⮢):
        ;
        ;     ESP+06h  室 (᫥ ᥭ  ⥪ ࠬ)
        ;     ।⠢ ᮡ 祭 ࠧ஢   ᫮ -
        ;     ᨬ쭮 ᫮, ஢塞  ,   

        TASM2 #3-5/              = 171 =

        ;     .
        ;
        ;     ESP+0Ah  室 ( ᥭ  ⥪ ࠬ)
        ;     ।⠢ ᮡ 㪠⥫ LARGE 쭥 ⨯
        ;     (ᬥ饭 ࠧ஬ 6 ⮢)  ⠡,  ᮤন 1
        ;      ᬥ饭  ᫠, ஥  ,  0
        ;      ᬥ饭  ᫠,  饣 .
        ;
        ; 뢮: .
        ;
        ; 蠥 ॣ:
        ;     EAX, EBX, EDX, EDI
        ;
        ; ᯮ , ਢ 짮 殫줮 
        ; ୠ PC Magazine (⮬ 7,  2).
        ;
                .386
        CodeSeg SEGMENT USE32
                ASSUME  CS:CodeSeg
        CalcPrimes      PROC FAR
                push    es                      ; ࠭ ES
                                                ; 뢠饩 ணࠬ
                push    fs                      ; ࠭ FS
                                                ; 뢠饩 ணࠬ
        ;
        ;  ࠬ.
                mov     ecx,[esp+4+06h]
                lfs     edx,[esp+4+0ah]
        ;
        ; ।,   ᫠    
        ; 묨.
        ;
                push    fs
                pop     es
                mov     al,1                    ; ES 㪠뢠 
                                                ; ᥣ ⠡
                mov     adi,edx
                cld
                push    ecx                     ; ࠭ ᨬ쭮
                                                ; ஢塞 ᫮
                inc     ecx                     ;  ᨬ쭮
                                                ; ᫮ (⥫쭮)
                rep     stosb
                pop     ecx                     ;  ᭮ -
                                                ; 쭮 ஢塞
                                                ; ᫮

        TASM2 #3-5/              = 172 =

        ;
        ;  ᪫稬  ᫠,  騥 묨,  
        ; ந (஬ ந  1), 訥  ࠢ
        ; MAX_PRIMES,  ᥫ  MAX_PRIMES.
        ;
                mov     eax,2           ; 筥  2, ⠪  0  1
                                        ;     
                                        ; ᯮ짮  ᪫祭
                                        ; ந
        PrimeLoop:
                mov     ebx,eax         ; 砫쭮 祭 
                                        ; ᫥  ந
        MultipleLoop:
                add     ebx,eax         ; ᫨ ᫥饥 ந-
                                        ; 
                cmp     ebx,ecx         ;  ஢ਫ  ந
                                        ;  ᫠?
                ja      CheckNextBaseValue ; , ३  ᫥饬
                                        ; 
                mov     BYTE PTR fs:[edx+ebx],0 ;  ᫮  
                                        ; , ⠪   
                                        ;   १ ந-
                                        ; 
                jmp     MultipleLoop
        CheckNextBaseValue:
                inc     eax             ; 뫪  ᫥饥 砫쭮
                                        ; 祭 ( ᫥
                                        ;  ந)
                cmp     eax,ecx         ;  ᪫稫  ந-
                                        ; ?
                jb      PrimeLoop       ; , ஢ ᫥饥
                                        ; ⢮ ந
                pop     fs              ; ⠭ FS 뢠饩
                                        ; ணࠬ
                pop     es              ; ⠭ ES 뢠饩
                                        ; ணࠬ
                ret
        CalcPrimes      ENDP
        CodeSeg         ENDS
                END




        TASM2 #3-5/              = 173 =

                                                                               
         80287
        -----------------------------------------------------------------

               権  䬥᪮ ᮯ 80287  -
         ᪫祭  ᮢ  ஬  権  ᮯ-
          8087.  ⨬ ᪫祭   ᮯ
        80287 FSETMP,   ॢ ᮯ 80287    饭
        ०. 饭 ० ᮯ 80287 ᮮ⢥ 饭-
         ०  80286,   筮 ᯠ७  ᮯ-
          (  ᮯ  80287   ⠪ ᯮ짮  
        ஬ 80386). 筮,  ணࠬ,  ᯮ
         FSETMP  㤥 ࠡ  ᮯ 8087, ⠪ 
        ᮯ 8087  ন  .

              ࡮ ᥬ প ᮯ  80287 ࠧ蠥
         ४⨢ .287.  ஡ ଠ   ᮯ-
         80287 ᮤন   3 "ࠢ筮 㪮⢠".

                                    80387                           
        -----------------------------------------------------------------

              権  䬥᪮  ᮯ 80387 ।-
        ⠢  ᮡ  ⢮     権   ᮯ஢
        8087/80287.  ᮯ 80387  ᫥騥  -
        樨:

                FCOS            FSINCOS         FUCOMP
                FPREM1          FUCOM           FUCOMPP
                FSIN

              FUCOM 믮 㯮冷祭  ࠢ  
        ॣ ST(0)    㣨 ॣ஢ ᮯ 80387.   -
         筠 樨 FCOM,  ⮫쪮 ﭨ  १
        ⠭ 㯮冷祭,  ᫨   १⮢ ।-
        ⠢ ᮡ  ᫮,     ᪫⥫쭠  -
          ⨬ 樨,    砥 樨 FCOM. -
          FUCOM  믮  㯮冷祭  ࠢ     
        믮 祭  ⥪.

              FCOS      ᨭ  ᮤন  ॣ
        ST(0),    FSIN    ᨭ  ᮤন  ॣ
        ST(0),   FSINCOS  ᨭ  ᨭ ᮤন
        ⮣ ॣ.

              FPREM1    ⮪      ST(0) 

        TASM2 #3-5/              = 174 =

        ST(1)  ଠ, ᮢ⨬  ଠ⮬ IEEE.

              뢠  ⮬,    ணࠬ,  ᯮ 
          権,   㤥 ࠡ  ᮯ  8087  
        80287.  ஬ ⮣ - 筮 믮 権  ॠ-
          饭 ०  FSETMP    ᮯ  80287
        .

              ࡮  ᥬ প ᮯ 80387 ࠧ蠥
         ४⨢ .387.  ஡ ଠ   ᮯ-
         80287 ᮤন   3 "ࠢ筮 㪮⢠".





        TASM2 #3-5/              = 175 =

                       11. 襭 ० ࡮ ᥬ              
        -----------------------------------------------------------------

              ,   ⠥ ᯮᮡ  ᢮ 楫 ஠-
        ᥬ MASM,    ,  ⭮,     
         㪮⢥.  ஬ 祭 襩 ᮢ⨬   ᨭ⠪-
        ᮬ MASM, ࡮ ᥬ  ᪮쪮 ᣫ  㤮-
        ⢠ ணࠬ஢  ᯮ짮 MASM   襭
        ( ⨬쭮) ०.

             ஬ ᥣ 祣 襭 ० (Ideal  mode) 
        ,   ⮫쪮  室 ⥪, ।,  㤥 
        ᥡ ࠦ  ࠭ 樨.  ⮬  室
        ঠ    ⮭ MASM.    襭 ०
          ᬮ    ⪨ ࠦ,   
        믮 ⠪,   뫮 㬠.

             襭 ० ᯮ   祢 ᫮, -
        樨  樨 몠 MASM.   砥,    ᫥-
           ᯮ짮 ।⢠ 襭 ० ।, 
        ਡ  祭 讣  ᫠    ࠢ    祢
        ᫮.  ।⢠ 襭 ० ।⠢ ᮡ -
          䨪 ⥩,   MASM.

                뢠 ।⢠ 襭 ०  -
        ,   ᨭ⠪᪨ ࠢ 襭 ० -
            ६  ᨫ.   ⠪ 㤨  -
        ஡     襭  ०   ᭨ ࠧ
         ᨭ⠪ᮬ MASM  ᨭ⠪ᮬ 襭 ०.

                               ⠪ 襭 ०?                      
        -----------------------------------------------------------------

              襭  ० ࡮ ᥬ   ᨭ⠪
        ࠦ  ࠭ 権.   ᨭ⠪  ⫨-
         ⢥  ᨭ⠪ MASM,     ⮩ 
        ⭮ ॠ樥 権  祢 ᫮ MASM.  ஬ ⮣ 
          ᯮ   ᫥ (   ࡮ ᥬ)
        .

              襭 ०  ண ஢ઠ ⨯   -
        .     ᢥ   訡,  騥 
        ᢠ ॣࠬ  ६ 祭  ⨯  
        ᯮ짮 権,   룫 ४묨  室-
         ⥪,   ᥬ ᮢᥬ     ,    

        TASM2 #3-5/              = 176 =

        .  ⮣, ⮡  ࠧ । ⭮-
        ⥫쭮 祭  ࠦ, 襭 ०   -
         ⥪, 騩 ᪨  ᪨ .

             - ண  ஢ન  ⨯  ࠦ  襭 ०
        ࡮ ᥬ ࠧ     ᯮᮡ -
        祭 । १⮢.   १   ஡
        MASM,    ।०   । , 祧-
          ન  襭 ०.

             襭 ०  ᮤন  ⠪   ।,  
          ணࠬ஢      窮,  ⠪   
        짮⥫.    ⠪ ।:

          - 㡫஢  ⮢  ⢥ ;
          - ᫮ ࠦ HIGH  LOW;
          - ।᪠㥬 ࠡ⪠ ४⨢ EQU;
          - ४⭠ ࠡ⪠ 㯯஢ ᥣ⮢ ;
          - 襭 ᮤঠ⥫쭮 ४⨢;
          -  ਭ ࠦ, 祭   ᪮.

                         祣 ᯮ 襭 ०?                
        -----------------------------------------------------------------

              ⢮  稭,     ᫥ ᯮ짮
        襭 ० ࡮ ᥬ.  ᫨  砥  ᥬ-
        ,    ᬮ   ந  祭  䥪
        ࠦ   襭 ०.    ਤ 室
              ஡ ࠧ ਠ,     -
         ,     ,     .
        ᫨     ணࠬ஢  ᥬ,   -
         ᯮ짮 ।⢠ 襭  ०  ࡮  ᥬ
          ࠧࠡ⪨ ᫮ ணࠬ,  ᯮ ७ 몠,
        ⠪, ਬ,     ꥤ.

              १  ⪮ ᨭ⠪ 襭 ० ࡮
        ᥬ  ᥬ஢ 䠩  30%  ॥,  祬 
        ० MASM.    ꥬ  ணࠬ  ணࠬ -
        ᮢ, ⥬  ६    ᥬ஢, -
        ३  襭 ०.

             ண ࠢ ஢ન ⨯,   襭 ०-
        ,  ࡮ ᥬ  訡,   -
          砥   㦨  ⮫쪮  ⫠ 襩 ணࠬ
          믮.  筮 ⮬,  ࠧ 

        TASM2 #3-5/              = 177 =

        몮 ᮪ ஢ 뢠  , ⬥ ᮬ⥫
        樨  ᮮ⢥⢨ ࠧ஢ .

                襭 ० ࡮ ᥬ   -
         ᯮ 㣮 ᨭ⠪,  ,  ⥬  ,  
         ணࠬ,     ᥬ஢
          ० MASM,  ⠪   襭 ०.    ⠪ 
          ⮬  室 䠩  ४    ०  MASM  
        襭  ०  ⭮ ⠪ ,  ᪮쪮  室.
         ᮡ   ᯥਬ஢  ।⢠  -
        襭 ०,    ८ࠧ  ணࠬ, -
        ᠭ  ᨭ⠪ MASM.    ४    襭
        ०    ணࠬ, 塞  饬 室-
         .   ⮬  ⠫  ணࠬ ࠭ 
        ᮢ⨬  MASM.

                    ४祭  襭 ०  室              
        -----------------------------------------------------------------

              ४祭    ०  MASM   襭 ०
         ᯮ짮 ४⨢ IDEAL  MASM. ࡮ ᥬ ᥣ
        稭  ᥬ஢ 室 䠩  ० MASM.   -
        ४祭  襭 ० । ᯮ짮   ।
        ⮣  ०   室 䠩 㦭  ४⨢ IDEAL.  
        ⮣    ᫥饩 ४⨢ MASM     
         ᥡ ⠪,   뢠   .   ४-
          ० MASM  ० IDEAL   室  䠩  ⮫쪮
        ࠧ,  ᪮쪮 ॡ     室 䠩. ਢ-
         ਬ:

                DATA    SEGMENT         ; 砫  ० MASM
                abc     LABEL BYTE      ; abc   xyz,
                                        ;   
                xyz     DW      0       ; । ᫮ 
                                        ; ⪥ xyz
                DATA    ENDS            ;  ᥣ
                                        ; 
                        IDEAL           ; ३  襭
                                        ; ०
                SEGMENT CODE            ; 祢 ᫮ SEGMENT
                                        ; ⥯ ᫥ 
                PROC    MyProc          ; 祢 ᫮ PROC
                                        ; ⮦ ᫥ 
                        .
                        .               ;   ணࠬ஢

        TASM2 #3-5/              = 178 =

                        .               ;  襭 ०
                END     MyProc          ; ७ ⪨ MyProc
                                        ; 易⥫쭮
                ENDS                    ; ७  ᥣ
                                        ;  ॡ
                        MASM            ; ४祭 ⭮ 
                                        ; ० MASM
                CODE    SEGMENT         ; । 祢 ᫮ SEGMENT
                                        ; ⥯ ॡ 
                Func2   PROC            ;  ⥯ ⠪ ᫥ ।
                                        ; 祢 ᫮ PROC
                        .
                        .               ; ணࠬ஢  ०
                        .               ; MASM
                        IDEAL           ; ४祭 ⭮ 
                        .               ; 襭 ०
                        .               ; ணࠬ஢ 
                        .               ; 襭 ०
                        MASM            ; 饭  ० MASM
                Func2   ENDP            ;   ॡ 㪠뢠
                                        ; । 祢 ᫮
                CODE    ENDS            ;  ⠪ ॡ 

                ,   襭 ० 祢  ᫮
        ४⨢  (ਬ PROC  SEGMENT) 㪠뢠 । ᮮ⢥-
        騬  䨪஢,    浪, ⭮ -
        ,   ਭ  MASM. ஬ ⮣   -
          楤  ᥣ ᫥  ४⨢  ENDP    ENDS.
         ⮣   ᥣ  楤,  -
         稢,   ணࠬ  ⭮.  -
        訩  ࠪ᪨ ਥ,  ᮡ  ணࠬ,  ᮤঠ -
        쪮  楤  ᥣ⮢.  㪠뢠  -
        䨪 ᫥ ENDP  ENDS 易⥫쭮.




        TASM2 #3-5/              = 179 =

                                                                               
        ⫨ 襭 ०  ० MASM
        -----------------------------------------------------------------

                 ࠧ      襬   ᭮  ࠧ  
        襭 ०  ० MASM.  ᫨      MASM,  
            ᯥਬ஢    ⤥묨 ।⢠,
        ८ࠧ 訥   ணࠬ  襭 ०.
          뢠  ⮫쪮    ⮬     室  
        祢 ᫮ IDEAL    MASM.    ⠪  奬    ᢠ
        襭  ० 蠣  蠣,    ᥬ஢ ⥪
        ணࠬ  室 ᬠਢ      
        ᯮ짮   ᯥ樠   ।   襭   ०.   
        -殢 , 筮,  ਩  襭 ணࠬ஢
        楫   襭 ०.     । 㫨 
        ० MASM   襭 ०. 롮 ⠥  .

                                                                               
        ᥬ 襭 ०
        -----------------------------------------------------------------

             ࡮ ᥬ 뢠    ਭ    ணࠬ,
        ࠧ ⥪  ⤥ ᫮  ᨬ,  뢠
        ᥬ. ਬ ᥬ   ᥡ ⪨, ⠪  VALUE,
        NAME  AGE,  㣨 䨪 ᫠,  ࠦ 
        䬥᪨ 樨 (⠪  +, -, *  /).

              ⨯ ᥬ - 䨪  ᫠   饩 窮
        -   襭 ० ᫥ ࠧ .   뢠-
         ,        ᫥ 
        筮  ᨭ⠪ MASM.

                                ᥬ-䨪                         
        -----------------------------------------------------------------

              砥 䨪஢ 襭 ०   ⢥
           䨪 ᯮ짮  ᪠. 
         ᯮ짮 ⮫쪮        
        ᫥  饩 窮.

                ꥤ ( 뢠  -
        )  ।,    䨪 (   
        䨪,  㯭    襩 ணࠬ).  -
           ꥤ  ⮫쪮  ⮩  -
        ,  ன  ਭ.     ᪮-
         ,  ᮤঠ      묨  .  

        TASM2 #3-5/              = 180 =

          ⠪  㡫஢    㣨 楫,
        ਬ:

                Pennies DW      0
                STRUC   Heaven
                Dimes   DW      ?
                Nikels DW      ?
                Pennies DW      ?           ; 䫨  
                ENDS
                Take    Heaven <>

              ⮬ ਬ ,   ᮧ ६    ६
        ﬨ (   Heaven).  Dimes  Nickels 㭨-
          .   Pennies 砥  -  -
           .

              ਬ 뢠,     ⮦  (Pennies) 
           ,  ⠪   ,    
        ਢ  䫨,   MASM ᤥ 뫮 .

             ६ Pennies     Heaven ⫨砥  -
         Pennies,   ᯮ  .  뫪 
        㡫       ॡ  ⮢:  
        , 窨,   .   ਬ Take.Pennies
        ࠢ  ᬥ饭  Pennies  Heaven.   Pennies ࠢ
        ᬥ饭 ६  .



        TASM2 #3-5/              = 181 =

                                                                               
        㡫஢  ⮢
        -----------------------------------------------------------------

             襭 ०    ⠪ 㡫஢  -
        ⮢  ࠧ .        ⨯
         ࠧ ⨯,   ᫥  ,   -
         ᮤঠ  Size  ⨯     ⮩    樨,
          Amount ࠧ ⨯   ࠧ :

                STRUC   SomeStuff
                Size    DW      ?
                Flag    DB      ?
                Amount  DW      ?
                ENDS

                STRUC   OtherStuff
                Size    DW      ?       ; 䫨  
                Amount  DB      ?       ;  ⠪
                ENDS




        TASM2 #3-5/              = 182 =

                ᥬ, ।⠢騥 ᮡ ᫠  饩 窮         
        -----------------------------------------------------------------

              襭 ० ࡮ ᥬ  ᫠  -
        饩 窮  ᥣ   ᥡ ᨬ 窨 (.):

                FP      DT      1.0e7   ; 祭  饩 窮
                                        ;  襭 ०

              । 10-⮢ 祭  饩 窮 
         FP,  ࠢ  1.0e7.    ० MASM   ᯮ짮
        ⠪ ᫥  ( ⠪ ਭ,   
         ⭮):

                FP      DT      1E7     ; 祭  饩 窮
                                        ;  ० MASM

              ,     祣 宣,  ᫨
          ।饩  ணࠬ  ४⨢ .RADIX 16, -
          ᯮ㥬  㬮砭 ᭮   筮
         ⭠筮,  MASM ᥬ  祭  -
        饩 窮,  ⭠筮 ᫮ 01. ॡ   㪠-
          筮 窨,  襭 ० 襭 ० 
         ਢ  ⠪ ⠭.

                 ⮢  ᫮ ᢠ (४⨢ EQU  =)         
        -----------------------------------------------------------------

             । EQU,   뢠  ⠪  ࠢﬨ
         ᢠﬨ,  襭 ० ᥣ ࠡ뢠 
        ⥪.   ० MASM ࠢ    ࠡ뢠,  
        ⥪,    㣨  -  ᫠. ᬮਬ ᫥騥 -
        :

                ;  ᪮쪮 ࠢ
                A       =       4
                B       =       5
                C       EQU     B + A
                B       =       6

                ;  ६
                V       DW      C       ; 9  ० MASM, 10 
                                        ; 襭 ०

             MASM  ࠦ B + A  ࠡ⪥  ࠦ EQU.

        TASM2 #3-5/              = 183 =

           A ࠢ 4,  B ࠢ 5, ⠪ ࠧ, C ࠢ 9. 
        襭 ०   ࠦ ࠡ뢠 -㣮, -
        뢠    ⥪⮢  ,   ᫥  ४⨢ EQU (
         砥 B + A). ᫥⢨  襭 ० 믮-
         ⠭ ⮩ ப ( 砥 C).   ਬ-
        ,  ᪮ ᫥ ࠦ ⪫뢠  ᠭ -
        ६ V,   ⠪  B ࠭ 뫮 ८।,   6,   
        襭 ० V 㤥 ࠢ 10 (6+4).

              襭 ० ४⨢ EQU ᥣ  । ப.
          ࠢ⢠ (=) ᥣ । 塞 ࠦ.  
        ࠢ  ᢮,  ᫨  ,   ᨬ  ࠢ⢠
        (=) ਢ   ᫥ ࠦ,  ४⨢ EQU
        ⪫뢠 ᫥ ࠦ  ⮣ ,  -
          ⠭.    뢠 "࠭"  "" -
        .

                                                                               
        ࠦ  ࠭
        -----------------------------------------------------------------

             ᭮ ࠧ稥  ࠦﬨ 襭 ०  -
         MASM ⮨  㭪樨,  믮  ᪮.
         襭 ०  ᪮ ᥣ ⭮  ᮤন-
         砥   稭.    ᪮    
        ਢ   ࠧ㬥 ᫮.    ⠭
        樨 MASM  襭 ०  ᪠.

                                                                               
          ᪮ []
        -----------------------------------------------------------------

              襭  ०  ᪮  ᯮ짮
         祭 ᮤন . ਬ:

                mov     ax,wordptr

        ਢ  뢮 ।०饣 ᮮ饭,  ᫨   ⠥
        㧨  㪠⥫  (wordptr)  ॣ (AX).  ४⭮ 㤥
        ᫥ ଠ:

                mov     ax,[wordptr]

              ᭮,    㦠 ᮤন 祩, 㥬
          wordptr ( ⥪饬 ᥣ  DS)  ॣ AX.


        TASM2 #3-5/              = 184 =

             ᫨     ᫠  ᬥ饭 䨪  ᥣ-
        ,      ᯮ짮  OFFSET, ਬ:

                mov     ax,OFFSET wordptr

                                   ਬ ࠭                           
        -----------------------------------------------------------------

              ᬮਬ ᪮쪮  ਢ  ⠭, 
         ⨯묨,  祭   ᪮ ࠭,
          ਭ  ० MASM,   ⥬ ࠢ  ਬ 
        ४묨      ଠ,    -
          襭 ० ࡮ ᥬ.    㢨,
        ⪮ ᯮ짮  ᪮  襭 ०,  -
        饥  ᫥, ਢ   ।
        ⮣,   ॢ ᤥ.

                mov     ax,[bx][si]     ; ० MASM

              襭 ०  ਢ    ᨭ⠪᪮  訡.
        ᫨  ᪮ । ᮤন ,    -
        , 祢,  㦠 祭,  㥬   -
         BX,   祭,  㥬   ॣ SI. -
        筮,   । ᤥ  .   ।-
         ᤥ ᫥饥 ( ⮣ ॡ 襭 ०):

                mov     ax,[bx+si]      ; 襭 ०

                 ⭠.  ন 祩 
          OFFSET BX+SI,  ⭮⥫쭮 ⥪饣  ᥣ  ,
        㥬   ॣ  DS,  㦠    ॣ  AX.
        (  祩   ।⠢ ᮡ 16-⮢ ᫮,  ⠪
         AX -  16-⮢ ॣ. ᫨   AX AL,  -
          8-⮢  ॣ஬,   祩  㤥  ࠧ 
        .)   ਬ:

                mov     ax,es:[bx][si]         ; ० MASM

              襭  ०   ⠪ ਢ  訡.   -
         룫廊 ⠪,       ᫥饥: "-
         䨪 ८। ᥣ ES:   祭, -
           ॣ BX,  ᫮    ᮤন 祩
        ,  㥬     SI,  㦠 १  ॣ
        AX".  ,  筮,  ᫥,  , ⭮, ࠧ㬥
        ᫥饥:

        TASM2 #3-5/              = 185 =


                mov     ax,[es:bx+si]           ; 襭 ०

             ४᭮!   ⮬  ᪫뢠 ᮤন ॣ஢ AX 
        SI,    祭 ᬥ饭 ⭮⥫쭮 ॣ ES, ८-
        ।  ᯮ㥬  㬮砭 ᥣ  DS. 16-
        ⮢ ᮤন ⮩ 祩  㦠   ॣ  AX.
            騩  ᥬ ਬ:

                mov     ax,6[bx]                ; ० MASM

             ⥬⨪  㬠,   祭 祩 ,
        㥬    ॣ BX,  㬭  6.    
        - ᠭ ⮤ 樨 ᨢ?    -
         ⪠?  ⢨⥫쭮,  뢠 ଠ 襭
        ०,  砥 ᫥饥:

                mov     ax,[bx+6]               ; 襭 ०

             筮!    㧨  ॣ AX ᮤন 祩
         ⥪饬 ᥣ , 饩  6 ⮢  ᬥ饭, -
         ॣ஬ BX.  ᭥  ᪠.   ० MASM -
        ࠦ  ᥣ  ⠪  :

                mov     ax,es:[bp+8][si+6]      ; ० MASM

             ।,     祭,  饥  8 ⮢ 
        BP,  ਬ 䨪 ८। ᥣ ES:,  ...  ,
        ८।    ਬ  祭,  饬  6
        ⮢  SI.  ,    ⠪, ⭮ 㦭  祭 
          BP+8,  ᫮    ᮤন  [SI+6],  ਬ 䨪
        ८।...  ⠢ . 襭 ० 
         뢠   ⠪ ᫮ ࠭:

                mov     ax,[es:bp+si+14]

             祢, 祭,  ᯮ   ᬥ饭  BP+SI+14  
        ᥣ ES 㦠  ॣ AX.     ⭮. -
         :

                mov     al,byte ptr [bx]        ; ० MASM

             MASM 祢    ᮤন 祥  
          ⮢  㪠⥫,   ࠩ   ⮩ 樨
        ⭮   .   ,  筮,  뫠 
           ᫮ ⮫쪮   㪠⥫ (ॣ஢  ⮪),

        TASM2 #3-5/              = 186 =

          襭 ० ⠭ 筮 祢:

                mov     al,[byte ptr bx]        ; 襭 ०

             祢,  㪠뢠 ࡮ ᥬ,  BX -  -
         㪠⥫, 㦠  ॣ AL , 騩  BX ⮢
         砫 ⥪饣 ᥣ .  ਢ   ⨭
          ਬ:

                rep     movs    byte ptr [di],[si]      ; ० MASM

             MASM 祢   ८ࠧ뢠 ᨬ, -
           ॣ DI (  SI?)  ⮢ 㪠⥫?
        筮,  ⮣ ᤥ  .      -
        襭 ०,    ᫥饥:

                rep     mov     [byte ptr di],[byte ptr si]     ; -
                                                         ; 襭 ०

              ⠪   ,  ᭮,    ॣ DI  SI -
         ⮢ 㪠⥫  樨 MOVS.

             筮,  ਬ  ,   ,  ⭮,   
        MASM    㣨 ਢ  ⠭ ࠭  묨
        ᪮.    ந室, ⠩ ३  襭
        ०,      樨. ⥬ ᯮ ਬ 
        ९   ⠪ ,    . -
         ,   ᯮ짮 襭 ०  ⮫쪮 
        ⮣,  ⮡     ⠥ ணࠬ,   
        ⮣,  ⮡      樨,    ᯮ
         ᪮,   MASM 룫 쬠 㬠.

                                                                               
                  樨
        -----------------------------------------------------------------

             , ᥭ  樨 ࠦ  襭 ०-
        ,    魮      権,
        ⠢   饥  ࠦ.   ⮣, ⮡
        ᮤ⢮     権,    冷
        設⢠  権.  (.  2  "ࠢ筮 㪮-
        ⢥",   ਢ ⠡ 設⢠ 権    
          ᠭ  権 ० MASM  襭 ०.)

                                                                               
        窨   

        TASM2 #3-5/              = 187 =

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

             ⭮   (.)   ,   -
            뫠.    窨   ⮢  
        襭 ०   ண. ࠦ ᫥  -
            ।⠢ ᮡ   .  ᯮ
        㦥 ਢ ࠭ ਬ    SomeStuff    OtherStuff,
        㧨  ⥯   ॣ 祭  ⮢ -
        :

        ; 襬 ६    ⨯
        S_Stuff SomeStuff <>
        O_Stuff OtherStuff <>
        mov     ax,[S_Stuff.Amount]     ; 㧨 祭 ࠧ஬ 
                                        ; ᫮
        mov     bl,[O_Stuff.Amount]     ; 㧨 祭 ࠧ஬ 
                                        ; 




        TASM2 #3-5/              = 188 =

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

                ॡ ᯮ짮 ॣ, ᮤঠ-
        騩  ,  㣨  ᫮,  ᬥ饭  ࢮ  
          .       ६  , 
         ன  ᮢ  .      
         뫪         -
         ࡮ ᥬ,     뫠:

                mov     cx,[(SomeStuff ptr bx).Amount)

              ࡮ ᥬ ।,  ॣ BX -
         㪠⥫  SomeStaff,      㧨 ᮤ-
          Amount    ॣ CX.  ॡ 㪠-
        뢠 ᪮, ⠪   窨   ᮪ ਮ-
        ,  祬  PTR.   ᪮  襭 ०  
        ⪠ 易  BX Amount,  ,  筮, ,  ⠪ 
        ॣ    .    ⮫쪮 ,
        ⠪ ࠧ,   । 뫪   , 
           ॣ஢,   ८ࠧ 㪠⥫
         .




        TASM2 #3-5/              = 189 =

                                                                               
         SYMTYPE
        -----------------------------------------------------------------

                襭 ० ࡮  ᥬ  䨪
          稭  窨,   .TYPE MASM २ 
        襭 ०  SYMTYPE (.   1 "ࠢ筮  㪮-
        ⢠"). ᬮ     , ४⨢   ०-
         ࠡ⠥ ,    祭,  뢠饥  ⨯
        ࠧ 䨪஢:

                Abyte   DB      0
                Aword   DW      0
                Array   DD      10 DUP (8)
                        Btype = SYMTYPE Abyte   ; 1
                Wtype   =       SYMTYPE Aword   ; 2
                Atype   =       SYMTYPE Array   ; 4

                                  樨 HIGH  LOW                          
        -----------------------------------------------------------------

              襭  ० 樨 HIGH  LOW   祭.
        筮  HIGH ।  訩  (  騩)  
        ⠭,  LOW । 訩 ( 騩) , -
        :

                MaxVal = 1234h
                        mov     ah, HIGH MaxVal ; 㦠  AH 12h
                        mov     ah, LOW  MaxVal ; 㦠  AH 34h

              襭 ० 樨 HIGH  LOW    ᯮ짮
         롮 襩  襩  ࠦ,   -
          :

                WordVal DW      0
                DbVal   DD      0
                QVal    DQ      0
                        mov     bl, [BYTE LOW WordVal]
                        mov     ax, [WORD HIGH DbVal]
                        mov     ax, [WORD LOW QVal]

             ࢠ   MOV  㦠   ॣ BL 訩 
        塠⮢ ᫮  ⪮ WordVal.    MOV -
        㦠    AX  襥 ᫮ 4-⮢ 祭,  ᠭ 
        DbVal.   MOV 㦠  ॣ AX 襥 ᫮
        8-⮢ (⢥୮ ᫮) 祭  QVal.  ⨬,  ᨭ-

        TASM2 #3-5/              = 190 =

        ⠪   ,     樨 PTR: 祢 ᫮ BYTE
         WORD 㪠뢠 । ﬨ LOW  HIGH,   ࠦ-
          뫪  .

               ⠪ ᯮ짮 樨 LOW   HIGH  ᮢ⭮
          뤥  㦭  ଠ樨  祭,  饣 
        ᪮쪨 ⮢:

                DbVal   DD      12345678h
                        mov     al,[BYTE LOW WORD HIGH DVal]  ; 㦠
                                                              ; 34h  AL

              ⠭  BYTE  WORD 祢 ᫮ LOW  HIGH 뤥
            ᫮    樨  ६.   DVal - 
         ᫮ 4-⮢ 稭.  ⮡      ᫮
        樨,  ਢ, ⠩ ࠦ ᫥--
        ࠢ.   ⮬ 砥  MOV 㦠  AL "訩  
        (LOW BYTE) 襣 ᫮ (WORD HIGH) 祭 DVal".

                                                                               
        易⥫쭠  PTR
        -----------------------------------------------------------------

              ࠦ  ᯮ짮  ᮪饭 ८।
        㪠⥫.  ⮡ ᤥ ,    PTR. -
        ਬ:

                [BYTE PTR OverTheRainbow]

              襭 ० ᮪饭 㤥 룫拉 ⠪:

                [BYTE OverTheRainBow]

                                      SIZE                             
        -----------------------------------------------------------------

              SIZE  襭 ० ᮮ頥   ⢨⥫쭮
        ᫥ ,   ⮬ .    -
        ।  ப:

           theTitle     DB      "The Sun Also RIses"
           TheAuthor    DB      "Ernest Heminhway", 0
           titleSize    =       Size theTitle   ; IDEAL--18, MASM--1
           authorSize   =       Size theAutor   ; IDEAL--16, MASM--1


        TASM2 #3-5/              = 191 =

               ਬ theTitle  theAutor -  ப.   ०
        MASM   SIZE ᢠ  (LENGTH) ,  㬭
          ⨯ (TYPE).   ࠢ  뤥 ⮢ ,
            砥 1 ( ப  ⮨  ⢠ ᨬ,
        LENGTH  ᭮ ४⨢ DB ᬠਢ ப,   -
        ⮢ ). 祭 TYPE  DB ⠪ ࠢ 1.  ⮣ 
        ० MASM  titleSize,  authorSize, ࠢ 1,    
          ᫨  ப.

              襭 ०  SIZE 頥 ᫮ , -
           ⮬ ᫥ ४⨢ 뤥  (⠪
          DB    DW).  ⮬  titleSize  ࠢ    ᨬ  
        theTitle.  筮,  祭 autorSize ࠢ  ᨬ 
        ப theAuthor.  ⨬, ,  theAuthor 蠥 -
         ⮬, ⬥騬  ப.  SIZE   
        뢠,  ⮫쪮 ᫮ ᨬ  ।饩 -
        .  ᪨,    SIZE  頥  ⮫쪮 ࢮ
           ᯨ᪥  ⢠ 祭. ਬ:

          CountDown       DB      9,8,7,6,5,4,3,2,1,"Blast off"
          TwoLines        DB      "First line",13,10,"Second line"
          CDsize                SIZE CountDown  ; 1
          TLsize                SIZE TwoLines   ; 10

              CountDown   9-⮢ 祭, ᫥騬
          ப  "Blast  off".  ᬮ    ,  ࠧ  CountDown
        (CDsize)   ० MASM,  ⠪   襭 ०, 㤥 -
          1,     ࠧ ࢮ   ᯨ᪥.   ண
        ਬ,  TwoLines ( ।⠢  ᮡ  ⨯  ᯮᮡ
        ࠭  ப,  ࠧ ᨬ  ⪨
        (13)  ॢ ப (10))   ⠪.   ப  祭  
        ணࠬ   TwoLines.   SIZE 㤥 ᭮ -
         ࠧ ࢮ  ᫥⥫쭮,    -
        砥  ப  "First  line".   襭 ० TLSize ࠢ 10,
         ᨬ   ப.   ० MASM 祭 TLSIZE ࠢ 1,
        ࠧ ࢮ  DB,     (ᨬ).




        TASM2 #3-5/              = 192 =

                                                                               
        ४⨢
        -----------------------------------------------------------------

            ४⨢  襭 ० ࠡ 筮 ० MASM
          設⢥ 砥    .   -
        묨 ४⨢   ०    ⫨,    
           ࠧ.

                                 ࠢ ⨭                          
        -----------------------------------------------------------------

             ᪮  襭 ० 䨪     -
          窨,  ४⨢ ࠢ ⨭ MASM 稭-
           %.  ஬ ⮣, ⮡  筮 뢠 ࠢ-
           묨  ४⨢  樨,    ᪮쪮  .
        ४⨢ ࠢ ⨭   ० ਢ  ᫥-
         ⠡.

                ------------------------------------------
                 MASM                襭 ०
                ------------------------------------------
                .CREF                           %CREF
                .LALL                           %MACS
                .LFCOND                         %CONDS
                .LIST                           %LIST
                .SFCOND                         %NOCONDS
                .XALL                           %NOMACS
                .XCREF                          %NOCREF
                .XLIST                          %NOLIST
                ------------------------------------------

               襭 ०  ४⨢ ࠢ  ⨭-
         稭  ᨬ %,  ४⨢ %OUTS ० MASM ८-
          ४⨢ DISPLAY.

                DISPLAY " ࠩ -뢮 ᥬ"




        TASM2 #3-5/              = 193 =

                            ४⨢, 稭騥  窨                    
        -----------------------------------------------------------------

             㣨 ४⨢  MASM,    稭  ᨬ 窨
        (.),   ᭮ २. ਬ,  ४⨢ ࠢ-
         ஬,  ਬ .286,  룫 ᪮॥  -
        ,     ४⨢,  稭 ⥯  ᨬ P, ਬ
        P286N.   ४⨢ 뢮 ᮮ饭  訡  .ERRxxx -
        २  ERRIFxxx.   㣨 ४⨢ 뢠 
        ०,     ࢠ 窠.

              ᫥饩 ⠡ ਢ ᯨ᮪  ४⨢,  稭-
          窨  ० MASM,      襭 ०-
        .

                ---------------------------------------------
                 MASM                   襭 ०
                ---------------------------------------------
                .186                               P186
                .286                               P286N
                .286C                              P286N
                .286P                              P286
                .287                               P287
                .386                               P386N
                .386C                              P386N
                .386P                              P386
                .387                               P387
                .8086                              P8086
                .8087                              P8087
                .CODE                              CODESEG
                .CONST                             CONST
                .DATA                              DATASEG
                .DATA?                             UDATASEG
                .ERR                               ERR
                .ERR1                              ERRIF1
                .ERR2                              ERRIF2
                .ERRB                              ERRIFB
                .ERRDEF                            ERRIFDEF
                .ERRDIF                            ERRIFDIF
                .ERRDIFI                           ERRIFDIFI
                .ERRE                              ERRIFE
                .ERRIDN                            ERRIFIDN
                .ERRIDNI                           ERRIFIDNI
                .ERRNB                             ERRIFNB
                .ERRNDEF                           ERRIFNDEF
                .ERRNZ                             ERRIF

        TASM2 #3-5/              = 194 =

                .FARDATA                           FARDATA
                .FARDATA?                          UFARDATA
                .MODEL                             MODEL
                .RADIX                             RADIX
                .STACK                             STACK
                ---------------------------------------------

                    冷  ४⨢  䨪           
        -----------------------------------------------------------------

              襭 ० 冷 ᨭ⠪᪮    ,
        祬  MASM.  ᫨ ࢠ ᥬ ।⠢ ᮡ 祢 ᫮-
        ,   । ,   믮 ४-
        ⨢.  ᫨ ࢠ ᥬ -   祢 ᫮,   
        ।  ᥬ.

              ᮮ⢥⢨  ⨬    冷 -
         䨪  ४⨢. ஡   㢨  ᫥-
        饩 ⠡:

                ------------------------------------------------------
                 MASM                            襭 ०
                ------------------------------------------------------
                 ENDP                        ENDP[]
                 ENDS                        ENDS[]
                 GROUP ᥣ              GROUP  ᥣ
                 LABEL ⨯                   LABEL  ⨯
                 MACRO 㬥             MACRO  㬥
                 PROC ⨯                    PROC  ⨯
                 RECORD 㬥            RECORD  㬥
                 SEGMENT 㬥           SEGMENT  㬥
                 STRUC                       STRUC 
                 UNION                       UNION 
                ------------------------------------------------------

             ⨬,  ENDS  ENDP  ॡ 㪠 ᮮ⢥
          ⨨ ।.  ᫨  㪠뢠 , 
          ⠪  ,    ।饩 ४⨢ SEGMENT  PROC.
         ணࠬ ᥣ  ,  ⮡  -
        ⠥  ணࠬ.   ᮡ   ᯮ짮 -
         楤  ᥣ⮢.   ᮡ     
        ᯮ짮    ᥣ⮢  楤,    
        易⥫.

              ४⨢  ०  MASM      襭  ०

        TASM2 #3-5/              = 195 =

        . ਬ, ᫥騥 ४⨢ । 䨪-
        ,    ᨭ⠪ 몠,   ⠪ ࠧ   ०
        ᮢ.

                =       DD      DQ
                :       DF      DT
                DB      DP      DW
                EQU




        TASM2 #3-5/              = 196 =

             祭  窨 ப, 騥 㬥⠬ ४⨢     
        -----------------------------------------------------------------

             ४⨢ INCLUDE  襭 ० ਭ  -
         㬥 祭  窨  䠩:

                INCLUDE "MYDEFS.INC"

              ० MASM  窨  ॡ:

                INCLUDE MYDEFS.INC

             ४⨢ %TITLE  %SUBTTL ⠪ ॡ,  ⮡ 㪠뢠
          ப 砫  窨:

                %TITLE  "ம।" ; ਩ 
                %SUBTTL " ஢ ப" ; -
                                                ; ਩ 

              뢠  ਬ,  ॡ 㪠뢠 窨, 
            ,     -
            ப ਨ.   䠩 ⨭  -
        ਨ  .  ० MASM   ᫥  ४-
         .TITLE  .SUBTTL ⠭  ப  (
         ਨ).

                                                                               
          㯯
        -----------------------------------------------------------------

             ᮡ,     ண  ࡮ ᥬ ࠡ뢠 
        襭 ० ᥣ  㯯,    讥 ࠧ-
        稥   ନ஢  믮 ணࠬ.    設 -
        , , ⭮,      訡, -
        騬 - ⢨ ᥣ⮢  㯯.

             設⢮ 㤭⥩   ⮬   - -
        쭮 ࠪ ।  MASM (  ᫥⥫쭮 ࡮
        ᥬ஬  ० MASM)  뫪      㯯.
         ,  襭 ० ᣫ    
        ஡,   맢 ४⨢ । ᥣ⮢ 
        㯯  MASM.  ⮬   ᪠ .

                       ᥣ, ਭ饬 㯯            
        -----------------------------------------------------------------

        TASM2 #3-5/              = 197 =


              襭 ०     ᥣ,  -
        饬  㯯,  ᬠਢ  ண   㯯,
          ᥣ.  ࡮ ᥬ  ᯮ  -
        ,    ᥣ, 㦭 ᯮ짮  ८।-
         ᥣ.

              ० MASM   -㣮.   -
        䨪 ⠥  ᥣ,    㯯.  -
        ,    ० MASM 䨪 ,   
        ᥣ,   ᯮ,  㪠⥫  뤥 -
        .   맢 ⠭, ⠪    ।⢥
        頥    樨 OFFSET,  MASM ४⭮ -
         뫪  ᥣ  뫪  㯯.

             ਬ   ᭨,     -
         - ᯥ䨪 樨  MASM.  ᬮਬ ᫥ -
         ணࠬ MASM,  ன 뢠  ᥣ :

        dseg1   SEGMENT para public 'data'
        v1      db      0
        dseg1   ENDS

        dseg2   SEGMENT para public 'data'
        v2      db      0
        dseg2   ENDS

        dseg3   SEGMENT para public 'data'
        v3      db      0
        dseg3   ENDS

        DGROUP  GROUP   dseg1,dseg2,dseg3
        cseg    SEGMENT para    public  'code'

                ASSUME  cs:cseg,ds:DGROUP

        start:
                mov     ax,OFFSET v1
                mov     bx,OFFSET v2
                mov     cx,OFFSET v3
        cseg    ENDS
                END     start

              ᥣ  dseg1,  dseg2    dseg3 㯯  
         DGROUP.   १  ६  ⤥  ᥣ⮢
        ࠭   .  室 ⥪ ணࠬ   

        TASM2 #3-5/              = 198 =

        ⤥ ᥣ⮢ 뢠 ⮢ ६ (⪨ v1, v2
         v3).

                ணࠬ MASM  ॣ AX, BX  CX 㦠-
         ᬥ饭 ᮢ  ६.  ᮮ⢥⢨  ।-
        饩 ४⨢ ASSUME  - ⮣,   ᥣ  -
        ஢ ,    㬠,   MASM  㤥  
        ᬥ饭 ६ ⭮⥫쭮 ᥩ 㯯,   ன ६-
         祢 ࠭  .

              ந ᮢᥬ  !  ४ 訬 ७  MASM
          ᬥ饭  ६  ⭮⥫쭮 ⤥ ᥣ⮢
        dseg1,  dseg2  dseg3.     ᬮ  ,   
        ᥣ  㯯஢     ᥣ , -
        㥬 १ ॣ DS. ᫥ । ᬥ饭 -
         ⭮⥫쭮 ⤥  ᥣ⮢  ⥪ ணࠬ, -
            ᥣ  ᪮஢            ᥣ.
        ⢥  ᯮᮡ  뫪  ⠪ ६ ⮨  뫪
          ᬥ饭 ⭮⥫쭮 ᥩ 㯯.

             ⮡   MASM  ⮩  ஡,    ॡ
          祢 ᫮ OFFSET   㯯:

                mov     ax,OFFSET DGROUP:v1
                mov     bx,OFFSET DGROUP:v2
                mov     cx,OFFSET DGROUP:v3

              ⥯   ᥬ ४⭮  㦠 ᬥ-
        饭 ६ v1, v2  v3 ⭮⥫쭮 DGROUP ( ᮡ࠭ -
          ᥣ),         䨪
        DGROUP.  ᫨  ᤥ  訡, 祭 ᬥ饭  -
         ४⭮ । ६  ,      
        MASM  㪠,   - ந諮  ⠪.  襭
        ०   ⠪ ⭮⥩:

                IDEAL
        SEGMENT dseg1 para public 'data'
        v1      db      0
        ENDS

        SEGMENT dseg2 para public 'data'
        v2      db      0
        ENDS

        SEGMENT dseg3 para public 'data'
        v3      db      0

        TASM2 #3-5/              = 199 =

        ENDS

        GROUP   DGROUP   dseg1,dseg2,dseg3
        SEGMENT cseg para public 'code'

                ASSUME  cs:cseg,ds:DGROUP

        start:
                mov     ax,OFFSET v1
                mov     bx,OFFSET v2
                mov     cx,OFFSET v3
        ENDS
                END     start

             饭 ६ v1,  v2  v3 ४⭮  ⭮-
        ⥫쭮  㯯,   ன ᮡ࠭ ⤥ ᥣ,  
        ਭ ६.   襭 ० 䨪  DGROUP
         뫪  ६  ᥣ 㯯  ॡ.  ०-
         MASM  䨪 ⠪   室,  , 
        㦥 ᥣ,   뤠  ।०, ᫨  뫨 
        ⭮ 뫪 ।  㯯.

                      ।     쭨 ⮪               
        -----------------------------------------------------------------

              ।    쭨 䨪஢  LABEL
         PROC 뫪  䨪  ⭮⥫쭮  㯯, 
        ன ᮤন ᥣ.  ᫨ ᥣ,  ᮤন -
        䨪,    㯯,  䨪 ᬠਢ-
          ⭮⥫쭮 ᥣ.   砥,     㦭 -
        짮 ४⨢  ASSUME  CS   ᥣ,  ⮡ ।
        䨪   쭥 ⨯. ᫨  ࠣ
        ணࠬ  ० MASM:

                CODE    SEGMENT
                ASSUME  CS:CODE
                XYZ     PROC    FAR
                        .
                        .                       ;  楤 MASM
                        .
                XYZ     ENDP
                CODE    ENDS

          襭 ०  ਬ ᫥騩 :


        TASM2 #3-5/              = 200 =

                CODE    SEGMENT
                PROC    XYZ FAR
                        .
                        .    ;  楤  襭 ०
                        .
                ENDP
                ENDS


                  ⥩  ࠢ 
        ० MASM.    ᢮   室-
         㪠뢠 ᥬ ,  襭 ०  ।
        ᠬ.

                  譨, 饤㯭   䨪           
        -----------------------------------------------------------------

             直 ࠧ,        ⨯  (BYTE,  WORD  
        ..), ਬ  ४⨢ EXTRN  GLOBAL,  ᯮ짮
         :

                STRUC   MoreStuff
                HisStuff        DB      0
                HerStuff        DW      0
                ItsStuff        DB      0
                ENDS
                EXTRN   SNAME:MoreStuff

              ᢮⢮    ⠭   ᠭ묨 ࠭ 襭ﬨ 
        樨 窨   뫠   ,  -
            譨  ⭮襭  襬 室 .
         筮 ⮬,   ᫨   ।  
          .  SIZE ⠪ ४⭮ ᮮ頥  ࠧ
        譨  .  饤㯭 ᨬ  襭
        ०  ।     ४⨢ PUBLIC.   
        ⠪  ८। ६.   MASM    饤㯭
        ᨬ    ணࠬ,   ࠭稢 ᯮ-
        ,      ८। ᨬ. ਬ:

                Perfect = 0
                        Public Perfect  ;  Perfect 饤㯭
                Perfect = 10            ; ८। 祭 Perfect

              ० MASM PUBLIC Perfect ࠢ 8,    㫥 Perfect
        ८। ᫥ ᠭ PUBLIC.  襭 ०, -

        TASM2 #3-5/              = 201 =

         饤㯭묨 䨪 ⠭     ,
        㣮  ,     䨪  
        ᠭ EXTRN, 砥 祭 Perfect 10.




        TASM2 #3-5/              = 202 =

                                                                               
        㣨 ⫨
        -----------------------------------------------------------------

                ࠧ 뢠 ᪮쪮 ⥫ ⫨-
        稩 ० MASM  襭 ०.

                                ४஢                        
        -----------------------------------------------------------------

              襭 ० ࡮ ᥬ   ᥣ
        ४஢   ᥣ⮢ (private),  ࠢ-
            ࠭ ࠭  ࠣ.    騪 
        ॡ  ४஢,   ᥬ஢  ணࠬ  
        襭  ०   祭 ꥪ  襣 -
        ,    騪 믮  ,  祬
         ꥪ 䠩, ᣥ஢  ० MASM. 
        뢠,   ࠧ ⠪ ४஢  ந  
        ० MASM (   ० IDEAL):

                SEGMENT DATA PRIVATE PARA
                VAR1    DB      0
                VAR2    DW      0
                ENDS
                SEGMENT CODE
                        ASSUME ds:DATA
                        mov     ax,VAR2 ; ४஢  ॡ
                ENDS

              ࠧ稥    ,    .   
        ⮬ 㯮 ⮫쪮  襣 ᢥ.

                                                                               
        ࠭ 樨 BOUND
        -----------------------------------------------------------------

              樨 BOUND ॡ  㪠뢠  ࠭  ⨯  WORD
        (᫮),   DWORD ( ᫮).    ।
            ࠭    ⠭ ࠧ஬   ᫮,
         ࠭ 室 ८ࠧ ࠭  DWORD 
        ࠧ (  DWORD PTR).   ० MASM     -
        :

                BOUNDS  DW      1,4      ;    ࠭
                BOUND   DWORD PTR BOUNDS ; ॡ  ० MASM


        TASM2 #3-5/              = 203 =

               襭 ० ॡ ⮫쪮 :

                BOUNDS  DW      1,4     ;    ࠭
                BOUND   [BOUNDS]        ; ᪠  襭
                                        ; ०

                              ਨ  ப                      
        -----------------------------------------------------------------

              襭  ० ਨ  ப -
        ,   ப.  ⮡ ⠢  ப਩  ⮩
        ࠬ,   㪠 । ࠬ஬ ᠭ (&):

                MACRO DOUBLE ARC
                        SHL     arg,1   ; 㬭 &ARG  2
                ENDM

                ப 뢠  襭 ०  -
         맮 DOUBLE BX,   䠩 ⨭ 뢥:

                SHL     bx,1    ; 㬭 BX  2

              㣮 ஭, ᫨ ப । ᫥騬 -
        ࠧ:

                MACRO DOUBLE ARC
                        SHL     arg,1   ; 㬭 ARG  2
                ENDM

          䠩 ⨭ ARG   㤥:

                SHL     bx,1   ; 㬭 ARG  2




        TASM2 #3-5/              = 204 =

                                                                               
         䨪
        -----------------------------------------------------------------

             ᯮ짮 ⥩   䨪஢  ࡮
        ᥬ   室  襭 ० ࠧ蠥 ⮬-
        ᪨ (筮 ⠪,  ᫨   㪠 ४⨢ LOCALS).

            ࠢ ணࠬ஢  ० MASM   襭 ०     
        -----------------------------------------------------------------

             ⮡ ᪨          -
        ⥫쭮 楫⭮ ।⠢  ० MASM  襭  ०-
            ࠧ    ,   ਢ ਬ   ⮩ 
        ணࠬ,  ᠭ  ० MASM   襭  ०.
        稢  ਬ  ⠢ ਨ  ⨭,  ᬮ
        業 २⢠, ।⠢塞 ᨭ⠪ᮬ 襭 -
        .

              ⮫쪮,      ணࠬ   ਬࠬ
        襣 ⨫  ணࠬ஢:  樨    뢠
        楯樨 襭 ०,    ਫ   -
        ,  ᯮ짮 ⮫쪮  ⢥ ࠧ  樨 -
          ⥩ 襭 ०   ⫨稩  -
         MASM.

             ணࠬ  ਬ 뢠 ப  ࠭,  ८-
        ࠧ  ⥪   ய 㪢 (孨 ॣ),   । ⥬,
           DOS,  뢮 १  ࠭. ⮡ ⬥,
          室   ணࠬ ࠧ砥  ० MASM  
        襭 ० (IDEAL),     ⥪ ணࠬ 㬥-
         ਨ ( 稭  窨  ⮩). -
        ,  ਩ ; #4 뢠 ,  㦭  ᮮ⢥-
        饥  ᠭ   ஬ 4,  ᫥饥  ⨭  ࠧ
        " ० MASM  襭 ०".  ஬ ⮣,  뤥-
          ⫨稩  襭 ०,   ᪫稫   ਬ஢
        設⢮ ਥ.  ⮡ ,  ࠡ⠥  -
        , ⠩  ணࠬ.  ࠢ   -
        襭 襭 ० ⠩ ⠪  ணࠬ.
                            ਬ ணࠬ  ० MASM                     
        -----------------------------------------------------------------

        ;  <masexmpl.asm>
        ; ਬ ணࠬ ८ࠧ ப  ய 㪢
        ;  ० MASM

        TASM2 #3-5/              = 205 =

                TITLE   Example MASM Program ;  ਩ 砥-
                                             ;   
                .286
        DataSize        = 128                ; ࠧ ஢ -
                                             ; 뢮
        dosint          MACRO intmun
                mov     ah,intnum            ; ᢮  FN AH
                int     21h                  ; 맢 㭪 DOS
                                             ; &INTNUM
        ENDM

        stk     SEGMENT STASK
                db      100h    DUP (?)      ; १ࢨ஢
                                             ; ࠭⢮  ⥪
        stk     ENDS

        data    SEGMENT WORD
        inbuf   db      bufsize DUP (?)      ;  
        outbuf  db      bufsize DUP (?)      ;  뢮
        data    ENDS

        DGROUP  GROUP   stk,data             ; 㯯஢ ᥣ
                                             ; ⥪  

        code    SEGMENT WORD
                ASSUME  cs:code              ; , CS - 
                                             ; ᥣ 
        start:
                mov     ax,DGROUP            ; ᢮  ᥣ
                mov     ds,ax                ; DGROUP DS
                ASSUME  DS:DGROUP            ;  㬮砭 ᥣ⮬
                                             ;  㤥 DS
                mov     dx,OFFSET DGROUP:inbuf ; 㧨  DX
                                             ; ᬥ饭 inbuf (
                                             ; )
                xor     bx,bx                ; ⠭ 
                call    readline             ;   ப
                mov     bx,ax                ; ᢮ BX 
                mov     inbuf[bx],0          ;  騩
                                             ; 㫥 ᨬ
                push    ax                   ; ࠭ ॣ AX
                                             ;  ⥪
                call    mungline             ; ८ࠧ ப
                                             ;  孨 ॣ
                pop     cx                   ; ⠭ 稪
                mov     dx,OFFSET DGROUP:outbuf ; 㧨  AX

        TASM2 #3-5/              = 206 =

                                             ; ᬥ饭 outbuf (
                                             ; 뢮)
                mov     bx,1                 ; ⠭ 뢮
                dosint  40h                  ; 㭪  䠩
                dosint  4ch                  ; 室  DOS

        ;  ப (dx => ),   AX 祭
        ; 稪
        readline        PROC    near
                mov     cx,bufsize           ;  ࠧ 
                dosint  3fh                  ; 㭪 ⥭ 䠩
                and     ax,ax                ; ⠭  稪
                                             ; 䫠 
                ret                          ;   뢠
                                             ; ணࠬ
        readline        ENDP

        ; ८ࠧ ப  孨 ॣ
        mungline        PROC NEAR
                mov     si,OFFSET DGROUP:inbuf ;   inbuf
                                             ; १ SI
                mov     di,0                 ; 樠஢ DI
        @@loop:
                cmp     BYTE PTR[si],0       ;  ⥪?
                je      @@done               ; ᫨ ,  ३
                                             ;  @@done
                mov     al,[si]              ;   ᫥騩
                                             ; ᨬ
                and     al,not 'a' - 'A'     ; ८ࠧ  孨
                                             ; ॣ
                mov     outbuf[di],al        ;    뢮
                inc     si                   ;  ᯮ짮 lodsb,
                                             ; stosb ...
                inc     di                   ;   ਬ!
                jmp     @@loop               ; த ८ࠧ
                                             ; ⥪
        @@done: ret
        mungline        ENDP                 ;  楤
        code    ENDS                         ;  ᥣ
                END     start                ;  ⥪  窠
                                             ; 室 DOS
                         ਬ ணࠬ  襭 ०                  
        -----------------------------------------------------------------

        ;  <masexmpl.asm>

        TASM2 #3-5/              = 207 =

        ; ਬ ணࠬ ८ࠧ ப  ய 㪢
        ;  襭 ०
                IDEAL                                                ; #1
                #TITLE   Example MASM Program "ਬ ० IDEAL"  ; #2
                                               襭 ०
                P286N                                                ; #3
        BufSize        = 128

        MACRO   dosint  intmun                                       ; #4
                mov     ah,intnum
                int     21h
        ENDM

        SEGMENT stk     STASK                                        ; #5
                db      100h    DUP (?)
        ENDS                                                         ; #6

        SEGMENT DATA    WORD                                         ; #7
        inbuf   db      bufsize DUP (?)
        outbuf  db      bufsize DUP (?)
        ENDS    DATA                                                 ; #8

        GROUP   DGROUP  stk,data                                     ; #9

        SEGMENT CODE    WORD                                        ; #10
                ASSUME  cs:code
        start:
                mov     ax,DGROUP
                mov     ds,ax
                ASSUME  DS:DGROUP
                mov     dx,OFFSET inbuf                             ; #11
                xor     bx,bx
                call    readline
                mov     bx,ax
                mov     [inbuf + bx],0                              ; #12
                push    ax
                call    mungline
                pop     cx
                mov     dx,OFFSET outbuf                            ; #13
                mov     bx,1
                dosint  40h
                dosint  4ch

        ;  ப (dx => ),   AX 祭
        ; 稪
        PROC    readline   near                                     ; #14

        TASM2 #3-5/              = 208 =

                mov     cx,bufsize
                dosint  3fh
                and     ax,ax
                ret
        ENDP                                                        ; #15

        ; ८ࠧ ப  孨 ॣ
        PROC    mungline   NEAR                                     ; #16
                mov     si,OFFSET inbuf                             ; #17
                mov     di,0
        @@loop:
                cmp     [BYTE si],0                                 ; #18
                je      @@done
                mov     al,[si]
                and     al,not 'a' - 'A'
                mov     [outbuf + di],al                            ; #19
                inc     si
                inc     di

        ; LODSB/STOSB
                jmp     @@loop
        @@done: ret
        ENDP    mungline                                            ; #20
        ENDS                                                        ; #21
                END     start

                         ० MASM  襭 ०                
        -----------------------------------------------------------------

              ஡ 뢠 ࠧ  ﬨ, -
        ४⨢    ࠭  ० MASM  襭 ०  
        । ணࠬ.   ⭮   ணࠬ
         襭 ०. ࠢ ⬥祭 ﬨ ப-
          ० MASM.

             1. ᯮ  室    襭  ०  ४⨢
                IDEAL.    㬮砭 ࡮ ᥬ ᥣ 稭 -
                ᥬ஢ 室 䠩  ० MASM.  ॡ-
                 㪠뢠 ४⨢ MASM ⮫쪮  ⮬ 砥,  
                 ४ ⭮  ० MASM,  ३ ࠭
                 襭 ०.

             2.  業  ४⨢ %TITLE  ,   
                ४⨢   䠩 ⨭ (᫨  訫 ᮧ
                ,  㪠   䠩 ⨭  ᯮ짮 ࠬ

        TASM2 #3-5/              = 209 =

                 ப /L    ᥬ஢  ணࠬ).  
                襭  ०  ᯮ  ४⨢ %TITLE,   
                TITLE (  業),  ஬ ⮣ ப 
                ॡ      窨 ("").    
                㪠   ப ਩,      ०
                MASM ⠫   .

             3. ४⨢  .286 ० MASM  襭 ० ਭ
                 P286N.     襭 ० 䨪 
                  稭  窨,   ४⨢ 祭 -
                 MASM  㣨 ४⨢,  稭騥    窨,
                .     ⨭    -
                 ᫠,  㦨 ⮫쪮  ⮣, ⮡ 
                ࠧ  ० MASM  襭 ०.   -
                 ணࠬ 樨  80286   ᯮ-
                .

             4.  襭 ०  ப ᫥ ᫥ ४-
                ⨢ MACRO,   । ,   ० MASM.

             5.  ᥣ  ४⨢ SEGMENT ᫥  襭 -
                  ४⨢.

             6.   襭  ०  ᯮ짮   ᥣ-
                 ENDS    㦭  㪠뢠  ᮮ⢥饥  
                ᥣ,    ॡ  ० MASM. ᫨  -
                ,   㤠 (DATA).

             7.  ,    5. ।  ⠪ 㪠뢠 祢
                ᫮ SEGMENT.

             8. ᫨    㪠뢠  ४⨢ ENDS ᮮ⢥饥 
                ᥣ,     ᫥ ᫥ ४⨢,   ।
                ,   ० MASM.

             9.   襭 ० ४⨢ GROUP ।  
                㯯 ᥣ⮢  (DGROUP).    ᫥  ᯨ᮪
                ᥣ⮢ ,    ꥤ   -
                .  MASM GROUP   १ࢨ஢.

            10. 筮 㭪 5.  祢 ᫮ SEGMENT ।
                .

            11.    樨 OFFSET  㦭 ᯮ짮 䨪-
                 㯯.   襭  ०  INBUF  ᬠਢ
                ⭮⥫쭮 砫 DGROUP, ⠪  INBUF 室  -

        TASM2 #3-5/              = 210 =

                  ᥣ⮢,  ꥤ    㯯.
                 MASM,  ⮡ ४⭮ । ᬥ饭 ६ 
                ᥣ 㯯,   㦭 뫮   뢠  㪠뢠
                DGROUP:inbuf.

            12. ࠭ [INBUF+BX] ⨬   ०,  -
                 INBUF[BX] ० MASM  襭 ० ᯮ짮
                 ᪠.   ⮬ ०  ࠭  뫪 
                     ᪮.

            13. 筮 㭪 11.    ⠪  㦭  
                  㯯,  ⮡ १ࢨ஢ ६  ᥣ
                㯯.    MASM,  ⮡    ४⭮   ᬥ饭
                OUTBUF, 㦭 뫮 뢠: DGROUP:outbuf. ᫨ 
                 䨪 DGROUP,   ਬ 뢮   ᠭ
                 ⥪,   ⮬ MASM  뤠   ।०
                 ࠢ쭮 ࠡ.

            14.  楤  ४⨢ PROC ᫥ ᫥ ४⨢, 
                 । ,   ० MASM.

            15.    襭 ०  襭 楤 -
                 ENDP,    㦭 㪠뢠  ᮮ⢥-
                饩 楤,   㦭 뫮   ० MASM.

            16. 筮  㭪 14.  ४⨢ PROC । 
                楤.

            17. 筮 㭪 11.   ⠪  㦭 뢠
                DGROUP:inbuf,   MASM.

            18.   襭  ०   ⠭ ࠧ ࠦ 
                 ᪠ o PTR.  ࠦ ० MASM BYTE
                PTR ABC 筮 ࠦ BYTE ABC  襭 ०.

            19. 筮  㭪 12.   襭 ०  뫪 
                ᮤন  㦭 ᥣ   ⠪ ࠦ
                  ᪮.

            20.   楤   (易⥫쭮) 㪠뢠 ᫥ -
                ४⨢ ENDP,   । ,   ० MASM.

            21. 筮 㭪 6.  ४⨢ ENDS  ॡ 㪠-
                   ᮮ⢥饣 ᥣ,     
                   .


        TASM2 #3-5/              = 211 =

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

        CrawWord, John H.,  Patrick P.  Gelsinger. Programming the 80386.
        Alamedis:  Sybex, Inc., 1987. (  ணࠬ஢  -
         80386).

        Duncan, Ray.  Advanced MS-DOS.  Redmond:  Microsoft Press,  1986.
        (⮥ ணࠬ஢  MS-DOS).

        Lafore, Robert. Assembly Language Primer for the IBM PC & XT, New
        York:  The Waite Group,  1984.  (祡   ᥬ  
        ஢ IBM PC  XT).

        Murray, William H.,  Chris Pappas.  80386/80286 Assembly Language
        Programming. Berkeley: Osborne/McGraw-Hill, 1986. (㪮⢮ 
        ணࠬ஢        몥    ᥬ      ஢
        80286/80386).

        Norton, Peter,  John Socha. Peter Norton's Assembly Lnguage Book
        for the IBM PC.  New York: Brady Communications, 1986. (㪮-
        ⢠ ⮭  ணࠬ஢  몥 ᥬ).

        Rector, Russel,  George   Alexy,   The   8086   Book.   Berkeley:
        Osborne/McGraw-Hill, 1980. (㪮⢮   8086).

        Sargent, Thomas   P.   An   Introduction   to  Assembly  Language
        Programming for the 8086 Family.  New York:  John Willey &  Sons,
        Inc.,  1985.  (     ᥬ  ஢ ਨ
        8086).

        Turley, James L. Advanced 80386 Programming Techniques. Berkeley:
        Osborne/McGraw Hill,  1988.  ( ⮤ ணࠬ஢ 
        ᥬ   80386).

        Wilton, Richard. Programmer's Guide to PC and PS/2 Video Systems.
        Redmond:  Microsoft Press, 1987. (㪮⢮ ணࠬ  -
        ⥬ ஢ PC  PS/2).




        TASM2 #3-5/              = 212 =

               ਫ A. 䥩 ࡮ ᥬ  ࡮ ᨪ        
        -----------------------------------------------------------------

             ணࠬ⠬, ࠡ騬  ࡮ ᨪ, ⥫쭮  -
        砥    ᮢ⨬  (᭨  )  ࡮ ᥬ 
        ஠ᥬ஬   Microsoft.     ਢ -
         ਬ ( ᮤঠ騥  㪮⢥  ࡮ ᨪ,
        ⠪  㣨)  ,  ࡮ ᥬ   ᢮
           ࡮ ᨪ.

                   ਬ砭:   ਬ  ࡮ ᨪ,   -
              砥,     ᨨ 1.0  .

              ࡮ ᨪ ।ᬮ७  ᯮᮡ 맮 ணࠬ-
          ᥬ:

             1.   맮 楤, ᮤঠ饩 ஥ ,   -
                  ᯮ짮  CALL.

             2.   ⭮ 樨    ᯮ짮 -
                  CALL ABSOLUTE:.

             3.   ࠡ⪨ 뢠   室    -
                 ணࠬ    ᯮ짮  맮  CALL  INTERRUPT 
                 ஥ প ࡮ ᨪ.

              롮 ⮣   ⮤ 㦭 ᯥ ࠭
        ।  ॣ஢. 맮 CALL INTERRUPT ⫨砥 -
        襩 ॡ⥫쭮  ⮬ : 㦭 ᯥ稢 ࠭
        ⮫쪮  ॣ஢  SS (ᥣ ⥪)  SP (㪠⥫ ⥪). 
        ᯮ짮 㣨  ⮤ 㦭 ࠭ ⠪  ॣ
        DS (ᥣ )  BP (㪠⥫ ).

             ࠭ ॣ஢  (    ।饬  ⥪  ନ
        "࠭ ॣ஢" 砥  ᠬ  "࠭ ॣ-
        ஢ । 맮 (筮  ⥪)  ⠭  ᮤন-
          ᫥  맮  ணࠬ    襭")  易-
        ⥫쭮 砥,      ॣ  ⥪, 
            饯ਭ ᯮᮡ ᯥ祭 ࠭  -
        ন.  ணࠬ     ॣ-
        ஢.  ⮬ 砥  㦭 ਭ   ।஦-
        .

              ਬ "" ⮬       ।-
        ,  ᮡ    ᠥ ணࠬ஢  -
        ᥬ.   襬 㪮⢥    MS-DOS    ᯥ樠쭮

        TASM2 #3-5/              = 213 =

        ਢ,   ⭮ 뢠   ᮤন
        㪠⥫ ⥪  㪠⥫  (  㣮 ॣ),
          ᥣ   . MS-DOS  ⠪ , 
         ⠭ 뢠 ⨢ ଠ樨,  ਢ-
          㪮⢥  DOS. ⮬  ।࠭ ᥡ  -
         ⭮⥩. ࠭ 室 ॣ஢  
        ⢥ ந⥫쭮 ணࠬ.  ⮬   -
          ஬ ⮣  ७ᨬ 襩 ணࠬ   -
         ᨨ MS-DOS.

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

             ࡮ ᨪ । ࠬ ணࠬ   ᥬ
          ⥪.    ⠪ 맮  쭨 ⨯ (FAR): ᫥ 4
          ⥪ ।⠢  ᮡ    ,  ᯮ㥬
        ࡮ ᨪ  襭 ࠡ ணࠬ. ᮬ ࢮ-
         । ணࠬ ࠬ 㤥 [SP+4].  
        ᨬ    ⥪ ॣ  ⮬ 祭 㦭  .
          ⮬,  ⥪ 㢥稢  ஭    ᮢ
        ().

               ६ (⫨筠  ᨢ), ।
         ⥪, ਢ  㢥祭 ⥪  4 . ࡮ ᨪ -
        ।  ᥣ (2 ), ⠪  ᬥ饭 (2 ) ⠪  -
        ६.   㢨 ,    २⢠.

             ࠬ, ।  祭 (⠪   ⠭  
        ࠦ),  ⠪   ⥪ 4 .  ⮬ 砥 -
          ⥪   祭 ࠦ:   ⮩ 祩
          ,   祭 ࠭.    ᫮-
        ,    ⢥ २⢠. -,    -
        ணࠬ   ᥬ  ࠡ뢠 । 祭
        . -, ணࠬ,  訡筮 
        祭  ࠬ,  ।  祭   뫪, 
            .

              ࠧ, ᯮ짮 ⥪   ⠭-
           ணࠬ. 騩 ਬ 뢠,  祬 ⮨
         २⢮. ।, 祭 楫 ६ %x ࠢ
        4,      ணࠬ  ᥬ MYROUTINE, 
        ਭ । 楫 祭.  ணࠬ  㤥
        ࠡ  , ᫨  맮   ஬ CALL MYROU-
        TINE(%x),   ஬ CALL MYROUTINE(4). ᫨ ணࠬ 뫠
        맢     CALL SUBROUTINE(4%)  ⠥ ஢

        TASM2 #3-5/              = 214 =

        祭 । ࠬ,    类 ࡠ -
        ஢    ,  ६ ࠭ 楫 祭
        4.

             ⨬,   ஬ 砥 ⨯  㪠  (%4).  
           ᮫⭮ 室,    . ᫨
         ࡮ ᨪ ।,  祭 4 -  ᫮  -
         筮,   ணࠬ ᯮ짮  ୮ -
        祭 (   4-⮢ ᫠   ୮  筮)  
        믮﫠  ४⭮. ⮡ ࠭஢ । 祭
        ४⭮ ⨯,    맮 ணࠬ  㪠뢠
        ⨯ ६.

             ᫨  । ணࠬ ᨢ,  ⥪ 㢥 
        60  ( ⮬   ।  ଠ樨 -
            ⭮).   㪮⢥  ࡮ ᨪ ४-
         । ࠬ ⨯ ᨢ,   楫 祭,  
         । ᨢ 楫.  ।  ᥣ ᨢ -
        쪨 ࠭ ࠬ஢      ᪥,
        㬥  ६,  室  믮 襩 ணࠬ,  
        ᯥ ७ᨬ 襩 ணࠬ  ࠡ  ᫥-
         ﬨ ࡮ ᨪ.

             ।, ਬ,       ணࠬ,
        ன ॡ   ⥪ ⮫쪮 㪠⥫  BP.  ⮬
        砥 祭  ᮬ ࢮ ࠬ 㤥 [SP+6]. ᫨
           ᫨  ⥪  ॣ,  祭  ᮬ -
         ࠬ 뫮  [SP+8].

              ।,   ࠬ ।⠢  ᮡ
        楫  祭  । ணࠬ  ᥬ  -
        .  ⮬ 砥    楫 祭    ॣ
        CX   権:

              push  bp                ; ࠭ 㪠⥫ 
              mov   bp,sp             ; ࠢ 㪠⥫  
                                      ; 㪠⥫ ⥪
              les   di,[bp+6]         ; ES ᮤন 祭 ᥣ,
                                      ; DI - ᬥ饭 祭
              mov   cx,ES:[DI]        ;  祭  CX

                     ਬ砭: 祭    㤥  室  ⮬ 
               ᥣ,    ६.   
                ⮬,  ⮡  㯠  祭 ᯮ짮 ४-
                  .   ᪠  ६, -
                 室  ⥪饬 ᥣ ,   ஡-

        TASM2 #3-5/              = 215 =

               .

              㣮 ஭, ᫨   ,  楫᫥  -
          ।   뫪,    祭,  [BP+6] ᮤঠ
          ᬥ饭 ६   ᥣ .  ⮡  -
          楫 祭  ॣ CX,  뫮  :

              push  bp                ; ࠭ 㪠⥫ 
              mov   bp,sp             ; ࠢ 㪠⥫ 
                                      ;  㪠⥫ ⥪
              mov   bx,[bp+6]         ;   祭  BX
              mov   cx,[bx]           ;  । 祭
                                      ;  CX

               ணࠬ ।,  ६  室
          ⥪饬  ᥣ  ,    祭 ६
        室 ⮫쪮 ᬥ饭 ६  ⮬ ᥣ.

              । ࠬ, ᫨  ᥣ 㤥 ।-
        ,  । ⢫  祭. ᫨ 祭 
        ᠬ  ।  뫪,  祣   :  
          ६ 㤥   ᥡ ⥪騩 ᥣ . 
        㣮 ஭, ᫨  襩 ணࠬ ।,  -
        ६ ।  뫪,    ⠪,  祭 
          㤥 ᮤঠ ४⭮ 祭  ,  ⠪
         ᥣ 㤥 ࠢ.  ࠧ, ணࠬ 㤥
          ࠢ쭮 祭,  (᫨  ⠥ -
          祭  । ६) 㤥  
           ।᪠㥬묨 १⠬.

             । ࠬ஢  뫪 ⥫쭮      ⠪
        ६,    ப, ᨢ  ᫠  饩 窮. 
        ६   筮 묨,  뢠   ஡-
        ,  ᫨   ⢨⥫쭮 ।  ⥪.  
        祭  ६  ⥪ ਬ୮  -
        ⠬    뢠   ⥪    ࠡ  ६ 
         .  ப ६ (᫨,  筮,  ப
          ᫨誮  ⪠) ⭮,   筮 
        ࠡ⪨ ப   ॣ  믮 㯠  -
        .




        TASM2 #3-5/              = 216 =

                 ६, 室騥  ⥪饣 ᥣ           
        -----------------------------------------------------------------

             ᫨ । ६  室  ⥪饬 ᥣ
        ,     㯠  祭 ६  ணࠬ  -
        ᥬ  ॡ  ᥣ, ⠪  ᬥ饭  ६.
        ࡮ ᨪ ᥣ ।  ⥪   ६  ᥣ-
        ,  ᬥ饭.   ࠧ,  ணࠬ  ᥣ  㯥
           ६.

              , । ᥣ, ᮤন   2  ,
        ।⢥ ᫥  ᬥ饭 ࠬ.  㤮-
         ᯮᮡ ᯮ짮 ⮩ ଠ樨  襩 ணࠬ  -
        ᥬ -  ᯮ짮 樨 LES.

              LES 㧨  㪠 ॣ 祭  ᬥ-
         ६,  ॣ ES -  , ।⠢ ᮡ
        ᥣ.   ᯥ          ६-
        , ᨬ  ⮣,   ᥣ   室.

             । ,   襩 ணࠬ  㦭  
        祭 楫᫥ ६  ॣ CX. ᪮ ॣ
        ES ࠭  㦭,   ᯮ짮  LES:

                 push  bp                 ; ࠭ 㪠⥫ 
                 mov   bp,sp              ; ࠢ 㪠⥫  
                                          ; 㪠⥫ ⥪
                 les   di,[bp+6]          ; ES ᮤন ᥣ, DI -
                                          ; ᬥ饭
                 mov   cx,ES:[DI]         ;  祭 ६
                                          ;  CX

               ।      ६  ࡮
        ᨪ   ணࠬ, ࠡ饬  ᥬ, 
        ணࠬ, ᨬ  ⮣,  ࠭ .  ᫨  
        ९  ᢮  ணࠬ    ६  ᨢ 
        㣨 ᥣ ,   砥 ᯮ짮   
        ६  樨 LES   ਤ ९뢠 ண-
        ࠬ, ॠ  ᥬ.

                                    CALL                           
        -----------------------------------------------------------------

               ⨯  CALL -  (near)   -
         (far). 쭨  CALL 室  ࠭ ⥪饣 ᥣ-

        TASM2 #3-5/              = 217 =

         ,   - .

              ࡮ ᨪ ਢ   ஡   ⮫쪮
          CALL ABSOLUTE, ᪮  楫   ᯮ-
            .   ࠧ,    ࡮  ᨪ
        ॡ,  ⮡  ணࠬ, 뢠 ஬ CALL ABSO-
        LUTE, 蠫 믮   쭥    ⮬-
        ᪨ ஢  CALL 쭥 ⨯  । -
        ࠢ ⠪ ணࠬ.

             맮 CALL INTERRUPT   ஢ 맮 쭥-
          ⨯,    ࡮  ᨪ ࠡ뢠  ७ ࠧ.
        ᫨   ᢮ ᮡ⢥ ࠡ稪 뢠,  㦭
        ⮫쪮   । ࠢ ⭮  ணࠬ ࡮ ᨪ
        ᯮ짮  IRET (  뢠).

             ஥ ᥬ 砥  ணࠬ    -
        樨.  饬 砥  㤥 室  ⥪饬 ᥣ ,
         ࡮ ᨪ  ࠧ㬥 ⮣,  ⠪ ணࠬ ⠪-
          쭨 ⮬. ࡮ ᨪ 㤥 ⮬-
         ஢ 맮  , ⮬    㦭  ᯮ짮-
            ᢮   RET. ᫨    -
        ணࠬ   ,  㦭  ३    
        .

                    ਬ砭: ᪮   ࡮  ᨪ    ᯮ
               ணࠬ-騪 DOS LINK,     ᯮ
                 ⮬,  ⮡    ணࠬ 饤㯭묨
               (PUBLIC),   뢠   ᢮ ணࠬ,   -
               .

                                                                               
        祭  ⥪
        -----------------------------------------------------------------

             । 襭 ணࠬ     㡥   ⮬,
          ᥭ  ⥪ ॣ 祭  ⥪.  -
         ᤥ 訡, ᮡ ᫨  襩 ணࠬ ᯮ-
         ᫮ ᥭ  ⥪  祭   ॣ஢.

             ᫨   ᫨誮  ॣ஢,    ணࠬ
        ᫥  맮       ࠢ, ⠪ 
        ࡮ ᨪ ࠧ㬥,  ᫥    ⥪  -  
         . ᫨   ᫨誮  ॣ஢,  -
            䥪.


        TASM2 #3-5/              = 218 =

              믮  㧪  祭 㦭 -
           ᥣ ॣ஢, ⠪    ਢ  ᮢ-
        ⨬ 襣 室      ᫥騬  ﬨ  DOS
        (ਬ, 樮 ⥬ OS/2).




        TASM2 #3-5/              = 219 =

                   ணࠬ  ᥬ  ࡮ ᨪ           
        -----------------------------------------------------------------

             ᫨  ᮧ ணࠬ  ᥬ    ८ࠧ-
           ଠ .COM, ᯮ㥬  ணࠬ ࡮ ᨪ, 
         ᯮ짮 ਬ  䠩  㪮⢠  -
         ᨪ:

                TASM %1;
                TLINK /t %1;

              ᥣ ⥪  㦭, ⠪  ணࠬ  ᥬ-
          ᪥ 㤥 ᯮ짮 ⥪,   訫 -
         ࡮ ᨪ.

             ᫨   ᯮ  砫 ணࠬ  ORG 100h,
         ࡮ ᥬ 㤥  㬮砭 稭 믮  -
         100h.     㪠  ORG  ( ᫥-
        饩  䨪樨).

             ᫨  ணࠬ ।祭  ࠡ   
        80186, 80286  80286,   砫  ᥬ  㪠
        樨 .186, .286  .386.  ࡮ ᥬ   
        ᯮ짮    権, 㯭   ஢. 
         㢨,    ⢥ २⢠.

                         맮 ஥ 楤 ᥬ                 
        -----------------------------------------------------------------

             ।,  ᮧ ணࠬ  ᥬ   ८-
        ࠧ       ࡮ ᥬ  ଠ .COM.  -
          ணࠬ ࡮ ᨪ  ᯮ짮  ᯮ-
        :      ४⨢  $INLINE COM    ४⨢
        $INCLUDE.

              אַ  ⮤  ⮨    ᯮ짮  ४⨢
        $INLINE  COM _䠩.  ⮬ ࡮ ᨪ  䠩 .COM 
        㪠  .  ⮤ ⭮⥫쭮  ॠ,
            ࠧ ⪮:

             1.  ࡮ ᨪ  ࠭祭:  ᪠   16
                 ४⨢  $INLINE    楤.     ਢ 
                 ஡,  ᫨   - 祭 ᫮ ( 
                 ⭮).


        TASM2 #3-5/              = 220 =

             2.   쥧 ஡ ந⥪  ⮣ 䠪,  
                 䠩  .      ᥡ 㬥 (-
                 ਨ). , 筮,   ਬ砭  뢠-
                  ணࠬ,  뫮  , ᫨  ᠬ 䠩 .
                 뫨 㬥஢.

             3.  ᯮ짮 ४⨢  $INLINE  .COM    
                 ⢮. 饭 ᪮쪨 ⠪ 䠩  
                 䠩 뫮   ᮡ  ⮬ 砥, ᫨  -
                   ஥  ᫮ ⠪ 䠩 . ( ⮬
                 砥      ᯮ짮  -
                 ⥪ ணࠬ  ᥬ.  ᮦ, ᮧ -
                 ⥪ 䠩 .  ⠪ .)

             4.  , 䠩 $INLINE .COM    ஢  
                 ॠᥬ஢, ᫨   . ᫨ -
                  ⭮⥫쭮 ,    ᥣ ⥫쭮.

              ᮮ⢥⢨  ࠪ஬ ࠡ ४⨢ $INCLUDE COM 
            ८ࠧ  䠩  .COM  ᫥⥫쭮
        ⭠ ,      ணࠬ 
        ४⨢  $INCLUDE.    ணࠬ  ⠪  뢠 
        ᪠  । ࡮ ᨪ Read File (⥭ 䠩) -
        Ctrl-K  R.  ࠧ,  㤥  ,  砥 
         室 䠩.  ணࠬ, ࠡ饣  ࡮  -
        ,  ⢥ २⢮.

               ।㥬 ⥪ ।⠢ ᮡ  ⭠-
          ,      ਨ. 
        ⠪ ᯮ짮 । ࡮ ᨪ  ⮣, ⮡  
         ஥     室  -
        ॠᥬ஢,   ᪮쪮 ணࠬ   䠩.
            ⮤,   䥪⨢ ᮧ ⥪ -
        ணࠬ  ᥬ, ᯮ  ।  ᥬ⢮
        ணࠬ.  㦨  ⠪  ⥪  ,  祬 ᫨  
        짮 ⠭ ⥪६.

             ᫨ ணࠬ ᫨誮 ,    ⭠  䠩
        㤥 祭 訬,  ।஢ 室 䠩  -
         㤮.  ।஢ 䠩 (  )  -
          ࠭祭  64.  ᫨  ⠭ ஡,  
        ꥤ ⭠ 䠩  襩  ணࠬ,    䠩
        $INCLUDE. ( ⠪ ࠧ  ᤥ  ணࠬ -
         㤭  ⥭.)

             ਢ ਬ ⮩ ணࠬ  ࡮ ᨪ, ८-

        TASM2 #3-5/              = 221 =

        饩 䠩 .COM  ⭠ 䠩:

        'COM2INC.BAS
        ' ணࠬ ८ࠧ 䠩   䠩 $INCLUDE
        '  ⠪ ᨪ $INLINE ( ᯥ祭
        '⮣ 祭  ணࠬ  ᨪ).
        DEFINT A-Z
        ' ६  楫᫥묨.
        F$=COMMANDS
        '஢, ᫨   ப.
        WHILE F$=""
              PRINT" ணࠬ ८ࠧ 䠩   $INCLUDE"
              PRINT" ᯮ짮  ࡮ ᨪ.  㬮砭"
              PRINT"室 䠩  ⨯ . 室 䠩"
              PRINT" 㬮砭   ⨯ INC.  "
              PRINT"८।  ⨯,  "
              PRINT"ᯥ䨪 ⨯. ᫨    "
              PRINT"室 䠩,  㤥    ,"
              PRINT"  室 䠩,  ᯥ䨪 ⨯"
              PRINT"INC."
              LINE INPUT"  ८ࠧ㥬 䠩: ";F$
        WEND

        IF COMMAND$="" THEN
          LINE INPUT"  室 䠩: ";O$
        END IF

        IF INSTR(F$,".")=0 THEN F$=F$+".COM"  'ᯥ䨪 
        IF O$="" THEN
          O$=LEFT$(F$,INSTR(F$,"."))+"INC"    'ᯥ䨪 뢮
          ELSE
            IF INSTR(O$,".")=0 THEN O$=O$+".INC"  ' 
        END IF

        OPEN"R",#1,F$,1     '뢠     室
        FIELD #1,1 AS A$    '䠩  A$

        LASTBYTE&=LOF(1)    ' 䠩
        OPEN"O",2,O$        '室 䠩 
        FOR I&=1 TO LASTBYTE&-1
           GET 1,I&
           X%=ASC(A$)
           IF ((I&-1) MOD 5=0) THEN PRINT #2,"":PRINT #2,"$INLINE";
           PRINT #2,"&H";HEX$(X%);
           IF ((I&-1) MOD 5<>4) THEN PRINT #2,",";
        NEXT I&

        TASM2 #3-5/              = 222 =

        GET 1,LASTBYTE&
        PRINT #2,"&H";HEX$(ASC(A$))
        PRINT"८ࠧ 믮. ";"⠭ ";LASTBYTE&;"."
        PRINT O$;" ᮤন ";LOF(2);" ."
        CLOSE
        END

              ணࠬ 뢥 䠩,  ப ண 㤥  ᮤ-
           ⭠ .  ப 㤥 -
          ४⨢ $INLINE,  १騩 䠩    ᮤ-
         筮   ਥ,  , , -
         . ᫨       ப  
          ⭠ ,   ॡ ⮫쪮 -
         MOD 5  MOD N,  N    5.




        TASM2 #3-5/              = 223 =

                    饭 ணࠬ ࡮ ᨪ               
        -----------------------------------------------------------------

              饬 砥   ᯮᮡ  ।  ᯮ-
         ணࠬ  :

             1.   ணࠬ ᠬ   ᢮ .

             2.    㯯஢   ணࠬ  ,  ⮡
                   ணࠬ  頫  ,  ⭮騩  ᥬ
                 ணࠬ.

             3.   ᪠    । ᫥-
                 ⥫쭮 .

             ⮡ ᮧ ணࠬ,  ᢮ ,   
        ᯮ짮 ,  ᫥饬:

        xy:         mov   ax,cs          ; ६ ᥣ ॣ
                                         ;   AX
                    push  bp             ; ࠭ 㪠⥫ 
                    mov   bp,sp          ;  ᪮஢ 㪠⥫ ⥪
                                         ;  BP
                    les   di,[bp+6]      ; ES ᮤন ᥣ, DI -
                                         ; ᬥ饭
                    mov   ES:[DI],AX     ; ࠭ 祭 CS 
                                         ; ࢮ ࠬ
                    mov   dx,offset xy   ;  ⥪饥 ᬥ饭
                    les   di,[bp+0ah]    ;  ண ࠬ
                    mov   ES:[DI],DX     ; ࠭ 祭 ᬥ饭
                                         ;  ஬ ࠬ
                    jmp   fin            ; ய "ॠ" 
                                         ; "ॠ"  ᮤন
                                         ; 
        fin:        pop   bp             ; ⠭ BP  믮
                                         ; 

              ६ ⮩ ணࠬ  㦭 ।   -
          祭.  ࢮ   ᥣ ,   ஬ -
        ᬥ饭. ஡  ⮨  ⮬,      ᯮ-
          ᫥ ⮣,   㤥  ࠧ ᯮ짮. ᪨,
         㦥 祬 ᯮ, ⠪    㦭 㤠, ०-
         祬 ணࠬ ᬮ ଠ쭮 ࠡ.

               ணࠬ ᬮ ਮ  䨪
        ⢥  먣  ᪮, 쬠 ⭮,   -

        TASM2 #3-5/              = 224 =

           㩤  ६,  祬    먣ࠥ.  䨪
            ࠧ㬭: ᫨  ணࠬ   
        ६頥, ࠡ祬   ।⢮  讥  ᫮
        権 NOP.

                  ।   ணࠬ.  ᫨
          㯯    ᪮쪮  ணࠬ   頥 ⪨ 
        ணࠬ ࡮ ᨪ ( 祬   뢠 㦭
        ணࠬ),     ࠧ ।  ணࠬ -
        ணࠬ ᮮ饭 ?

             ⢥  ⥫. ᫨  , ࡮ ᨪ -
        ࠡ뢠   樨 RET.   ணࠬ  ࠧ-
         , ࡮ ᨪ ࠧ㬥,   ᮤন  -
        頥  .    ⮬  ࠭⨨,   筮 䠩 .EXE
        ⤥ ணࠬ  室    ⮩   
        .  ᫨ ணࠬ 室     
        ᫥  ⮬  浪,    㤥 , ᪮쪮  ࡮
        ᨪ 頥  ,   ⮬   ᬮ  㧭,  㤠
        㦭 ३, ⮡ ᤥ 㦭 .

             ⨩ ⮤ ।   ணࠬ  -    ⮤
        ᨣ. ⮡  ᯮ짮, 㦭    -
         ,    ᮤন  । ᫥⥫쭮 ,
         ணࠬ,    .

              ⮤ ᨣ ⠪    ᢮  ஡.  ࢠ
        ⮨    ⮬,     ᪠ ॡ  ६. 
        砥  ⮬,   ࠭⨨ ( ᫨  諨  ᨣ-
        )      室  㦭 ணࠬ.  , 
        ணࠬ  ᮤঠ ᢮ ᨣ.  ⮣ ॡ
        ⥫쭮    譥 ६, 室  䨪樨
        ணࠬ.

             ⮡ ᮧ ணࠬ,    ஢,
          ॡ  訩  ⮤ ।  ணࠬ 
          ᯮᮡ   権.

             ⮡   ஡, ⠩ ᫥騩 ࠧ,  
        ᬠਢ ᯥ樠 ᯮᮡ ᯮ짮 ணࠬ, -
          ஢  ணࠬ  ࡮ ᨪ.

                                   "" ப                            
        -----------------------------------------------------------------


        TASM2 #3-5/              = 225 =

             ࡮ ᨪ  ᯮ짮  ப ࠭-
        ⢠  ᨬ  64.      㤥  㦥   ⮣
        ࠭⢠,  祭  窨 ப ⠭ (⠪,
         ᯮ    ᪠) ⠪  ப
        ࠭⢮.

             ࠭⢮ , , ࠭祭 ⮫쪮  16  ᥣ⠬
        (   64).   ⥫쭮 稫, ᫨  -
          ⠪ ப ⠭  뫮  ࠭   -
        ࠭⢥  ,      㬥 , 㯭 
        ᪨ ப .  ,    ᫨誮  㤭
        ᤥ.

             ᬮਬ ᫥ ணࠬ:

        ;  ணࠬ   楫 ࠬ  頥
        ; ᥣ  ᬥ饭 ⥪  ⥫ ணࠬ
        ;

                   push  sp
                   mov   bp,sp
                   mov   dx,offset show          ; ,  室
                                                 ; ப
                   mov   ax,cs                   ; ᥣ   AX
                   les   di,[bp+6]               ; ES:DI 㪠뢠 
                                                 ; ࠬ
                   mov   ES:[DI],DX              ; ᮮ  
                                                 ; ப
                   mov   di,[bp+0ah]             ; ᫥騩 ࠬ
                   mov   ES:[DI],AX              ; ᮮ  ᥣ
                                                 ; 
                   jmp   fini                    ;  ३ 
                   DB    '  ࠧ  ⥪'
                   DB    '   ꥬ, 騩'
                   DB    ' ᨬ (  0).',0
        fini       pop   bp

             䥪  ணࠬ ᪮쪮 ⫨砥  ⮣, -
          । ࠭  ணࠬ-㥬 ஥-
         . ,   뢠  ( ࡮ ᨪ 㤥
        ࠡ뢠 祭  १ 䠩 .COM,  騩 -
          ).  ⮣  ࠭ .

             ணࠬ 頥 ⥪騩  ࠭    -
        .  ᫨      ,   ᮧ ண-
        ࠬ,  ᮮ頥   ⮬,   ⮣ ॡ -

        TASM2 #3-5/              = 226 =

        । ⨩ ࠬ.

                ,  室 ⥪  ,   ⥭
        ப      ப ࠭⢮  ࠧ,  
          ᮮ饭,     ᯮ짮  
        PEEK.        ᮮ饭,   
        㦭 ப. ᫨   ॡ ᭮,   㤥  -
        㯭  ᥣ .

               । ᫮  㯭    ⮩  ணࠬ
        .  ⭮,    । ᫮ , ।-
         ⥪.    , ஬ 筮 樨 訬
        ᮡ⢥ :  ⠪   ,  室 ணࠬ
           ,   १  ᯮ짮 BLOAD. 
        ᠥ 䠩 .EXE ࡮ ᨪ,   祣   ਤ,
          ணࠬ 㤥 ⥯ 㣮.

             筮  ⮤   室. ࠭  ப
          ࠭⢥   ,   楫  -
        ணࠬ 㣮  ⢫   CALL ABSOLUTE.



        TASM2 #3-5/              = 227 =

                                 CALL ABSOLUTE                         
        -----------------------------------------------------------------

               稭  㪮⢥  ࡮ ᨪ  -
          CALL  ABSOLUTE  ᪠뢠 쭮 ⪮. ࢠ 
         ⮨  ⮬,  ࡮ ᨪ   ⢥ ࠢ-
         ⠪ ணࠬ. -, ⠪ ணࠬ 筮
        ᯮ, ⮬    뫨  ᠭ    
        ᨪ.  ࡮  ᨪ ⮫쪮 ⢥ ⫨砥  -
         ᨪ,  ⠪ ணࠬ      ࠡ.
        -,  騥  樮  ⥬   ᪠ -
        짮 ணࠬ CALL ABSOLUTE.  ⭮,  樮
        ⥬,   ⪮ ࠧ砥 ࠭⢮   , 
              믮  樨,  室騥  
        ࠭⢥  . -⢥, ணࠬ, 뢠  -
         CALL ABSOLUTE,  ਭ ⮫쪮    楫-
          ࠬ-६.   ⠪  쥧 ࠭-
        ,  ,   楫 ६    ᮤঠ
        ᥣ  ᬥ饭 ६  ⨯. ,  ⮬ -
         ࠬ஢  ॡ ᪮쪮  ६.

              ⮩ 稭  㤥 ।,      ᯮ
        樮 ⥬ MS-DOS ᨨ 2.0       -
        樮  ⥬  ᪠  믮 ஬ 権,
        室    .




        TASM2 #3-5/              = 228 =

                饭 CALL ABSOLUTE  䨪஢ ᠬ          
        -----------------------------------------------------------------

             ᫨    ᥬ⢮ ணࠬ,  ᮢ⭮ -
               ணࠬ,    ࠧ-
          ணࠬ  䨪஢  . ࡮ -
        ᨪ    ⮩ 楫 १ࢨ஢    (
          ᮢ)    MEMSET.

                MEMSET  ᯮ  ENDMEM.  ENDMEM
            楫,  ।⠢饥 ᮡ ᫥ 祩
        ,     ᯮ짮  ᪮஢  ணࠬ
        ࡮  ᨪ. ணࠬ 筮 ࠧ   
          ஬ 䨪஢  ,  稭    ,
        ᯮ  ⮣ ।.

             ᫨    ⠪  ணࠬ,  뢠  -
         㤥   맮 CALL ABSOLUTE. ⮡  ண-
        ࠬ  訥  , ᯮ   BLOAD.  ⮡
          ᥣ,  ஬  㦠 ணࠬ-
        , ᯮ । DEF SEG   㪠    ᬥ-
        ,  ஬  㦭 㧨.

               ᮧ  ணࠬ   ࡮ ᥬ-
        , 㦭 ᮡ ᫥騥 ࠢ:

             1.  ᫨  ணࠬ  ।祭  ᪠   -
                   ( ⮫쪮  ) ,  । ࠢ-
                   ணࠬ (JMP  CALL)    -
                 頥.  (  㦤 ६頥  室
                  ࠬ  .)

             2.  ᫨  ணࠬ ।祭  ᪠ ⮫쪮  
                   ,   㪠    ४⨢
                 ORG 室  ᥬ.




        TASM2 #3-5/              = 229 =

                    饭 CALL ABSOLUTE  㣨 ᠬ             
        -----------------------------------------------------------------

             ࡮ ᨪ   ᯮ짮 饭 CALL  ABSO-
        LUTE  祩 ,    ᪥ ணࠬ 
         ࠧ묨.  ᯮᮡ ᤥ  砥    -
        㧪 ணࠬ ᥬ  ᨢ, ᯮ  筮-
         ࠭⢠ .

             ᬮਬ ᫥騩 ࠣ ணࠬ:

        DEFINT A-Z
        $DYNAMIC                     'ᨢ  ᪨
        DIM ROUTINEARRAY(10000)      '뤥 20002 
        ' ᮤন ࠧ 
        WHERESEG%=VARSEG(ROUTINEARRAY(0)) ' ᥣ
        WHEREOFFSET%=VARPTR(ROUTINEARRAY(0)) ' ᬥ饭
        DEF SEG=WHERESEG%             ' ᥣ  㬮砭
        BLOAD"COMFILE",WHEREOFFSET%   ' ணࠬ
        CALL ABSOLUTE WHEREOFFSET%(PARAMETER%) '맢 ணࠬ
        DEF SEG                       '  祭 
                                      '㬮砭

             ᫨   ᯮ짮 ᪮쪮 ணࠬ,    
        । 㦠          ᨢ. ,
        ᫨     ᨢ,    ᤥ, 
         祭 ࠭ ⮢ ᨢ.

                , ணࠬ, ᮧ   맮  
         CALL ABSOLUTE,  ⥫쭮  室  -
        ஢, 祬 ,     ᯮ  ४⨢  $INLINE.
        㤭  ⮨  ⮫쪮    ⮬,  ⠪ ணࠬ 
          ६頥묨.   ணࠬ  
         ।⠢ ᮡ ஡.  ᫮  ணࠬ 
         ६頥     .

               ⠪ ᯮ짮 BLOAD  㧪  ணࠬ
          ப  ६.    㦭 ᮡ ᮡ ஦-
        . ᫨  ⠥ 㧨 ணࠬ,  ன  -
        蠥   ப ६,    - -
         ப. ᫨  ப ,  襩 㦥-
         ணࠬ ⠪  ஢.

             ப ६ ⠪  ६.  ᫨  -
        ணࠬ  㦥  ப ४⭮,  ᫥ 
         ᯮ짮 VARSEG  VARPTR  ⮣, ⮡ ⠭ 

        TASM2 #3-5/              = 230 =

        ப ।⢥ । ⪮ 맮 ⮩ ணࠬ.

             ப ࡮ ᨪ ࠭  ⠪,  ᫥ ६-
        .  ᫨    믮  VARPTR(A%),   
        楫 ६ A%. VARPTR(A$)   ⥫  ப  
        A$. 祩 ,   2 , 㤥 ᮤঠ ⢨-
        ⥫  ப  ப ࠭⢥. ⮡  
          १,    VARPTR(A%),  諮  ᤥ -
        த ᫥饣:

             A%=VARPTR(A$)
             A%=A%+2
             STRINGADDRESS=CVI(CHR$(PEEK(A%)+CHR$(PEEK(A%+1)))

             饭 ணࠬ ᥬ  ᨬ ப -
         ୮,   ᠬ   ᭮,   -
        ᫥ ᨢ    ஢    .   
        ணࠬ, 뢠   CALL ABSOLUTE,   ᯮ짮-
         楫᫥ ᨢ,     㤭⥩  
        㯥  ﭭ ६頥 ப .

             ᫨    ᯮ짮 BLOAD,    ⠪
        㧨  䠩  .COM   ப   -뢮 筮
        䠩,  ,  䠩 .COM,  筮 䠩,   -
        뢠  ப ४⭮ ᫠ .    室  -
        짮   뢠   楫᫥ ᨢ.  
        BLOAD 믮 ॥  짮 ⮩  .




        TASM2 #3-5/              = 231 =

             㣨 ஡, 騥  ᯮ짮 CALL ABSOLUTE      
        -----------------------------------------------------------------

             뢠   ᪠   CALL  ABSOLUTE  易  
        ᪮쪨  ⢥묨 ⪠,  ⢥ 
         ⭮  ॡ ६⨬ (  㦥 ⬥-
         ࠭).

             㣨 쥧 ஡     ⮬,  ணࠬ
          뢠    ᪠ ⤥쭮  ᭮ ணࠬ (
        ⮬  ⥫   訡).
        ॡ㥬     ⢮  ᪥,    -
        ० (祭).

              ஡ ⮨  ⮬,   ६,  室  
        뢠   ᪠,  ᢥ   ᠬ 稭 ᯮ-
         ணࠬ  ᥬ  ࡮ ᨪ.

             ४ ⨬  ⪭ ,   -
          뢠 ࠧ ணࠬ  稥 , -
          ஢   ࠢ  ணࠬ,    ⠪
        㬥襭  ꥬ ,   ⢮   -
         筮 ᪨    ਬ 樨 CALL
        ABSOLUTE.

                                    CALL INTERRUPT                             
        -----------------------------------------------------------------

             ⨩  ᫥ ᯮᮡ 饭  ணࠬ    -
        ᥬ   ࡮ ᨪ -   ᠬ ᫮ ⮤ -
        짮 ᥬ  ६ ᠬ  ⮩  ᯮᮡ  
        ᯮ짮 .

             設⢮ ணࠬ⮢ ᯮ CALL INTERRUPT  -
        㯠     㦨 । MS-DOS.  ⮩ 樨 
        ᥬ஢   ᯮ.  室  ᫥-
        饥:

               -----------------------------------------
                                        
               -----------------------------------------
                REG0                              
                REG1                              AX
                REG2                              BX
                REG3                              CX

        TASM2 #3-5/              = 232 =

                REG4                              DX
                REG5                              SI
                REG6                              DI
                REG7                              BP
                REG8                              DS
                REG9                              ES
               -----------------------------------------

             ⮡  祭 ॣ, ᯮ  REG:

             REG 3,&H0F01

               ⠭ ॣ CX  ⭠筮  -
        祭  0F01.   CH  ⭠筮 祭 0F, 
        ॣ CL - 01.

             ⮡  祭 ॣ, ᯮ 㭪 REG:

             A%=REG(3)

               ᢮ ६ A%  ⥪饥  祭  -
         CX.

             騩 ਬ ਢ  ⭮  ப⪥  ࠦ
         ࠭ ( ப 1  ப 24):

        REG  3,0                    'ப 0,  0 ("設")
        REG  4,&H175F               'ப 23,  79 ("")
        REG  2,&H70                 '梥 7,0
        REG  1,&H0701               '㭪 BIOS 7, ᤢ  1 ப
        CALL INTERRUPT &H10         '뢠 10h

               ணࠬ  ᥬ ࠧ -
        ,  ⮬    ࠡ  㤥.

              楤 筮 祭 .   -
          ணࠬ 뢠  㣨 楫,   ⮫쪮 
        맮  㦨 । MS-DOS.

             뢠  ᯮ    ࠢ  ன⢠
        (ਬ, 稪 ७ ⥬, 㤠묨 뢠-
        騬 ன⢠, ⠩ࠬ  ..).  ⮡  ᯮ짮  ⠪
        뢠,    ᯮ㥬 뢠. ( 
         ᯮ MS-DOS,  㣨  ᯮ짮 ⠪ ன-
        ⢠,  ⥫  ⭮   ன⢮  ⨯
        "騪 㫫").

        TASM2 #3-5/              = 233 =


              ணࠬ ࡮ ᨪ 㦭 ᤥ  ⠪,  ⮡  
        뢠 㪠뢠  ணࠬ, ᠭ  ࡮ ᥬ.
         ⬥祭  㪮⢥  ࡮ ᨪ, ணࠬ  -
          뢠    ࠭ 祭 ॣ஢ SS  SP
        ( 㣮 ॣ  ஢).     ண-
        ࠬ  ࠢ  १  IRET । ⭮ ࡮
        ᨪ.

              ।  ணࠬ  ᥭ   
        뢠  ᯮ짮 㦥 ᠭ  ⮤,  
         ணࠬ 㦨 뢠    訥  
            㦠  (  BLOAD),  ணࠬ 
        CALL ABSOLUTE.

             ணࠬ  㦨  뢠,  祭    
        ணࠬ    $INLINE,   - ࠧ
        . ணࠬ, 㦥   BLOAD    -
        ᠭ  楫᫥ ᨢ  室  ।
        ,    ࠩ    ⥭. ,  ࠧ-
        饭  ࠡ稪  뢠   ⠪ ᨢ 砥, 
         ணࠬ 㦨 뢠      
        ६⨬.

              ⮩ 稭 ணࠬ 㦨 뢠 -
          筮  䨪஢  (訥  ). ᫨
         訫 ᯮ짮 ⠪ 室, 㡥,     뫨
          室  ࡮ ᥬ  ORG.




        TASM2 #3-5/              = 234 =

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

        FILLIT2$ = CHR$(&HFC)+CHR$(&HF3)+CHR$(&HAB)+CHR(&HCB)
        '        cld     rep  stow  ret
        DIM a%(100)                    '楫᫥ ᨢ  㫥묨
                                       '⠬
        WHERE%=VARPTR(FILLIT2$)        ' ⮩ 祩 ࠭ 
        WHERE%=WHERE%+2                '   ,  室
                                       ' ப
        CLS:PRINT PEEK(WHERE%),PEEK(WHERE%+1)
        HERE%=PEEK(WHERE%)+256*PEEK(WHERE%+1) ',  室
                                       'ப

        DEF SEG                        '   室,
                                       '  訩 ⨫ ணࠬ-
                                       '஢

        WHERE%=PEEK(0)+256*PEEK(1)
        DEF SEG=WHERE%                 'ᥣ ப - ࢮ ᫮
                                       '( 㬮砭 - DS)
        REGES%=VARSEG(a%(0))
        REGSI%=VARPTR(a%(0))
        REG 1,5%                       '  AX 祭-
                                       '⥫
        REG 3,101%                     '᫮ 塞 ⮢
                                       '( 1  100) -  CX
        REG 9,REGES%                   'ᥣ 塞 ᨢ
                                       ' ->  ES
        REG 6,REGSI%                   'ᬥ饭 ࢮ 
                                       'ᨢ ->  SI
        CALL ABSOLUTE HERE%            ' ᨢ 祭 5

        DEF SEG
        FOR i%=0 TO 100:PRINT a%(i%);:HEXT i%
        PRINT
        PRINT REG(1),REG(3),REG(9),REG(6):STOP

        CALL FILLIT(a%(0),-1%,101%)    ' ᨢ 祭
                                       '-1
        FOR i%=0 TO 100:PRINT a%(i%);:NEXT i%
        PRINT
        END

        SUB FILLIT INLINE
        $INLINE &H55,&H88,&HD,&H7E

        TASM2 #3-5/              = 235 =

        $INLINE &HE,&H26,&H8B,&HD,&HC4
        $INLINE &H7E,&HA,&H26,&H8B,&H5
        $INLINE &HC4,&H7E,&H6,&HFC,&HF3
        $INLINE &HAB,&H5D
        END SUB

        ;ணࠬ  뫪 ந쭮 ᫠ ⮢
        ; ந 祭  楫᫥ ᨢ 
        ;call absolute. ⠪ 맮 ᫥騩:
        ;REG 1,FILLVALUE%           'AX - 祭-⥫
        ;REG 3,FILLCOUNT%           'CX - ᫮ 塞
        ;                           '⮢
        ;REG 9,VARSEG(ARRAY(0))     'ES ᮤন ᥣ ᨢ
        ;REG 6,VARPTR(ARRAY(0))     'DI - ᬥ饭 ࢮ 
        ;                           'ᨢ
        ;CALL ABSOLUTE FILLIT2
        ;FILLIT2 -  ᮫⭮ ணࠬ,  DEG SEG 㤥
        ; 㬮砭 ⠭ ᥣ ணࠬ । 맮
        ;CALL ABSOLUTE  ᮮ⢥⢨  FILLIT2.

        PROGRAM SEGMENT
        START   PROC FAR             ; 쭨 ⨯ 맮
                ASSUME cs:PROGRAM
                push  bp             ; ࠭ 㪠⥫ 
                cld                  ;  䫠 ࠢ
                rep                  ; ᫥  -
                                     ; ,  CX  ⠭ ࠢ
                                     ; 0
                stosw                ;  AX  ES:DI  㢥
                                     ; DI  2
                pop   bp             ; ⠭ 㪠⥫ 
                ret                  ; ᥣ  (쭨) 
        START   ENDP
        PROGRAM ENDS
                END

        ;ணࠬ  뫪 ந쭮 ᫠ ⮢
        ; ந 祭  楫᫥ ᨢ ⠪
        ;맮 ᫥騩:
        ;CALL FILLIT(ARRAY(0),FILLVALUE,NUMTIMES)

                ORG   100h
        PROGRAM      SEGMENT
                ASSUME cs:PROGRAM
                push  bp             ; ࠭ 㪠⥫ 
                mov   bp,sp          ; ६ 㪠⥫ ⥪

        TASM2 #3-5/              = 236 =

                                     ;  BP
                les   di,[bp+0eh]    ;  ᬥ饭  ᫠
                                     ; ⮢  
                mov   ax,es:[di]     ;   AX 祭-
                                     ; ⥫
                les   di,[bp+6]      ; ᬥ饭  塞
                                     ; ᨢ
                cld                  ;  䫠 ࠢ
                rep                  ; ᫥  ,
                                     ;  CX  㤥 = 0
                stow                 ;  AX  ES:DI  㢥
                                     ; DI  2
                pop  bp              ; ⠭ 㪠⥫ 
        PROGRAM ENDS                 ;  ᥣ -  RET
                                     ;  㦭
                END





        TASM2 #3-5/              = 237 =

                                                                               
        ਫ B. 䥩 ࡮ ᥬ  ࡮ ஫
        -----------------------------------------------------------------

             ࡮ ஫ । ணࠬ 讥 ⢮ -
        ⮢,  ᯥ稢 ७  㭪権 ᮪ ஢-
        ,  ࠢ  ࠭  ࠢ  . -
         ᥬ    ࡮ ஫ ।⢠ ணࠬ-
        ஢  ஢.

                 ᬮਬ ᭠砫 䥩 ࡮ ஫
         ࡮ ᥬ஬, ⥬ ਢ   ਬ -
        樨 䥩 ணࠬ ᥬ  ࡮ ஫. -
        ,    㤨 맮 ।⮢ ࡮ ஫   ᥬ-
        , ᯮ짮  맮 ࡮ ஫  ।-
         ᫮ .

                   ਬ砭:   ਬ  ࡮ ஫,   
                ᨨ 1.0   襩.

                                                                               
         譨 ।⮢
        -----------------------------------------------------------------

             ࡮ ஫  ࣠ 䥩  㣨 -
           ᠭ  ।⮢.   ᠭ 㪠-
         ᯥ䨪 몠,  ன ࡮  ஫  
        ।,     । ॠ  㣮 몥:

          global pridicate
                 add(integer,integer,integer) - (i,i,o) language asm
                 scanner(string,token) - (i,o) language Pascal

              ࡮ ஫ ᮮ⢥騩  㪠뢠 , ⮡
          ஡      ⨢樨  ଠ⮬ ࠬ஢,
        ᮣ襭ﬨ  맮   ࠢ, ।ﬨ  ᥣ-
        ⮢  樠樥.

                           襭  맮  ࠬ                    
        -----------------------------------------------------------------

             ⢮ ஢ 8086 ।⠢ ணࠬ  롮
            (near)  쭨 (far) 맮 ணࠬ. ࡮
        ஫ ᮧ ணࠬ  让    ॡ, -
          맮   ࠢ  쭨 ⨯.


        TASM2 #3-5/              = 238 =

             ࡮ ஫ ন  ᮣ襭  맮:  ᮣ-
        襭 , ᪠  ᥬ.  ࣠樨 䥩  -
        ணࠬ, ᠭ  ᯮ짮  ᮣ襭    맮,
        ਭ  몥 , ࠬ   ⥪  ⭮ -
          ᫥  ࠢ 㪠⥫ ⥪ ⮬᪨  -
        ࠢ.    ࣠樨 䥩  㣨 몠 -
           ⥪  筮 浪,    ⢥⢥  
        祭 ࠬ஢  ⥪   뢠 㭪.

                몮, ।祭  ࠡ 
           ਨ   8086,    롮    16-ࠧ來묨  
        32-ࠧ來묨 㪠⥫ﬨ ( 16-ࠧ來  㪠⥫  뫠
          ᯮ㥬   㬮砭 ᥣ). ࡮ ஫  㯠
         ᥩ  ᥣ ᯮ 32-ࠧ來 㪠⥫.

              ࡮ ஫ ॠ ᫥騬 ࠧ:

           integer    (楫)             2 
           real       (⢥)      8  (ଠ IEEE)
           char       (ᨬ)        1  (   ᥭ
                                           ⥪)
           string     (ப)         4-⮢ 㪠⥫ (
                                          ᫮)   㫥
                                          ப
           symbol     (䨪)     4-⮢ 㪠⥫ (
                                          ᫮)   㫥
                                          ப
           compound   (᫮)           4-⮢ 㪠⥫ (
                                          ᫮)  

             室 ࠬ   ⥪,  32-⮢ 㪠⥫
          祩,  ன   ᢮ 頥 祭.
         室 ࠬ஢ 祭   ⥪ ।⢥,
         ࠧ ࠬ    ⨯.




        TASM2 #3-5/              = 239 =

                                 襭                            
        -----------------------------------------------------------------

                 ।  ࡮ ஫   ᪮쪮
        ਠ⮢    ࠧ묨  ⨯  ⮪ -뢮. 
        ⠪ ਠ  ᮮ⢥⢮  ᮡ⢥ 楤,
        ன  ᢠ  㭨쭮  .  ⢫  -
         㬥樨 ࠧ 楤   ।  (稭    0).
        ਬ, ᫨    ᠭ:

            global predicates
              add(integer,integer,integer) - (i,i,0),(i,i,i) language asm

          ਠ ( ⮪ -뢮  (i,i,o))    
        add_0,  ன ( ⮪ -뢮 (i,i,i)) - add_1.

             ࡮ ஫  ⠪  ணࠬ    
          쭮  ।.       㪠 
        ᠭ "as 饤㯭_".  ᫥饬 ਬ  
        । pred   䨪 my_pred,   pred_0.

          global predicates
              pred(integer,integer) - (i,o) language asm as "my_pred"

              ⮤ ,   ᢠ । ,  
          ⮫쪮  ⮪ -뢮. ᫨    
        ⮪ -뢮,   ਤ ।ᬮ   -
         ਠ. ᫨ ᯮ짮 । add  ।饣 ਬ-
        ,  । । 㤥 룫拉 ⠪:

        global predicates
          add(integer,integer,integer)-(i,i,0) language asm as "doadd"
          add(integer,integer,integer)-(i,i,i) language asm as "addcheck"

              ਠ (  ⮪ -뢮 (i,i,o)) -
        砥    doadd,  ன ( ⮪ -뢮 (i,i,i)) - 
        add_check. ⨬,   ⮤  ॡ  ⤥쭮  ᠭ
          ਠ.




        TASM2 #3-5/              = 240 =

                          ࠡ⪠ ।⮢  ᥬ                  
        -----------------------------------------------------------------

             , ⥩訥 । -  ,   ⮫-
          ⮪  . ।,   믮 ਧ⠫
        ப ᮤন ⥪饣  ࡮ ஫.  
        ।  scroll_left,   ப稢   ࠭ 
          .  ਬ SCROLLH.PRO scroll_left  -
         楫 㬥   ⮪ -뢮.

              ࡮ ஫ SCROLLH.PRO ᮤন ᠭ  -
          ।    । scroll_left. । scroll_left
        ।,  । ᥬ.

        /* SCROLLH.PRO */

        global predicates
          scroll_left(integer,integer,integer,integer) - (i,i,i,i)
                language asm

        predicates
          scrollh

        clauses
          scrollh :-
              makewindow(_,_,_,Row,Col,Nrows,Ncols),
              scroll_laft(Row,Col,Nrows,Ncols),
              readchar(C),
              char_int(C,CI),
              not(CI = 27),
              scrollh.

        goal
          makewindow(1,7,7," 饭  ப⪨ ",10,20,4,60),
          write(" ᮮ饭 㤥 ப祭  "),nl,
          write("ﭨ  !"),
          readchar(_),
          scrollh,
          readchar(_).

             騩 室   몥 ᥬ ।⠢  -
         ॠ । scroll_left. ⨬,  ⮬ ।-
           SCROLL_LEFT_0,   ᮮ⢥  ᠭ  ࠭
        ᮣ襭  .

        ; SCROL.ASM

        TASM2 #3-5/              = 241 =

        ;
              name  scrol
        ;     scroll_left(integer,integer,integer,integer) - (i,i,i,i)
        ;                  language asm
        SCROL_TEXT    SEGMENT  BYTE PUBLIC 'CODE'
             ASSUME   CS:SCROL_TEXT
        PUBLIC  SCROLL_LEFT_0

        SCROLL_LEFT_0 PROC FAR
        ;
        ; ࠬ
        arg  NCOLS:WORD, NROWS:WORD, COL:WORD, ROW:WORD = ARGLEN
        ;
        ; 쭠 ६
        local     SSEG : WORD = LSIZE
                  push  bp
                  mov   bp,sp
                  sub   sp,lsize     ; ࠭⢮  
                                     ; ६
                  push  si
                  push  di
                  mov   SSEG, 0B800h
                  sub   NCOLS,3      ; NCOLS = NCOLS - 3
                  mov   ax,ROW       ; DEST = ROW*160 + (COL + 1)*2
                  mov   dx,160
                  mul   dx
                  mov   dx,COL
                  inc   dx           ; ᫮
                  shl   dx,1
                  add   dx,ax
                  push  ds
                  push  es
                  mov   bx,NROWS     ; 横 NROWS ࠧ (BX ᯮ,
                                     ;  稪)
                  dec   bx           ; NROWS = NROWS - 2
                  dec   bx
        Top:      cmp   bx,0
                  je    Done
                  add   dx,160       ; ਥ = ਥ + 160
                  mov   ax,NCOLS     ; _ᨬ = ਥ + NCOLS*2
                  shl   ax,1
                  add   ax,dx
                  push  ax           ;   ⥪ ᬥ饭
                                     ; ᫥ ᨬ
                  mov   ax,SSEG      ; 㧨 ᥣ ࠭  ES, DS
                  mov   es,ax

        TASM2 #3-5/              = 242 =

                  mov   ds,ax
                  mov   di,dx        ; ⠭ 祭 SI  DI 
                                     ; 権 mov
                  mov   si,di
                  add   si,2
                  mov   ax,[di]      ; ࠭ ᨬ 樨 0  AX
                  mov   cx,NCOLS     ; ६ NCOLS ᫮
                  cld
                  rep   movsw
                  pop   di           ;   DI ᬥ饭 ᫥
                                     ; ᨬ
                  mov   [di],ax      ;  ᨬ  AX  ᫥
                                     ; 
                  dec   bx
                  jmp   TOP
        Done:     pop   es
                  pop   ds
                  pop   di
                  pop   si
                  mov   sp,bp
                  pop   bp
                  ret   ARGLEN
        SCROLL_LEFT_0   ENDP
        SCROL_TEXT      ENDS
                  END

             ⮡ ᮧ  䠩 SCROLLH.PRO  SCROL.ASM  믮塞
        䠩, 㦭 ᭠砫 ᪮஢ 䠩 ࡮ ஫  䠩 .OBJ
        (  ࡮ ஫). ( ࡮  ஫    -
        ,   ᮧ  䠩 .OBJ  䠩 .SYM.)  ⥬   ࡮
        ᥬ 㦭 ᥬ஢ 䠩 SCROL.ASM  䠩 .OBJ, ᫥
        祣  ᪮  㫨     ᫥饩  ப
        ⨫ TLINK:

             TLINK init scrollh scrol scrollh.sym,scroll,,prolog

             祭  १ 믮塞  䠩  㤥  뢠
        SCROLL.EXE.




        TASM2 #3-5/              = 243 =

                               । double                      
        -----------------------------------------------------------------

             ।, ணࠬ  몥 ᥬ  뢠  
         :

             double(MyInVar,MyOutVar)

         MyInVar । 맮 뢠  楫 祭,   ᫥
        맮  MyOutVar 뢠 易  㤢 稭 -
         祭.

              ⨢樨, 頥  ⥪  ⨢樨  double,
         , ।⠢  . 9.1:

        -------------       ---------------------------------------------
        | [BP] + 10 |------>|    祭,   易 MyInVar.   |
        |           |       |         SIZE = 2  (ࠧ)           |
        |           |       |-------------------------------------------|
        | [BP] + 6  |------>| ,  ஬ 㦭 ࠧ -  |
        |           |       | 祭  MyOutVar.  SIZE = 4        |
        |           |       |-------------------------------------------|
        | [BP] + 2  |------>| ,  ண  த - |
        |           |       |  ᫥ 襭 ࠡ double.  |
        |           |       |              SIZE = 4                |
        |           |       |-------------------------------------------|
        | [BP] + 0  |------>|  ⠭ 祭 BP ( - |
        |           |       |  믮 double).                    |
        |           |       |              SIZE = 2                |
        -------------       ---------------------------------------------

             . 9.1.  ⨢樨  double.

             । double ॠ ᫥ 㭪  몥  ᥬ-
        :

        ;
        ; MYASM.ASM
        ;
        A_PROC        SEGMENT BYTE
                      ASSUME  CS:a_prog
                      PUBLIC  double_0
        double_0      PROC    FAR
                      push    bp
                      mov     bp,sp
                      mov     ax,[bp]+6       ;  祭, 

        TASM2 #3-5/              = 244 =

                                              ;  易 MyInVar
                      add     ax,ax           ; 㤢  祭
                      lds     si,DWORD PTR [bp]+10
                      mov     [si],ax         ; ࠭ 祭, 
                                              ;   
                                              ; 易 MyOutVar 
                                              ; ᮮ⢥饬 
                      pop     bp
                      mov     sp,bp
                      ret     6
        double_0      ENDP
        A_PROC        ENDS

             ணࠬ ࡮  ஫,  ᮤঠ  饭    double,
         ᮤঠ ⠪ ᫥饥 ᠭ 쭮 ।:

           global predicates
              double(integer,integer) - (i,o) language asm

              ᥬ ⠫쭮 ணࠬ  ࡮ ஫  㤥 ⫨-
           㣮 ணࠬ.

             । double ᯮ  ᫥饩 ணࠬ:

         /* MYPROLOG.PRO */

        global predicates
           double(integer,integer) - (i,o) language asm
        goal
           write(" 楫 祭 "),
           readint(I),
           double(I,Y),
           write(I," 㤢 祭 = ",Y).

             ணࠬ   몥   ᥬ   ᥬ      䠩
        MYASM.OBJ,   뢠 ணࠬ  ࡮ ஫ ࠭᫨
          MYPROLOG.OBJ. ⥬      
         ப:

             TLINK init myprolog myasm myprolog.sym,double,,prolog

               ⮬   ᮧ   믮塞   ⮭   ணࠬ
        DOUBLE.EXE   (  祣  ᯮ  ⥪  ࡮  ஫
        PROLOG.LIB). ,  MYPROLOG.SYM 㪠뢠   TLINK 
        ⢥ ᫥  䠩 । ࢮ ⮩.


        TASM2 #3-5/              = 245 =

              饬 砥 ଠ   ⨢樨  㤥    
        ᫠  ࠬ஢  । ࡮ ஫  ⨯ , ᮮ-
         ⨬ ࠬࠬ. ਬ, ᫨   ।:

             add(Val1,Val2,Sum)

         Val1, Val2  Sum ਭ 楫 (integer) ,   -
         ⨢樨 룫拉  ⠪,    . 9.2:

        -------------       ---------------------------------------------
        | [BP] + 10 |------>|  ,  ஬   ᠭ  |
        |           |       | 祭 Sum.                             |
        |           |       |         SIZE = 4  (ࠧ)           |
        |           |       |-------------------------------------------|
        | [BP] + 8  |------>|     祭,   易 Val2.     |
        |           |       |              SIZE = 2                |
        |           |       |-------------------------------------------|
        | [BP] + 6  |------>|     祭,   易 Val1.     |
        |           |       |              SIZE = 2                |
        |           |       |-------------------------------------------|
        | [BP] + 2  |------>| ,  ண  த - |
        |           |       |  ᫥ 襭 ࠡ add.     |
        |           |       |              SIZE = 4                |
        |           |       |-------------------------------------------|
        | [BP] + 0  |------>|  ⠭ 祭 BP ( - |
        |           |       |  믮 add).                       |
        |           |       |              SIZE = 2                |
        -------------       ---------------------------------------------

             . 9.2.  ⨢樨  । add.

             ⬥⨬,   ࠬ  ᮮ⢥饥  ᫮
        .  室 ࠬ஢ ࠧ (SIZE) ᥣ ࠢ 4 ⠬
        ( ᯮ   ᥣ  ᬥ饭).   室-
         ࠬ஢ ࠧ ।  祭,  ஥  ⢨-
        ⥫쭮   ⥪,  ⮬    ᮮ⢥饣
        .

             Val1  Val2 ਭ   楫    2 -
          (    ᯮ  㪠⥫  ⮪ -뢮 (i) -
        ). ࠬ Sum  4  (  ᯮ  㪠-
        ⥫ ⮪ -뢮 (o) - 뢮).

             ⨬ ⠪,   ᯮ짮  ࡮  -
         饭  譥 ।  :


        TASM2 #3-5/              = 246 =

             mov ax,SEGMENT data
             mov ds,ax
             call FAR PTR external_predicate_inplementation

        ⮬ ᥣ , 㥬  ६ 믮  楤
         譥 ।, 뢠 DATA.




        TASM2 #3-5/              = 247 =

                ।⮢  ᪮쪨 ⮪ -뢮       
        -----------------------------------------------------------------

              ॠ樨 ।⮢  ᪮쪨 ⮪ -뢮-
          㦭  ⥫쭮  ᮡ  㭪権  몥 ᥬ
        ਭ  ࡮ ஫ ᮣ襭  . ।,  -
        ਬ,    ॠ । add,  ண 
        ᪮쪮 ⮪ -뢮.   饭  add  -
          室 ய饭 祭  ࠢ X + Y = Z,  
          㬥⮢  饭  add  易묨.

              ।  몥 ᥬ    ண-
        ࠬ  ࡮ ஫ ADDPRO.PRO. ⨬,  । add -
           ⮪ -뢮: (i,i,o), (i,o,i)  (o,i,i).

          /* ADDPRO.PRO */

        global predicates
           add(integer,integer,integer) - (i,i,0),(i,0,i),(o,i,i)
                     language asm
        goal
           add(2,3,X), write("2 + 3 = ",X),nl,
           add(2,Y,5), write("5 - 2 = ",Y),nl,
           add(2,3,5), write("5 - 3 = ",Z),nl.

              ணࠬ  ᥬ ADD.ASM ᮤন   ॠ-
        樨  ।  add.  ADD_0 ᮮ⢥ ⮪ -뢮
        (i,i,o), ADD_1 ᮮ⢥ ⮪ (i,o,i),  ADD_2 - (o,i,i).

               name    add
        ADD_TEXT       SEGMENT  BYTE PUBLIC 'CODE'
               ASSUME  CS:ADD_TEXT
               PUBLIC  ADD_0            ; ⮪ (i,i,o)
        ADD_0  PROC    FAR
               arg     2:dWORD, Y:WPRD, X:WORD = ARGLEN1
               push    bp
               mov     bp,sp
               mov     ax,X
               add     ax,Y
               les     bx,Z
               mov     WORD PTR ES:[BX],ax
               pop     bp
               ret     ARGLEN1
        ADD_0  ENDP

               PUBLIC  ADD_1            ; ⮪ (i,o,i)

        TASM2 #3-5/              = 248 =

        ADD_1  PROC    FAR
        arg    2:WORD, Y:WORD, X:WORD = ARGLEN2
               push    bp
               mov     bp,sp
               mov     ax,Z
               sub     ax,X
               les     bx,Y
               mov     WORD PTR ES:[BX],AX
               pop     bp
               ret     ARGLEN2
        ADD_1  ENDP

               PUBLIC  ADD_2            ; ⮪ (o,i,i)
        ADD_2  PROC    FAR
        arg    Z:WORD, Y:WORD, X:WORD = ARGLEN3
               push    bp
               mov     bp,sp
               mov     ax,Z
               sub     ax,X
               les     bx,Y
               mov     WORD PTR ES:[BX],AX
               pop     bp
               ret     ARGLEN3
        ADD_2  ENDP

        ADD_TEXT       ENDS
               END

             ᫥ ⮣,  室 䠩 ADDPRO.PRO    ADD.ASM  
        ࠭᫨஢  䠩 .OBJ,      -
        :

             TLINK init addpro add addpro.sym,addpro,,prolog

        ᮧ 믮塞 䠩 .EXE.




        TASM2 #3-5/              = 249 =

                 맮 ।⮢ ࡮ ஫  㭪権 ᥬ          
        -----------------------------------------------------------------

             ,   㤨 맮 㭪権  몥  ᥬ
         ࡮ ஫,  㤨  ஡: 맮 ।-
        ⮢ ࡮ ஫  몠 ᥬ.

              ।   ,  ਠ  ।
        ⠭  묨 㭪ﬨ,   뢠 
        㣨 㫥. 襭    ᮣ襭  맮 -
         ⥬ ,    ।⮢, ।  몥 ᥬ-
        .

             騩  ࡮  ஫  ।    
        ।: popmessage  from_asm.popmessage,  ,
         ।  몥 ,  । from_asm,   -
        ,  ।  몥 ᥬ.

             ⮡ ନ஢ ணࠬ SHOWMESS, ᪮   -
        ࠪ⨢   ।   ࠧࠡ⪨   ணࠬ  ࡮  ஫  䠩
        SHOWMESS.PRO  䠩 .OBJ. ⥬   :

             tasm from_asm

        ᥬ 䠩 FORM_ASM.ASM  믮 :

             TLINK init showmess fromsm showmess.sym,showmess,,prolog

             室 ⥪ SHOWMESS  :

        /* SHOWMESS */
        global predicates
          popmessage(string) - (i) language c  /* । 뢠
                                     楤  몥 ᥬ */
          from_asm - language asm   /* 楤  몥 ᥬ */

        clauses
          popmessage(S) :-          /*  뢠  㭪樨 
                                         popmessage_0 */
            str_len(S,L),
            LL = L + 4,
            makewindow(13,7,7,"",10,10,3,LL),
            write(S),
            readchar(_),
            removewindow.
        goal

        TASM2 #3-5/              = 250 =

          form_asm.                /* external */

             騩   ᥬ ॠ  from_asm    뢠
        popmessage:

                  EXTRN   PopMessage_0:FAR
        DGROUP    GROUP   _DATA
                  ASSUME  CS:SENDMESS_TEXT,DS:DGROUP
        _DATA     SEGMENT WORD PUBLIC 'DATA'
        messl     DB      "Report: Condition Red",0
        _DATA     ENDS

        SENDMESS_TEXT     SEGMENT BYTE PUBLIC 'CODE'
                  PUBLIC  FROM_ASM_0
        FROM_ASM_0        PROC FAR
                  push    ds
                  mov     ax,OFFSET DGROUP:messl
                  push    ax
                  call    FAR PTR PopMessage_0
                  pop     cx
                  pop     cx
                  ret
        FROM_ASM_0        ENDP
        SENDMESS_TEXT     ENDS
                  END

              ணࠬ  ஥ ⮩  믮塞  ண-
        ࠬ  ᯮ ७ ᮪ ஢  몥 ᥬ.
        ⮡ ந , ᪮   ࠪ⨢  ।  ࡮
        ஫  ணࠬ  SHOWNEW.PRO (稢 䠩 .OBJ), ⥬ ᥬ-
         FROM_ASM.ASM, ᯮ :

             tasm /jmasm51 /jquirks from_new

             ᫥ ⮣ 믮 :

             TLINK init shownew fromew shownew.sym,show2,,prolog

             ணࠬ SHOWNEW  :

        /* SHOWNEW.PRO */

        global predicates
          popmessage(string) - (i) language c  /* । 뢠
                                     楤  ᥬ */
          prom_asm - language c as "_from_asm" /* । -

        TASM2 #3-5/              = 251 =

                                    㯭  楤  몥
                                    ᥬ */
        clauses
          popmessage(S) :-
            str_len(S,L),
            LL=L+4,
            makewindow(13,7,7,"",10,10,3,LL),
            write(S),
            readchar(_),
            removewindow.

        goal
          from_asm.         /* 맢 楤  몥 ᥬ */

             騩 室  ᥬ ॠ from_asm  -
        頥  popmessage (   ।饬 ਬ).

        ; FORM_NEW.ASM
               extrn   PopMessage_0:FAR
               .MODEL  LARGE,C
               .CODE

        FROM_ASM       proc
               push    ds
               mov     ax,OFFSET DGROUP:messl
               push    ax
               call    FAR PTR PopMessage_0
               pop     cx
               pop     cx
               ret
        FROM_ASM       ENDP

               .DATA
        messl  DB      "Report: Condition Red",0
               END




        TASM2 #3-5/              = 252 =

                                   ᪨  㭪                           
        -----------------------------------------------------------------

               ࠧ  㤨 ⮤, ᯮ㥬  ।
         楤  몥 ᥬ ᯨ᪮  㭪஢.  㦥 㯮-
         ࠭, ᫮ ꥪ ࡮ ஫   ।  -
        ।⢥.  ⮣ ࡮ ஫ । 4-⮢ 㪠-
        ⥫  .

              ,  ᯮ  ᯨ᪮  㭪-
        ஢,   ⭠. ।,  ᫥騥  -
         ஫:

          domains
            ilist = integer*
            ifunc = int(integer)

             ⢥   㧫 ᯨ᪠  ilist 
         ᫥騩 :

        STRUCT ILIST
           NodeType  DB ?
           Value     DW ?
           NexNode   DD ?
        ENDS

                 ⮩ , 㧥 ᯨ᪠ ᮤন 
        :

             - ⨯ 㧫 ();
             - 祭 㧫 (  ⨯);
             - 㪠⥫  ᫥騩 㧥 (4 ).

              㧫 ᮤন   ।    祭:
        Value  1  砥,    㧥  ।⠢ ᮡ 㧥 ᯨ᪠, 
        Value 2 砥,  㧥 -  㧥   ᯨ᪠  (  
        ᮤন  㣮  饩 ଠ樨). 祭 㧫  ⭮-
            ࡮ ஫.

             ⢥   㭪 ifunc 뫠  ᫥-
        饩:

          STRUC IFUNC
            FuncType   DB ?
            Value      DW ?
          ENDS

        TASM2 #3-5/              = 253 =


              㭪 ⮨   ⥩: ⨯  㭪  
          㭪.   㭪 -  楫, 易  樥
        ਠ 㭪  ᯨ᪥ ୠ⨢. ࢠ ୠ⨢ 
        ⨯ 1,  - ⨯ 2  ..

              ᫥  ࡮ ஫  ࡮ ᥬ  ॠ-
         ।  ⨫ 㭪 ࡮ ஫.

              ࡮ ஫  :

        /* FUNC.PRO */

        domains
          ifunc = int(integer)

        global predicates
          makefunk(integer,ifunc) - (i,o) language c

        goal
          makefunc(4,H),
          write(H).

              ࡮ ᥬ  ᫥騩 :

        ;
        ; IFUNC.ASM
        ;
              EXTRN _alloc_qstask:FAR     ; _alloc_qstack 頥
                                          ; 㪠⥫   

        STRUCT IFUNC
          FuncType    DB ?
          Value       DW ?
        ENDS

        IFUNC_TEXT    SEGMENT  WORD PUBLIC 'CODE'
                      ASSUME   CS:IFUNC_TEXT

                      PUBLIC   Makeifunc_0
        Makefunc_0    PROC FAR
                      arc      __inval:WORD, __outp:dWORD
                      push     bp
                      mov      bp,sp
                      mov      ax,3      ; 뤥 3 
                      push     ax

        TASM2 #3-5/              = 254 =

                      call     FAR PTR_alloc_qstack
                      pop      cx
                      les      bx,__outp
                      mov      [WORD PTR ES:BX+2],DX
                      mov      [WORD PTR ES:BX],AX
                      mov      ax,__inval
        ;;            les      bx,__outp
                      les      bx,[DWORD PTR ES:BX]
                      mov      [(IFUNC PTR ES:BX).VALUE],AX
                                 ; 祭 = __inval
                      mov      [(IFUNC PTR ES:BX).FUNCTYPE],1
                                 ; ⨯ = 1
                      pop      bp
                      ret
        Makeifunc_0   ENDP
        IFUNC_TEXT    ENDS
                      END

               ਬ   ifunc  ᯮ  ⮫쪮    ⨯
        㭪. ᫨    㣮 㭪, ⨯:

             myfunc = int(integer); char(char); r(real); d2(integer,real)

          뫠   ᫮.      ⠪
              ,  ⮫쪮    뫠  ꥤ
          ,  室    ।    ਠ⮢
        myfunc.   ।⠢ ᮡ  ॠ-
         myfunc  ࡮ ᥬ:

         STRUCT MyFunc
                FuncType    DB ?
                UNION
                  STRUC
                     _int   DW ?
                  ENDS
                  STRUC
                     _char  DB ?
                  ENDS
                  STRUC
                     _real  DQ ?
                  ENDS
                  STRUC
                     v1     DW ?
                     v2     DQ ?
                  ENDS
                ENDS

        TASM2 #3-5/              = 255 =

         ENDS

             , 易묨  ୠ⨢ 㭪 뫨  ᫥-
        騥 ⨯:

           int(integer)          1
           char(char)            2
           r(real)               3
           d2(integer,real)      4

             ⮡   ᯨ᪨  㭪, ﭨ   -
         ᠭ   ilist. 祬 ⨬ ⨯ 㧫 1  2?
        ⮬  ࡮ ஫  ilist,  ,  -
          뫮    :

             ilist = listnode(integer,listnode); end_of_list.

               ,    ।  ᫮  ꥪ,  
        । 㪠⥫  .  ⭮:  室 -
        ⮪ ᯨ᮪  㭪 ।  뫪,   室  ⮪
        ᯨ᮪   㭪 ।,  㪠⥫  뫪  -
        . (࡮ ஫  ।    㪠⥫    頥
        .)  , 頥 ࡮ ஫,  -
        짮 , 뤥   㭪権 । -
          ࡮ ஫. (. "㪮⢮ 짮⥫  ࡮ -
        "  "ࠢ筮 㪮⢮  ࡮ ஫".)





        TASM2 #3-5/              = 256 =

                         ਫ C. ⢥  騥                  
        -----------------------------------------------------------------

             ਢ   ४樨    砭   
          ᯮ짮 ࡮ ᥬ.

             :  ⠭ ࡮ ᥬ  ⥬?

             ⢥:  ணࠬ ⠭ INSTALL  ⠭筮
        ਡ⨢  ᪠ ࡮ ᥬ.  ⮡  ⠭,
         ⥪騩   ,  ᮤঠ ணࠬ ⠭,
          INSTALL.   ࠬ    ࠭   뢮-
         樨. ਬ, ᫨  믮 ⠭  ᪠
        A:, :

              A:
              INSTALL

             ᫥ ⮣ ணࠬ INSTALL 뢥  롮    -
        ,    믮  ⠭.

             :   ᫥ ᯮ짮 ࠧ ० ᥬ-
        ஢, ।ᬮ७  ⠢塞  ᪥ ணࠬ?

             ⢥:

                                 ᫮ ᯮ짮
            -------------------------------------------------------------
            (MASM)        - ணࠬ  ᥬ   ᨥ
                                   MASM 4.00  MASM 5.00.
            Quirks               - ணࠬ  ᥬ   ᨥ
                                   MASM 4.00  MASM 5.00,     
                                   ᥬ஢   TASM   㪠
                                   ४⨢ MASM51  QUIRKS.
            Masm51               - ணࠬ ॡ   ᥬ஢
                                   MASM ᨨ 5.1.
            Masm51  Quirks      - ணࠬ ॡ   ᥬ஢
                                   MASM 5.1,    ᥬ஢
                                    TASM,   ⮫쪮 MASM51.

             : 㦭   ᯮ짮  MASM51    ᥬ஢
        䠩, ᠭ  MASM ᨨ 5.1?

             ⢥: 設⢮  䠩   ᥬ஢   
        ᯮ짮 ४⨢ MASM51. , ᫨  ᥬ -
        室 ,  ஬ ᯮ ।⢠, ਬ塞 ⮫쪮 

        TASM2 #3-5/              = 257 =

        MASM ᨨ 5.1,  ॡ ᯮ짮 ० MASM51.

             ⮡ ।,   ।⢠ 樨 MASM51  ࠧ襭
         ⠭ ० MASM51  QUIRKS,  ஢ ᫥ 
        ⠡.

             :   ࠢ    ० QUIRKS
         MASM51?

             ⢥:  ᫥饩 ⠡ 㪠뢠,   ࠧ
        ⠭ ० QUIRKS  MASM51:

                              樨
            -------------------------------------------------------------
            Quirks               - ᫨  ᪠ CS, ࠧ蠥 -
                                    室 ⨯ FAR,  NEAR 
                                   SHORT.
                                 - ᪠,  ⮡  樨  -
                                   ।﫨     筮   樨
                                   ⮫쪮 ॣ஬ (᫨  ).
                                 - ⬥ OFFSET, ८।  ᥣ-
                                   ⮢  .. ଠ  '='   -
                                    ᢠ 'EQU'.
                                 - ਢ  ⮬,  ᢠ  EQU
                                    ࠦ,  ᮤঠ  "PTR"  
                                   ":",  ⥪⮢묨.

            Masm51               - Instr,   Catstr,  Substr,  Sizestr,  
                                   "\" (த ப) ࠧ.
                                 - EQU  祢 ᫮  TEXT,  
                                   ALIAS.
                                 -  %textmacro  㬥 ப
                                   ।騥 ஡  뢠-
                                   .

            Masm51  Quirks      - ,  㪠 ࠭  QUIRKS.
                                 - ,  㪠 ࠭  MASM51.
                                 - ࠧ    ⪨  @@,
                                   @F,  @B.
                                 -  ७     楤
                                   ⮬᪨ ⠭ 饤㯭-
                                   .
                                 -  ⪨ 楤  ८-
                                     㣨 楤.
                                 -  । 䨪,  -
                                    ⨦    ⥪饩  楤,

        TASM2 #3-5/              = 258 =

                                   ࠧ襭  "::".

            Masm51  Ideal       - ন  ᨭ⠪  襭
                                   ०     ⥪⮢   த४⨢
                                   Masm51 (  Instr, Catstr, Substr,
                                    Sizestr).

             :   ᫥  ᯮ짮  ४⨢  DOSSEG  
        .STACK?

             ⢥:     ࠧࠡ뢠  㫨  ࡮  ᥬ,
        ।祭       몠 ᮪ ஢ (⨯
        ࡮   ࡮ ᪠),   ४⨢ DOSSEG   .STACK  
        ॡ, ⠪  冷 ᥣ⮢  ⥪ । -
        ࠬ  몮.  ४⨢ ।   冷 ᥣ-
        ⮢,    ਢ  䫨  㣨 몮 -
         ஢. ,  ᫥  ( ࠧ)  - 
        㫥 ⮭ ணࠬ  ᥬ.  ४⨢ DOSSEG -
        室 ⮫쪮  ⮬ 砥, ᫨  , ⮡  ᥣ
        㯮冷稢  ᮮ⢥⢨  ᮣ襭ﬨ  Microsoft. 
          ᮡ⢥ 冷 ᥣ⮢,  ᯥ稢,  
        ᥣ   㦥 ⨫⮩ TLINK  ⮬ 浪,  
         .   ᠭ ⮣  ᮤন   ࠧ
        㪮⢠,  ⨫ TLINK.

             :  ࠬ ᫥ ᯮ짮  ᥬ-
           ࡮ ᥬ 䠩,  ⠢塞  -
        ஬ 몠   Microsoft.

             ⢥:  樨 ⠪ 㫥  몥 ᥬ -
         㡥,   ᯮ ० MASM51  QUIRKS. ਬ:

               tasm /jmasm51 /jquirks filename

             :   ᮧ 䠩 .COM?

             ⢥: 室  ᥬ 㦭 ஢  ᯮ-
          ᢥ嬠   (.MODEL TINY),    ᥣ⮬
          ணࠬ 㦭  ORG 100h, ਬ:

                        .MODEL  TINY
                        .CODE
                        ORG     100h
                start:
                        ....          ; ⥫ ணࠬ
                ENDS    start         ; ।  室 

        TASM2 #3-5/              = 259 =

                                      ; ᪥
                END

              ணࠬ,    ᯮ    ନ஢ 䠩
        .COM,  ᫥  ४⨢ .STACK.

             ⨫ TLINK 㤥 ᮧ  䠩 .EXE  䠩  .COM,
        ᫨  ࠬ /t, ਬ, :

                tlink -t SHOW87

        㤥  䠩 SHOW87.EXE ᮧ 䠩 SHOW87.COM.

              ८ࠧ  䠩 .EXE  䠩 .COM  
        ࠭祭.   ࠭祭 ᠭ  㪮⢥  樮-
         ⥬ DOS  IBM (EXE2BIN).

             :     ࡮ ᥬ  ᥬ஢
        ᪮쪮 䠩?

             ⢥:   ᤥ, ᯮ   䠩  -
         ᨬ  ࠧ     䠩 
        "" (+). ਬ,  ᫥饩 :

               tasm filt + o*

        㤥 ᥬ஢ 䠩 FILT.ASM,  ⠪ 䠩 .ASM, 
        稭  㪢 'o'.

             :   ᥬ஢ ᪮쪮 䠩, ᯮ
          ࠧ ࠬ  ப?

             ⢥:  ⢥ ࠧ⥫   ப  ࡮  -
        ᥬ  ᯮ  窠  ⮩ (;).  ⮬   -
         ப DOS    ⢨⥫쭮   ᪮쪮
         ᥬ஢. ਬ, ᫥  ப:

               tasm /zi filt; o*

        㤥 ᥬ஢ 䠩 FILT.ASM  祭   ଠ樨
         ⫠,   ⥬ ᥬ஢  䠩 .ASM, 稭騥
         㪢 'o,  祭 ଠ樨  ⫠.

             : ஠ᥬ   Microsoft  ।
        ६ 樮 ।,  ⮬    㦭    
          ப.     ᤥ  ࠡ  ࡮

        TASM2 #3-5/              = 260 =

        ᥬ஬?

             ⢥: , , ⮡   ࠬ஢  -
           ப,   ࡮ ᥬ ।ᬮ७ 
          ᯮᮡ.   ࠧ  ᪥ ࡮ ᥬ  
          ⥪饬 ⠫,   ⥬  ⮬ ⠫,   ண 
        ᪠,  ( DOS ᨨ 3.  ) ᯥ樠 䠩  -
         TASM.CFG.  䠩  ᮤঠ  ଠ, 
        ᮤন   ப.   ࠡ뢠  ,  ᫥
        祣 ࠡ뢠  ப, ⮬ ࠬ 
        ப   ᮪ ਮ  ࠢ   ࠬࠬ,
         ᮤঠ  䠩 䨣樨 TASM.CFG.  ਬ, ᫨
          ப  ᥣ ᯮ ࠬ:

               /t /ml /zi /jJUMPS /jLOCALS

         ᫥ ᮧ 䠩 TASM.CFG, ᮤঠ騩 ᫥騥 ப:

               /t
               /ml
               /zi
               /jJUMPS
               /jLOCALS

             ⨬,    ᪥ ࡮ ᥬ    -
          ᯮ짮  㬮砭.   砥,   ᫨
         室,        ᢮  ஥⮢  
        ࠧ  䠩 TASM.CFG.  ᫨    ᪮쪮 ஥⮢
        (ணࠬ),  ᮤঠ   ⠫,      
           ᮧ ⤥ 䠩 䨣樨  ᯮ짮
        ,  ᢥ  䠩 ࡮ ᥬ.

             :  ।⠢  ᮡ  ᢥ    䠩
        ࡮ ᥬ?

             ⢥:  䠩,   ᮤঠ    -
         ப ࡮ ᥬ,    ।  묨  㪠뢠
          @.  ਬ,  ᫨    䠩   "FILE.CMD",
         ᮤন ᫥饥:

               /t
               /ml
               /zi
               /jJUMPS
               /jLOCALS
               file1 +

        TASM2 #3-5/              = 261 =

               file2 +
               file3 +
               file4

          ᫥ ᯮ짮  ப:

               tasm @FILE.CMD

           ப:

               tasm /t /ml /zi /jJUMPS /jLOCALS file1+file2+file3+file4

             ⨬,  ᨬ @  ⢨⥫쭮    
         䠩. ᪨, ᫨  ᢮ 䠩 , ஥ -
        稭  ᨬ @,   ࡮ ᥬ 㤥 ࠡ뢠 ,
         ᢥ  䠩.

             :  믮  ᢮ 㭪権  몥 ᥬ-
          ࡮ . 祬 騪 ᮮ頥,    㭪樨
        ।?

             ⢥: ,   । ᥬ  㭪権, ॠ-
          ᥬ  뢠  ࡮ ,   㪠  ᨬ
        ન  (_).  ᫨    ᯮ 饭 ।
        ᥣ⮢  砥  ४⨢ .MODEL ᯥ䨪  몠  ,
         ࡮ ᥬ 㤥   ᨬ ⮬᪨. -
         ணࠬ  몥 ᥬ  ᥬ஢  ࠧ-
        稥    㪢  孥    ॣ஢ (ࠬ /ML 
        /MX).  ஡  㧭   6 "࣠ 䥩
        ࡮ ᥬ  ࡮ ".

             :      ⢥ ᯥ䨪 ࠬ 㪠-
           (/),     (\)?

             ⢥: . ࡮ ᥬ ( MASM)  ࠡ뢠 ,
          䠩,  室  ୥ ⠫  ᯮ-
          㬮砭 ᪥.    ᥬ ࠡ뢠 ᨬ-
          ஡ 筮 ⮩,    ਢ   䠩-
        . ᫨  砩  ᫥  ப:

              tasm \zi prid&joy.asm

         ࡮ ᥬ ( MASM) ਭ﫨      ப,
          㪠 ᥬ஢ 䠩   ZI.ASM,   
          ୥ ⠫,  ᮧ 室 䠩 ( ⥪饬 -
        ⠫)      PRID&JOY.ASM.  (⨬,   ᯮ㥬 

        TASM2 #3-5/              = 262 =

        㬮砭 ७ ꥪ⭮ 䠩 .OBJ   ८। 
        .ASM.)  PRID&JOY.ASM 㤥 १ᠭ ꥪ 䠩, 
        㤥 㤠,  ᫨ 䠩 \ZI.ASM     ᯥ譮  -
        ᥬ஢.         砥   室   ᮤন  䠩
        PRID&JOY.ASM 㤥 ﭮ.

