home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / tasm-2.doc / turbass3.doc next >
Encoding:
Text File  |  1991-01-04  |  479.3 KB  |  11,172 lines

  1.                                                                                
  2.   éδí¿αá⌐ΓÑ
  3.         =================================================================
  4.  
  5.                              ÇóΓ«α߬¿⌐ ¬«½½Ñ¬Γ¿ó "*.*"
  6.                             »«ñ απ¬«ó«ñßΓó«¼ ÄὫóá æ.ü.
  7.  
  8.  
  9.  
  10.                            ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè »« ß¿ßΓѼÑ
  11.                        »α«úαá¼¼¿α«óá¡¿∩ ÆôÉüÄ ÇææàîüïàÉ 2.0
  12.  
  13.                              ÉôèÄéÄ俯éÄ ÅÄï£çÄéÇÆàïƒ
  14.  
  15.                           #3/5 (â½áóδ 9-11, »α¿½«ªÑ¡¿∩)
  16.  
  17.  
  18.                                 ú.î«ß¬óá, 1990 ú.
  19.  
  20.         =================================================================
  21.  
  22.                                    Äú½áó½Ñ¡¿Ñ                                  
  23.         TASM2 #3-5/䫬                = 1 =
  24.  
  25.         â½áóá 9. Éáºó¿Γ«Ñ »α«úαá¼¼¿α«óá¡¿Ñ ¡á Æπαí« ÇßßѼí½ÑαÑ..........6
  26.           ÅαÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó............................6
  27.           Ç½∞ΓÑα¡áΓ¿ó¡á∩ Σ«α¼á.........................................10
  28.           è«úñá »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ¡Ñ αáí«ΓáεΓ.........10
  29.           ä«ßΓπ» ¬ ¡Ñ߬«½∞¬¿¼ ßÑú¼Ñ¡Γá¼................................12
  30.           ï«¬á½∞¡δÑ ¼ÑΓ¬¿..............................................13
  31.           ÇóΓ«¼áΓ¿τÑ߬«Ñ ¡áº¡áτÑ¡¿Ñ αẼÑαá »ÑαÑσ«ñá...................18
  32.           æß佬¿ ó»ÑαÑñ ¡á ¬«ñ ¿ ñá¡¡δÑ................................23
  33.           êß»«½∞º«óá¡¿Ñ í½«¬«ó »«óΓ«αÑ¡¿∩ ¿ ¼á¬α«¬«¼á¡ñ................28
  34.           ü½«¬¿ »«óΓ«αÑ¡¿∩.............................................28
  35.           ü½«¬¿ »«óΓ«αÑ¡¿∩ ¿ »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ......................31
  36.           îá¬α«¬«¼á¡ñδ.................................................32
  37.           é½«ªÑ¡¡δÑ ¼á¬α«¬«¼á¡ñδ.......................................39
  38.           îá¬α«¬«¼á¡ñδ ¿ πß½«ó¿∩.......................................40
  39.           çáóÑαΦÑ¡¿Ñ ¼á¬α«αáßΦ¿αÑ¡¿∩ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ EXITM.........42
  40.           Ä»αÑñѽѡ¿Ñ ¼ÑΓ«¬ ß »«¼«Θ∞ε ¼á¬α«¬«¼á¡ñ......................43
  41.           Éáºó¿ΓδÑ ßΓαπ¬Γπαδ ñá¡¡δσ....................................45
  42.           ä¿αÑ¬Γ¿óá STRUC..............................................46
  43.           ìÑñoßΓáΓ¬¿ ¿ »αÑ¿¼πΘÑßΓóá ¿ß»«½∞º«óá¡¿∩ ñ¿αÑ¬Γ¿óδ STRUC......51
  44.           ô¡¿¬á½∞¡δÑ ¿¼Ñ¡á »«½Ñ⌐ ßΓαπ¬Γπα..............................52
  45.           é½«ªÑ¡¡δÑ ßΓαπ¬Γπαδ..........................................53
  46.           ê¡¿µ¿á½¿ºáµ¿∩ ßΓαπ¬Γπα.......................................54
  47.           ä¿αÑ¬Γ¿óá RECORD.............................................56
  48.           ä«ßΓπ» ¬ ºá»¿ß∩¼.............................................58
  49.           Ä»Ñαᵿ∩ WITH................................................61
  50.           Ä»Ñαᵿ∩ MASK................................................62
  51.           ä½∩ τÑú« ¿ß»«½∞ºπεΓß∩ ºá»¿ß¿?................................64
  52.           ä¿αÑ¬Γ¿óá UNION..............................................67
  53.           ä¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó..............................71
  54.           ä¿αÑ¬Γ¿óá SEGMENT............................................72
  55.           Å«½∩ "¿¼∩" ¿ "óδαáó¡¿óá¡¿Ñ"..................................72
  56.           Å«½Ñ "¬«¼í¿¡¿α«óá¡¿Ñ"........................................73
  57.           ìạáτÑ¡¿Ñ »«½Ñ⌐ "¿ß»«½∞º«óá¡¿Ñ" ¿ "¬½áßß"...................75
  58.           ÉẼÑα, Γ¿», ¿¼∩ ¿ πα«óÑ¡∞ ó½«ªÑ¡¡«ßΓ¿ ßÑú¼Ñ¡Γá..............75
  59.           Å«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó............................................78
  60.           ä¿αÑ¬Γ¿óá GROUP..............................................80
  61.           ä¿αÑ¬Γ¿óá ASSUME.............................................83
  62.           ô»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó...................87
  63.           Åα¿¼Ñα »α«úαá¼¼δ, ß«ßΓ«∩ΘÑ⌐ ¿º ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó..........93
  64.         â½áóá 10. Åα«µÑßß«α 80386 ¿ ñαπú¿Ñ »α«µÑßß«αδ..................98
  65.           éδí«α ó »α«úαἼѠ¡á ÇßßѼí½ÑαÑ Γ¿»á »α«µÑßß«αá..............98
  66.           Åα«µÑßß«αδ 80186 ¿ 80188.....................................99
  67.           ÉáºαÑΦÑ¡¿Ñ áßßÑ¼í½¿α«óá¡¿∩ ñ½∩ »α«µÑßß«αá 80186.............101
  68.           ì«óδÑ ¿¡ßΓαπ¬µ¿¿............................................101
  69.           ê¡ßΓαπ¬µ¿¿ PUSHA ¿ POPA.....................................101
  70.           ê¡ßΓαπ¬µ¿¿ ENTER ¿ LEAVE....................................103
  71.  
  72.         TASM2 #3-5/䫬                = 2 =
  73.  
  74.           ê¡ßΓαπ¬µ¿∩ BOUND............................................105
  75.           ê¡ßΓαπ¬µ¿¿ INS ¿ OUTS.......................................107
  76.           ÉáßΦ¿αÑ¡¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086...............109
  77.           çá¡ÑßÑ¡¿Ñ ó ßΓѬ »α«¼ÑªπΓ«τ¡δσ º¡áτÑ¡¿⌐.....................109
  78.           æñó¿ú¿ ¿ µ¿¬½¿τÑ߬¿Ñ ßñó¿ú¿ c ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿..110
  79.           ô¼¡«ªÑ¡¿Ñ ¡á ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ......................110
  80.           Åα«µÑßß«α 80286.............................................113
  81.           ÇßßÑ¼í½¿α«óá¡¿∩ ß ¿ß»«½∞º«ó᡿Ѽ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá
  82.            80286......................................................115
  83.           Åα«µÑßß«α 80386.............................................116
  84.           éδí«α αѪ¿¼á áßßÑ¼í½¿α«óá¡¿∩ ñ½∩ »α«µÑßß«αá 80386...........116
  85.           ì«óδÑ Γ¿»δ ßÑú¼Ñ¡Γ«ó........................................118
  86.           ô»α«ΘÑ¡¡δÑ ßÑú¼Ñ¡Γ¡δÑ ñ¿αÑ¬Γ¿óδ ¿ Γ¿»δ ßÑú¼Ñ¡Γ«ó ñ½∩ 80386..123
  87.           48-í¿Γ«óδ⌐ Γ¿» ñá¡¡δσ FWORD.................................123
  88.           ì«óδÑ αÑú¿ßΓαδ..............................................127
  89.           32-αáºα∩ñ¡δÑ «íΘ¿Ñ αÑú¿ßΓαδ.................................130
  90.           32-αáºα∩ñ¡δ⌐ αÑú¿ßΓα Σ½áú«ó.................................132
  91.           32-αáºα∩ñ¡δ⌐ π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐...........................132
  92.           ì«óδÑ ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ...................................134
  93.           ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿......................................135
  94.           ì«óδÑ ¿¡ßΓαπ¬µ¿¿............................................142
  95.           Åα«óÑα¬á í¿Γ................................................142
  96.           Åα«ß¼«Γα í¿Γ«ó..............................................144
  97.           ÅÑαѼÑΘÑ¡¿Ñ ñá¡¡δσ ß αáßΦ¿αÑ¡¿Ñ¼ »« º¡á¬π ¿½¿ ¡π½ε..........146
  98.           ÅαÑ«íαẫóá¡¿Ñ ñá¡¡δσ Γ¿»á DWORD ¿½¿ QWORD..................148
  99.           æñó¿ú ¡Ñ߬«½∞¬¿σ ß½«ó.......................................149
  100.           ôß½«ó¡á∩ πßΓá¡«ó¬á í¿Γ......................................151
  101.           çáúαπº¬á αÑú¿ßΓα«ó SS, FS ¿ GS..............................153
  102.           ÉáßΦ¿αÑ¡¡δÑ ¿¡ßΓαπ¬µ¿¿......................................155
  103.           æ»Ñµ¿á½∞¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿¿ MOV...........................155
  104.           32-αáºα∩ñ¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086..............157
  105.           ì«óδÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ LOOP ¿ JCXZ.........................157
  106.           ì«óδÑ óÑαß¿¿ ßΓ᫬«óδσ ¿¡ßΓαπ¬µ¿⌐...........................160
  107.           ê¡ßΓαπ¬µ¿∩ IRETD............................................162
  108.           ê¡ßΓαπ¬µ¿¿ PUSHFD ¿ POPFD...................................162
  109.           ê¡ßΓαπ¬µ¿¿ PUSHAD ¿ POPAD...................................162
  110.           ì«óδÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿¿ IMUL................................163
  111.           ùÑαÑñ«óá¡¿Ñ 16-αáºα∩ñ¡δσ ¿ 32-αáºα∩ñ¡δσ ¿¡ßΓαπ¬µ¿⌐ ¿
  112.            ßÑú¼Ñ¡Γ«ó..................................................164
  113.           Åα¿¼Ñα Σπ¡¬µ¿¿ ñ½∩ »α«µÑßß«αá 80386.........................167
  114.           æ«»α«µÑßß«α 80287...........................................173
  115.           æ«»α«µÑßß«α 80387...........................................173
  116.         â½áóá 11. ô½πτΦÑ¡¡δ⌐ αѪ¿¼ Æπαí« ÇßßѼí½Ñαá...................175
  117.           ùΓ« ΓᬫѠπ½πτΦÑ¡¡δ⌐ αѪ¿¼?.................................175
  118.           ä½∩ τÑú« ¿ß»«½∞ºπÑΓß∩ π½πτΦÑ¡¡δ⌐ αѪ¿¼?.....................176
  119.  
  120.         TASM2 #3-5/䫬                = 3 =
  121.  
  122.           ÅÑαѬ½ετÑ¡¿Ñ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼ ¿ óδσ«ñ ¿º ¡Ñú«.............177
  123.           ÄΓ½¿τ¿∩ π½πτΦÑ¡¡«ú« αѪ¿¼á ¿ αѪ¿¼á MASM....................179
  124.           ïѬßѼδ π½πτΦÑ¡¡«ú« αѪ¿¼á..................................179
  125.           ïѬßѼδ-¿ñÑ¡Γ¿Σ¿¬áΓ«αδ......................................179
  126.           äπí½¿α«óá¡¿Ñ ¿¼Ñ¡ φ½Ñ¼Ñ¡Γ«ó.................................180
  127.           ïѬßѼδ, »αÑñßΓáó½∩εΘ¿Ñ ß«í«⌐ τ¿ß½á ß »½áóáεΘÑ⌐ Γ«τ¬«⌐......182
  128.           ÆÑ¬ßΓ«óδÑ ¿ τ¿ß½«óδÑ »α¿ßóá¿óá¡¿∩ (ñ¿αÑ¬Γ¿óδ EQU ¿ =).......182
  129.           éδαáªÑ¡¿∩ ¿ «»Ñαá¡ñδ........................................183
  130.           Ä»Ñαᵿ∩ ¬óáñαáΓ¡δσ ß¬«í«¬ []...............................183
  131.           Åα¿¼Ñαδ «»Ñαá¡ñ«ó...........................................184
  132.           Ä»Ñαᵿ¿....................................................186
  133.           Æ«τ¬¿ ó φ½Ñ¼Ñ¡Γáσ ßΓαπ¬Γπαδ.................................186
  134.           ô¬áºáΓѽ¿ ¡á ßΓαπ¬Γπαδ......................................188
  135.           Ä»Ñαᵿ∩ SYMTYPE............................................189
  136.           Ä»Ñαᵿ¿ HIGH ¿ LOW.........................................189
  137.           ìÑ«í∩ºáΓѽ∞¡á∩ «»Ñαᵿ∩ PTR.................................190
  138.           Ä»Ñαᵿ∩ SIZE...............................................190
  139.           ä¿αÑ¬Γ¿óδ...................................................192
  140.           ô»αáó½Ñ¡¿Ñ ½¿ßΓ¿¡ú«¼........................................192
  141.           ä¿αÑ¬Γ¿óδ, ¡áτ¿¡áεΘ¿Ñß∩ ß Γ«τ¬¿.............................193
  142.           ÄíαáΓ¡δ⌐ »«α∩ñ«¬ ¿¼Ñ¡¿ ñ¿αÑ¬Γ¿óδ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá...........194
  143.           çᬽετÑ¡¡δÑ ó ¬áóδτ¬¿ ßΓ᫬¿, ∩ó½∩εΘ¿Ñß∩ áαúπ¼Ñ¡ΓἿ
  144.            ñ¿αÑ¬Γ¿ó...................................................196
  145.           æÑú¼Ñ¡Γδ ¿ úαπ»»δ...........................................196
  146.           ä«ßΓπ» ¬ ñá¡¡δ¼ ó ßÑú¼Ñ¡ΓÑ, »α¿¡áñ½ÑªáΘѼ úαπ»»Ñ............196
  147.           Ä»αÑñѽѡ¿Ñ ó ¬«ñÑ í½¿ª¡¿σ ¿ ñá½∞¡¿σ ¼ÑΓ«¬..................199
  148.           é¡ÑΦ¡¿Ñ, «íΘÑñ«ßΓπ»¡δÑ ¿ ú½«íá½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ..........200
  149.           äαπú¿Ñ «Γ½¿τ¿∩..............................................202
  150.           Å«ñáó½Ñ¡¿Ñ ¬«ααÑ¬Γ¿α«ó«¬....................................202
  151.           Ä»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿ BOUND....................................202
  152.           è«¼¼Ñ¡Γáα¿¿ ó ¼á¬α«¬«¼á¡ñáσ.................................203
  153.           ï«¬á½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ....................................204
  154.           æαáó¡Ñ¡¿Ñ »α«úαá¼¼¿α«óá¡¿∩ ó αѪ¿¼Ñ MASM ¿ ó π½πτΦÑ¡¡«¼
  155.            αѪ¿¼Ñ.....................................................204
  156.           Åα¿¼Ñα »α«úαá¼¼δ ó αѪ¿¼Ñ MASM..............................204
  157.           Åα¿¼Ñα »α«úαá¼¼δ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ........................206
  158.           Ç¡á½¿º αѪ¿¼á MASM ¿ π½πτΦÑ¡¡«ú« αѪ¿¼á.....................208
  159.           ï¿ΓÑαáΓπαá..................................................211
  160.         Åα¿½«ªÑ¡¿Ñ A. ê¡ΓÑαΣÑ⌐ß Æπαí« ÇßßѼí½Ñαá ¿ Æπαí« üÑ⌐ß¿¬á......212
  161.           ÅÑαÑñáτá »áαá¼ÑΓα«ó.........................................213
  162.           ÅÑαѼѡ¡δÑ, ¡áσ«ñ∩Θ¿Ñß∩ ó¡Ñ ΓѬπΘÑú« ßÑú¼Ñ¡Γá ñá¡¡δσ........216
  163.           Æ¿» «»ÑαáΓ«αá CALL..........................................216
  164.           êºó½ÑτÑ¡¿Ñ ¿º ßΓѬá.........................................217
  165.           æ«ºñá¡¿Ñ »α«úαá¼¼δ ¡á ÇßßѼí½ÑαÑ ñ½∩ Æπαí« üÑ⌐ß¿¬á..........219
  166.           é맮ó óßΓα«Ñ¡¡«⌐ »α«µÑñπαδ ÇßßѼí½Ñαá.......................219
  167.           ÉẼÑΘÑ¡¿Ñ »«ñ»α«úαá¼¼δ Æπαí« üÑ⌐ß¿¬á ó »á¼∩Γ¿..............223
  168.  
  169.         TASM2 #3-5/䫬                = 4 =
  170.  
  171.           "æ¬αδΓδÑ" ßΓ᫬¿............................................224
  172.           Ä»ÑαáΓ«α CALL ABSOLUTE......................................226
  173.           ÄíαáΘÑ¡¿Ñ CALL ABSOLUTE ¬ Σ¿¬ß¿α«óá¡¡δ¼ áñαÑßá¼ »á¼∩Γ¿......228
  174.           ÄíαáΘÑ¡¿Ñ CALL ABSOLUTE ¬ ñαπú¿¼ áñαÑßá¼ »á¼∩Γ¿.............229
  175.           äαπú¿Ñ »α«í½Ñ¼δ, ó«º¡¿¬áεΘ¿Ñ »α¿ ¿ß»«½∞º«óá¡¿¿ CALL
  176.            ABSOLUTE...................................................231
  177.           CALL INTERRUPT..............................................231
  178.           Åα¿¼Ñα »α«úαá¼¼δ............................................234
  179.         Åα¿½«ªÑ¡¿Ñ B. ê¡ΓÑαΣÑ⌐ß Æπαí« ÇßßѼí½Ñαá ß Æπαí« Åα«½«ú«¼.....237
  180.           ÄíΩ∩ó½Ñ¡¿Ñ ó¡ÑΦ¡¿σ »αÑñ¿¬áΓ«ó...............................237
  181.           æ«ú½áΦÑ¡¿∩ »« ó맮óπ ¿ »áαá¼ÑΓαδ............................237
  182.           æ«ú½áΦÑ¡¿∩ »« ¿¼Ñ¡á¼........................................239
  183.           Éáºαáí«Γ¬á »αÑñ¿¬áΓ«ó ¡á ÇßßѼí½ÑαÑ.........................240
  184.           ÉÑ὿ºáµ¿∩ »αÑñ¿¬áΓá double.................................243
  185.           ÉÑ὿ºáµ¿∩ »αÑñ¿¬áΓ«ó ß ¡Ñ߬«½∞¬¿¼¿ »«Γ«¬á¼¿ óó«ñá-óδó«ñá...247
  186.           é맮ó »αÑñ¿¬áΓ«ó Æπαí« Åα«½«úá ¿º Σπ¡¬µ¿⌐ ÇßßѼí½Ñαá........249
  187.           æ»¿ß¬¿ ¿ Σπ¡¬Γ«αδ...........................................252
  188.         Åα¿½«ªÑ¡¿Ñ C. ÄΓóÑΓδ ¡á «íΘ¿Ñ ó«»α«ßδ.........................256
  189.  
  190.         TASM2 #3-5/䫬                = 5 =
  191.  
  192.         =================================================================
  193.  
  194.                              ÇóΓ«α߬¿⌐ ¬«½½Ñ¬Γ¿ó "*.*"
  195.                             »«ñ απ¬«ó«ñßΓó«¼ ÄὫóá æ.ü.
  196.  
  197.  
  198.  
  199.                            ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè »« ß¿ßΓѼÑ
  200.                        »α«úαá¼¼¿α«óá¡¿∩ ÆôÉüÄ ÇææàîüïàÉ 2.0
  201.  
  202.                              ÉôèÄéÄ俯éÄ ÅÄï£çÄéÇÆàïƒ
  203.  
  204.                            #3/5 (â½áóδ 9-11, »α¿½«ªÑ¡¿∩)
  205.  
  206.  
  207.  
  208.  
  209.                                 ú.î«ß¬óá, 1990 ú.
  210.  
  211.         =================================================================
  212.  
  213.         TASM2 #3-5/䫬                = 6 =
  214.  
  215.                 â½áóá 9. Éáºó¿Γ«Ñ »α«úαá¼¼¿α«óá¡¿Ñ ¡á Æπαí« ÇßßѼí½ÑαÑ         
  216.         -----------------------------------------------------------------
  217.  
  218.              é »αÑñδñπΘ¿σ ó«ß∞¼¿ ú½áóáσ ñá¡¡«ú« απ¬«ó«ñßΓóá ¼δ αáß߬áºá½¿
  219.         «  ßπΘ¡«ßΓ¿  »α«úαá¼¼¿α«óá¡¿∩  ¡á  ÇßßѼí½ÑαÑ. ÆÑ»Ñα∞ óδ ú«Γ«óδ ¬
  220.         Γ«¼π, τΓ«íδ «º¡á¬«¼¿Γ∞ß∩ ß ¡Ñ¬«Γ«α묨 αáºó¿Γ묨 ßαÑñßΓóἿ  Æπαí«
  221.         ÇßßѼí½Ñαá.
  222.  
  223.              é ñá¡¡«⌐ ú½áóÑ ¼δ ¿ßß½ÑñπѼ ¡Ñ߬«½∞¬« áß»Ñ¬Γ«ó  »α«úαá¼¼¿α«-
  224.         óá¡¿∩  ¡á ÇßßѼí½ÑαÑ, ¬«Γ«αδÑ ¼δ αá¡ÑÑ Γ«½∞¬« ß½Ñú¬á ºáΓα«¡π½¿. è
  225.         ¡¿¼ «Γ¡«ß∩Γß∩ »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó,  ¼á¬α«¬«¼á¡ñδ,
  226.         ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ¿ αáºαáí«Γ¬á »α«úαá¼¼, ß«ñÑαªáΘ¿σ
  227.         ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ¬«ñá ¿ ñá¡¡δσ. îδ αáßß¼«Γα¿¼ ΓᬪѠ ¡Ñ¬«Γ«αδÑ
  228.         »«½Ñº¡δÑ  ßαÑñßΓóá,  ß  ¬«Γ«α묨 óδ αá¡ÑÑ ¡Ñ óßΓαÑτ὿ß∞, ó¬½ετá∩
  229.         ½«¬á½∞¡δÑ ¼ÑΓ¬¿, áóΓ«¼áΓ¿τÑ߬«Ñ  ¡áº¡áτÑ¡¿Ñ  αẼÑα«ó  »ÑαÑσ«ñ«ó,
  230.         «»ÑαѪáεΘ¿Ñ ßß佬¿ ¿ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßΓαπ¬Γπα ñá¡¡δσ.
  231.  
  232.              ò«Γ∩ ¼δ »«º¡á¬«¼¿½¿ óáß ß «ß¡«óἿ »α«úαá¼¼¿α«óá¡¿∩  ¡á  Çß-
  233.         ßѼí½ÑαÑ  ¿  αáßß¼«Γα¿¼  ó  ñá¡¡«⌐ ú½áóÑ ¡Ñ¬«Γ«αδÑ ΓѼδ αáºó¿Γ«ú«
  234.         ("»α«ñó¿¡πΓ«ú«") »α«úαá¼¼¿α«óá¡¿∩,  ¼δ, ¬«¡Ñτ¡«, ¡Ñ «σóáΓ¿½¿ φΓ¿¼
  235.         óßÑ á߻ѬΓδ »α«úαá¼¼¿α«óá¡¿∩ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá.  é ¬«¡µÑ ñá¡¡«⌐
  236.         ¬¡¿ú¿ ¼δ »αÑñ½áúáѼ ¡Ñ߬«½∞¬« ¬¡¿ú »« »α«úαá¼¼¿α«óá¡¿ε ¡á ÇßßѼí-
  237.         ½ÑαÑ ¿ ¡áñÑѼß∩, τΓ« óδ ñ«ßΓá¡ÑΓÑ «ñ¡π ¿º ¡¿σ ¿ »α«ñ«½ª¿ΓÑ ßἫß-
  238.         Γ«∩Γѽ∞¡«Ñ ¿ºπτÑ¡¿Ñ ÇßßѼí½Ñαá.
  239.  
  240.              åѽáѼ πß»Ñσá!
  241.  
  242.                           ÅαÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó                   
  243.         -----------------------------------------------------------------
  244.  
  245.              ùáΘÑ óßÑú« «»Ñαá¡ñδ ó »á¼∩Γ¿ «»αÑñѽ∩εΓ ∩τÑ⌐¬¿ »á¼∩Γ¿ ó ßÑú-
  246.         ¼Ñ¡ΓÑ,  ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DX. ìá»α¿¼Ñα, »«ß½Ññ«óáΓѽ∞-
  247.         ¡«ßΓ∞ ¿¡ßΓαπ¬µ¿⌐:
  248.  
  249.                  .
  250.                  .
  251.                  .
  252.                  mov   bx,10h
  253.                  mov   si,5
  254.                  mov   ax,[bx+si+1]
  255.                  .
  256.                  .
  257.                  .
  258.  
  259.         ºáúαπªáÑΓ ó αÑú¿ßΓα AX ß½«ó«, ºá»¿ßá¡¡«Ñ »« ß¼ÑΘÑ¡¿ε 16 ó ßÑú¼Ñ¡-
  260.  
  261.         TASM2 #3-5/䫬                = 7 =
  262.  
  263.         ΓÑ,  ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DS.  äαπú«⌐ ß»«ß«í ßñѽáΓ∞  φΓ«
  264.         ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ π¬áºáΓ∞, τΓ« AX ºáúαπªáÑΓß∩ ¿º ∩τÑ⌐¬¿ »á¼∩Γ¿
  265.         »« áñαÑßπ DS:0016.
  266.  
  267.              Äñ¡« ¿º ¿ß¬½ετÑ¡¿⌐ ¿º »αáó¿½á ºáúαπº¬¿ ¿º ßÑú¼Ñ¡Γá, ¡á ¬«Γ«-
  268.         αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DS, ß«ßΓ«¿Γ ó Γ«¼, τΓ« ßΓ᫬«óδÑ ¿¡ßΓαπ¬µ¿¿
  269.         STOS ¿ MOVS óδ»«½¡∩εΓ ºá»¿ß∞ ó ßÑú¼Ñ¡Γ,  ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑ-
  270.         ú¿ßΓα ES, á ßΓ᫬«óδÑ ¿¡ßΓαπ¬µ¿¿ SCAS ¿ CMPS ¿ß»«½∞ºπεΓ ó ¬áτÑßΓ-
  271.         óÑ ¿ßΓ«τ¡¿¬á «»Ñαá¡ñ,  ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα ES.  (Äñ¿¡ ¿º
  272.         «»Ñαá¡ñ«ó-¿ßΓ«τ¡¿¬«ó ¿¡ßΓαπ¬µ¿¿ CMPS ¡áσ«ñ¿Γß∩ ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ,
  273.         á ñαπú«⌐ - ó ñ«»«½¡¿Γѽ∞¡«⌐ ßÑú¼Ñ¡ΓÑ.)
  274.  
  275.              äαπú«Ñ ¿ß¬½ετÑ¡¿Ñ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« ½εí«⌐ «»Ñαá¡ñ ó »á-
  276.         ¼∩Γ¿, ¿ß»«½∞ºπεΘ¿⌐ αÑú¿ßΓα BP,  «íαáΘáÑΓß∩ ¬ ßÑú¼Ñ¡Γπ, ¡á ¬«Γ«αδ⌐
  277.         π¬áºδóáÑΓ αÑú¿ßΓα SS. ìá»α¿¼Ñα, ¿¡ßΓαπ¬µ¿¿:
  278.  
  279.                  .
  280.                  .
  281.                  .
  282.                  mov   bp,100h
  283.                  mov   al,[bp+6]
  284.                  .
  285.                  .
  286.                  .
  287.  
  288.         ºáúαπªáεΓ αÑú¿ßΓα AL ß«ñÑন¼δ¼ ∩τÑ⌐¬¿ »á¼∩Γ¿ SS:1006.
  289.  
  290.              ÅαÑñ»«½«ª¿¼, «ñ¡á¬«, τΓ« óδ σ«Γ¿ΓÑ «íαáΓ¿Γ∞ß∩, ¬á¬ ¬ «»Ñαá¡-
  291.         ñπ ó »á¼∩Γ¿,  ¬ ∩τÑ⌐¬Ñ ó ßÑú¼Ñ¡ΓÑ, «»αÑñѽ∩Ѽ«¼ αÑú¿ßΓα«¼ CS (φΓ«
  292.         »«½Ñº¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ Γáí½¿µ »ÑαÑσ«ñá,  «ß«íÑ¡¡« ó »α«úαá¼¼áσ,
  293.         ß«ßΓ«∩Θ¿σ ¿º ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó).  ê½¿ »αÑñ»«½«ª¿¼,  τΓ« σ«Γѽ¿
  294.         íδ  »«½πτ¿Γ∞  ñ«ßΓπ» ¬ ∩τÑ⌐¬Ñ ßΓѬá ß »«¼«Θ∞ε αÑú¿ßΓαá BX,  ¿½¿ ¬
  295.         ∩τÑ⌐¬Ñ ßÑú¼Ñ¡Γá, «»αÑñѽ∩Ѽ«ú« αÑú¿ßΓα«¼ DS, ß »«¼«Θ∞ε BP, ½¿í« ¬
  296.         ∩τÑ⌐¬Ñ ßÑú¼Ñ¡Γá,  ºáñáóáѼ«ú« αÑú¿ßΓα«¼ ES, ß »«¼«Θ∞ε ¡ÑßΓ᫬«ó«⌐
  297.         ¿¡ßΓαπ¬µ¿¿. î«ª¡« ½¿ φΓ« ßñѽáΓ∞?
  298.  
  299.              ÄΓóÑΓ¿Γ∞ ¼«ª¡« »«½«ª¿Γѽ∞¡«.  ä½∩ ñ«ßΓπ»á ó« ¼¡«ú¿σ ¿¡ßΓαπ¬-
  300.         µ¿∩σ ¬ ¡πª¡δ¼ óá¼ ßÑú¼Ñ¡Γá¼ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »αÑΣ¿¬ßδ »ÑαÑ-
  301.         «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó. ìá»α¿¼Ñα, ¿¡ßΓαπ¬µ¿¿:
  302.  
  303.                  .
  304.                  .
  305.                  .
  306.                  mov   bx,100h
  307.                  mov   cl,ss:[bx+10h]
  308.                  .
  309.  
  310.         TASM2 #3-5/䫬                = 8 =
  311.  
  312.                  .
  313.                  .
  314.  
  315.         ºáúαπªáεΓ αÑú¿ßΓα CL ß«ñÑন¼δ¼ »« ß¼ÑΘÑ¡¿ε 110h ó ßÑú¼Ñ¡ΓÑ  ßΓÑ-
  316.         ¬á, á ¿¡ßΓαπ¬µ¿¿:
  317.  
  318.                  .
  319.                  .
  320.                  .
  321.                  mov   bp,200h
  322.                  mov   si,cs:[bp+1]
  323.                  .
  324.                  .
  325.                  .
  326.  
  327.         ºáúαπªáεΓ αÑú¿ßΓα SI ß«ñÑন¼δ¼ »« ß¼ÑΘÑ¡¿ε 201h ó ßÑú¼Ñ¡ΓÑ ¬«ñá.
  328.  
  329.              é «ß¡«ó¡«¼ óßÑ, τΓ« ΓαÑíπÑΓß∩, τΓ«íδ ñá¡¡á∩ ¿¡ßΓαπ¬µ¿∩ «íαá-
  330.         Θá½áß∞  ¬ ßÑú¼Ñ¡Γπ, «Γ½¿τ¡«¼π «Γ ¿ß»«½∞ºπѼ«ú« »« π¼«½τá¡¿ε  ßÑú-
  331.         ¼Ñ¡Γá, -  φΓ«  π¬áºá¡¿Ñ  »ÑαÑñ «»Ñαá¡ñ«¼ »á¼∩Γ¿ ó φΓ«⌐ ¿¡ßΓαπ¬µ¿¿
  332.         »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá: CS:, DS:, ES: ¿½¿ SS:.
  333.  
  334.              îѪñπ »α«τ¿¼, »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó  ¡á  ßἫ¼
  335.         ñѽѠ ¡Ñ ∩ó½∩εΓß∩ "»αÑΣ¿¬ßἿ", Γᬠ¬á¬ «¡¿ »αÑñΦÑßΓóπεΓ ó ßΓ᫬Ñ
  336.         ¿¡ßΓαπ¬µ¿¿ «»Ñαá¡ñá¼ ó »á¼∩Γ¿. ÅαÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ó
  337.         ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  »αÑñßΓáó½∩ÑΓ  ß«í«⌐ »αÑΣ¿¬ß¡δ⌐ íá⌐Γ ¿¡ßΓαπ¬µ¿¿,
  338.         ¬«Γ«αδ⌐ ¼«ñ¿Σ¿µ¿απÑΓ αáí«Γπ ¿¡ßΓαπ¬µ¿¿ (¬á¬ ¿ »αÑΣ¿¬ß REP, «  ¬«-
  339.         Γ«α«¼  ¼δ  αáß߬áºδó὿ ó â½áóÑ 6). Å«φΓ«¼π, ¡á»α¿¼Ñα, ¬«úñá »α«-
  340.         µÑßß«α 8086 óßΓαÑτáÑΓ íá⌐Γδ:
  341.  
  342.              A0 00 00
  343.  
  344.         ¬«Γ«αδÑ «íαáºπεΓ ¿¡ßΓαπ¬µ¿ε:
  345.  
  346.              mov al,[0]
  347.  
  348.         «¡ ºáúαπªáÑΓ ó αÑú¿ßΓα AL ß«ñÑন¼«Ñ, αáß»«½«ªÑ¡¡«Ñ »« ß¼ÑΘÑ¡¿ε 0
  349.         ó ßÑú¼Ñ¡Γá ñá¡¡δσ. Äñ¡á¬«, »«ß¬«½∞¬π º¡áτÑ¡¿Ñ¼ »αÑΣ¿¬ßá »ÑαÑ«»αÑ-
  350.         ñѽѡ¿∩ ßÑú¼Ñ¡Γá ES: ∩ó½∩ÑΓß∩ 26h, ¬«úñá »α«µÑßß«α 8086 óßΓαÑτáÑΓ
  351.         »«ß½Ññ«óáΓѽ∞¡«ßΓ∞:
  352.  
  353.              26 A0 00 00
  354.  
  355.         ¬«Γ«αá∩ «íαáºπÑΓ ¿¡ßΓαπ¬µ¿ε:
  356.  
  357.              mov al,es:[0]
  358.  
  359.         TASM2 #3-5/䫬                = 9 =
  360.  
  361.  
  362.         «¡ ºáúαπªáÑΓ ó αÑú¿ßΓα AL ß«ñÑন¼«Ñ »« ß¼ÑΘÑ¡¿ε 0 ó ñ«»«½¡¿Γѽ∞-
  363.         ¡«¼ ßÑú¼Ñ¡ΓÑ (extra segment), á ¡Ñ ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
  364.  
  365.  
  366.  
  367.  
  368.         TASM2 #3-5/䫬               = 10 =
  369.  
  370.                                  Ç½∞ΓÑα¡áΓ¿ó¡á∩ Σ«α¼á                          
  371.         -----------------------------------------------------------------
  372.  
  373.              Æπαí« ÇßßѼí½Ñα »«ññÑনóáÑΓ á½∞ΓÑα¡áΓ¿ó¡πε  Σ«α¼π  »αÑΣ¿¬ßá
  374.         »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γá,  ¬«úñá φëà»αÑΣ¿¬ß αẼÑΘáÑΓß∩ ¡á «Γ-
  375.         ñѽ∞¡«⌐ ßΓ᫬Ñ. ¥Γá Σ«α¼á ¿¼ÑÑΓ ó¿ñ SEGCS ñ½∩ »αÑΣ¿¬ßá  »ÑαÑ«»αÑ-
  376.         ñѽѡ¿∩  ßÑú¼Ñ¡Γá  CS:, SEGDS - ñ½∩ »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩ ßÑú-
  377.         ¼Ñ¡Γá DS:, SEGES - ñ½∩ »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γá  ES:  ¿
  378.         SEGSS  - ñ½∩ »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá SS:. èáªñδ⌐ ¿º ¡¿σ
  379.         ñÑ⌐ßΓóπÑΓ Γ«½∞¬« ¡á ß½ÑñπεΘπε ßΓ᫬𠬫ñá, á ¡Ñ ¡á óßÑ  »«ß½Ññπε-
  380.         Θ¿Ñ  ßΓ᫬¿. ìá»α¿¼Ñα, ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿ ºá»¿ßδóáεΓ ß«ñÑন¼«Ñ
  381.         αÑú¿ßΓαá DX »« ß¼ÑΘÑ¡¿ε 999h ó ñ«»«½¡¿Γѽ∞¡«¼ ßÑú¼Ñ¡ΓÑ:
  382.  
  383.                  .
  384.                  .
  385.                  .
  386.                  mov   si,999h
  387.                  seges
  388.                  mov   [si],dx
  389.                  .
  390.                  .
  391.                  .
  392.  
  393.              ¥Γπ á½∞ΓÑα¡áΓ¿ó¡πε Σ«α¼π »«½Ñº¡« ¿ß»«½∞º«óáΓ∞  ñ½∩  π¬áºá¡¿∩
  394.         »αÑΣ¿¬ß«ó  »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó  ó  ¿¡ßΓαπ¬µ¿∩σ, ¡Ñ ¿¼ÑεΘ¿σ
  395.         «»Ñαá¡ñá (¡á»α¿¼Ñα, LODSB). ìá»α¿¼Ñα, ñá½ÑÑ αÑú¿ßΓα AL ºáúαπªáÑΓ-
  396.         ß∩ ¿º SS:SI:
  397.  
  398.                  .
  399.                  .
  400.                  .
  401.                  segss
  402.                  lodsb
  403.                  .
  404.                  .
  405.                  .
  406.  
  407.                  è«úñá »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ¡Ñ αáí«ΓáεΓ          
  408.         -----------------------------------------------------------------
  409.  
  410.              ÅαÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó αáí«ΓáεΓ ¡Ñ ó« óßÑσ ¿¡ßΓ-
  411.         απ¬µ¿∩σ. ìá»α¿¼Ñα, ¿σ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ó ßΓ᫬«óδσ ¿¡ßΓαπ¬µ¿∩σ
  412.         »α¿ «íαáΘÑ¡¿¿ ¬ ñ«»«½¡¿Γѽ∞¡«¼π ßÑú¼Ñ¡Γπ, Γ« ÑßΓ∞ ¿¡ßΓαπ¬µ¿∩:
  413.  
  414.                 lods es:[ByteVar]
  415.  
  416.         TASM2 #3-5/䫬               = 11 =
  417.  
  418.  
  419.         ñ«»πßΓ¿¼á, á ¿¡ßΓαπ¬µ¿∩:
  420.  
  421.                 stos ds:[ByteVar]
  422.  
  423.         αáí«ΓáΓ∞ ¡Ñ íπñÑΓ. àß½¿ óδ »δΓáÑΓÑß∞ »ÑαÑ«»αÑñѽ¿Γ∞ π¬áºá¡¡δ¼ «í-
  424.         αẫ¼  «íαáΘÑ¡¿Ñ ó ßΓ᫬«ó«⌐ ¿¡ßΓαπ¬µ¿¿ ¬ ñ«»«½¡¿Γѽ∞¡«¼π ßÑú¼Ñ¡-
  425.         Γπ, Γ« Æπαí« ÇßßѼí½Ñα ß««íΘ¿Γ óá¼, τΓ« φΓ« ¡Ññ«»πßΓ¿¼«.  Äñ¡á¬«,
  426.         Ñß½¿  óδ  ñ½∩  »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ¿ß»«½∞ºπÑΓÑ »αÑΣ¿¬ß SEGCS
  427.         ¿½¿ á¡á½«ú¿τ¡δ⌐, Γ« Æπαí« ÇßßѼí½Ñα ¡Ñ º¡áÑΓ, ¬á¬πε ¿¡ßΓαπ¬µ¿ε óδ
  428.         σ«Γ¿ΓÑ »ÑαÑ«»αÑñѽ¿Γ∞, ¿ ó φΓ«¼ ß½πτáÑ «Φ¿í¬π ¡Ñ úÑ¡Ñα¿απÑΓ. ìá»-
  429.         α¿¼Ñα, ¿¡ßΓαπ¬µ¿¿:
  430.  
  431.                  .
  432.                  .
  433.                  .
  434.                  segds
  435.                  stosb
  436.                  .
  437.                  .
  438.                  .
  439.  
  440.         ¡Ñ »α¿óÑñπΓ ¬ úÑ¡Ñαᵿ¿ «Φ¿í¬¿, ¡« ¿¡ßΓαπ¬µ¿∩ STOSB íπñÑΓ  óδ»«½-
  441.         ¡∩Γ∞ ºá»¿ß∞ ó ñ«»«½¡¿Γѽ∞¡δ⌐ ßÑú¼Ñ¡Γ, á ¡Ñ ó ßÑú¼Ñ¡Γ ñá¡¡δσ.
  442.  
  443.              ìÑ«íσ«ñ¿¼« ΓᬪѠ¿¼ÑΓ∞ ó ó¿ñπ, τΓ« »αÑΣ¿¬ßδ  »ÑαÑ«»αÑñѽѡ¿∩
  444.         ßÑú¼Ñ¡Γ«ó  ¡Ñ ó½¿∩εΓ ¡á ñ«ßΓπ» ¬ ßΓѬπ. çá¡ÑßÑ¡¿Ñ ó ßΓѬ ¿ ¿ºó½Ñ-
  445.         τÑ¡¿Ñ ¿º ßΓѬá óßÑúñá óδ»«½¡∩ÑΓß∩ ñ½∩ ßÑú¼Ñ¡Γá  ßΓѬá.  ìá»α¿¼Ñα,
  446.         ¿¡ßΓαπ¬µ¿∩:
  447.  
  448.                  .
  449.                  .
  450.                  .
  451.                  segcs
  452.                  push   [bx]
  453.                  .
  454.                  .
  455.                  .
  456.  
  457.         ¿ß»«½∞ºπÑΓ »αÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ñ½∩ óδí«αá Γ«ú«  ßÑú-
  458.         ¼Ñ¡Γá,  ¿º  ¬«Γ«α«ú« ¡πª¡« ¿ºó½Ñτ∞ ºá¡«ß¿¼«Ñ ó ßΓѬ º¡áτÑ¡¿Ñ. ¥Γ«
  459.         º¡áτÑ¡¿Ñ ºá»¿ßδóáÑΓß∩ »« ß¼ÑΘÑ¡¿ε  SP-2  ó  ßÑú¼Ñ¡ΓÑ  ßΓѬá,  ¬á¬
  460.         «íδτ¡«.
  461.  
  462.              é «íΘѼ ß½πτáÑ ß½ÑñπÑΓ ¿ºíÑúáΓ∞ ß¼ÑΦ¿óáΓ∞ »αÑΣ¿¬ßδ »ÑαÑ«»αÑ-
  463.         ñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó  ß  »αÑΣ¿¬ßἿ REP, »«ß¬«½∞¬π ¼«úπΓ ó«º¡¿¬¡πΓ∞
  464.  
  465.         TASM2 #3-5/䫬               = 12 =
  466.  
  467.         »α«í½Ñ¼δ ó ß½πτáÑ »αÑαδóá¡¿∩ »«óΓ«αÑ¡¿⌐ Γᬫ⌐ ¿¡ßΓαπ¬µ¿¿ (»«ñα«í-
  468.         ¡ÑÑ «í φΓ«¼ αáß߬áºá¡« ó â½áóÑ 6).
  469.  
  470.                              ä«ßΓπ» ¬ ¡Ñ߬«½∞¬¿¼ ßÑú¼Ñ¡Γá¼                     
  471.         -----------------------------------------------------------------
  472.  
  473.              ÅαÑΣ¿¬ßδ  »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó  »«½Ñº¡«  ¿ß»«½∞º«óáΓ∞,
  474.         Ñß½¿ óδ σ«Γ¿ΓÑ «íαáΘáΓ∞ß∩ ¬ ¡Ñ߬«½∞¬¿¼ ßÑú¼Ñ¡Γá¼. Æá¬á∩ ¡Ñ«íσ«ñ¿-
  475.         ¼«ßΓ∞ ¡Ñ¿ºíѪ¡« ó«º¡¿¬áÑΓ, Ñß½¿ óá¼ ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ºá»¿ß∞ ¿
  476.         ó  ßΓѬ, ¿ ó ßÑú¼Ñ¡Γ ñá¡¡δσ (τΓ« «íδτ¡« »α«¿ßσ«ñ¿Γ, Ñß½¿ ßΓѬ ¿ß-
  477.         »«½∞ºπÑΓß∩ ñ½∩ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽδσ »ÑαѼѡ¡δσ,  á  ßÑú¼Ñ¡Γ
  478.         ñá¡¡δσ  -  ñ½∩  ßΓáΓ¿τÑ߬¿σ  »ÑαѼѡ¡δσ). àΘÑ «ñ¿¡ ß½πτá⌐ - ¬«úñá
  479.         »α«úαá¼¼á ß«ñÑαª¿Γ í«½ÑÑ 64è ñá¡¡δσ, ¿º-ºá τÑú« ΓᬪѠ¼«ªÑΓ  »«Γ-
  480.         αÑí«óáΓ∞ß∩ ñ«ßΓπ» ¬ ¡Ñ߬«½∞¬¿¼ ßÑú¼Ñ¡Γá¼.
  481.  
  482.              Äñ¡« ¿º «ß«íÑ¡¡« »«½Ñº¡δσ »α¿¼Ñ¡Ñ¡¿⌐ »αÑΣ¿¬ß«ó »ÑαÑ«»αÑñѽÑ-
  483.         ¡¿∩ ßÑú¼Ñ¡Γ«ó - φΓ« ß¼ÑΦá¡¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ßΓ᫬«óδσ ¿ ¡ÑßΓ᫬«-
  484.         óδσ ¿¡ßΓαπ¬µ¿⌐. ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼,  τΓ«  óßÑ  ß¿¼ó«½δ  ñá¡¡«⌐
  485.         ßΓ᫬¿  ß«  º¡áτÑ¡¿∩¼¿,  ¼Ñ¡∞Φ¿¼¿  20h, óδ σ«Γ¿ΓÑ »αÑ«íαẫóáΓ∞ ó
  486.         »α«íѽδ. é ß½ÑñπεΘѼ ¬«ñá ß µÑ½∞ε »«óδΦÑ¡¿∩ φΣΣÑ¬Γ¿ó¡«ßΓ¿ ¿ß»«½∞-
  487.         ºπεΓß∩ »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó:
  488.  
  489.                  .
  490.                  .
  491.                  .
  492.                  mov   ax,SEG StringToConvert
  493.                  mov   es,ax
  494.                  mov   di,OFFSET StringToConvert ; ES:DI π¬áºδóáεΓ ¡á
  495.                                                  ; »αÑ«íαáºπѼπε ßΓ᫬π
  496.                  cld                             ; ßñѽáΓ∞ Γá¬, τΓ«íδ
  497.                                                  ; ¿¡ßΓαπ¬µ¿∩ STOSB
  498.                                                  ; πóѽ¿τ¿óá½á DI
  499.         ConvertLoop:
  500.                  mov   al,es:[di]                ; »«½πτ¿Γ∞ ß½ÑñπεΘ¿⌐
  501.                                                  ; ß¿¼ó«½
  502.                  and   al,al                     ; φΓ« ¬«¡Ñµ ßΓ᫬¿?
  503.                  jz    ConvertLoopDone           ; ñá, óδ»«½¡Ñ¡«
  504.                  cmp   al,20h                    ; ¡πª¡« ½¿ ¡á¼
  505.                                                  ; »αÑ«íαẫóáΓ∞ Ñú«?
  506.                  jnb   SaveChar                  ; ¡ÑΓ, ß«σαá¡¿Γ∞ Ñú«
  507.                  mov   al,' '                    ; »αÑ«íαẫóáΓ∞ ó
  508.                                                  ; »α«íѽ
  509.         SaveChar:
  510.                  stosb                           ; ß«σαá¡¿Γ∞ φΓ«Γ ß¿¼ó«½
  511.                                                  ; ¿ »«½πτ¿Γ∞ ßß佬π ¡á
  512.  
  513.         TASM2 #3-5/䫬               = 13 =
  514.  
  515.                                                  ; ß½ÑñπεΘ¿⌐
  516.                  jmp   ConvertLoop               ; »α«óÑα¿Γ∞ ß½ÑñπεΘ¿⌐
  517.                                                  ; ß¿¼ó«½
  518.         ConvertLoopDone:
  519.                  stosb                           ; ¬«¡Ñµ ßΓ᫬¿ - 0
  520.                  .
  521.                  .
  522.                  .
  523.  
  524.                                     ï«¬á½∞¡δÑ ¼ÑΓ¬¿                            
  525.         -----------------------------------------------------------------
  526.  
  527.              ï«¬á½∞¡δÑ ¼ÑΓ¬¿ (¼ÑΓ¬¿ ß «úαá¡¿τÑ¡¡«⌐ «í½áßΓ∞ε  ñÑ⌐ßΓó¿∩)  -
  528.         φΓ«  «ñ¡« ¿º »«½«ª¿Γѽ∞¡δσ ¬áτÑßΓó Æπαí« ÇßßѼí½Ñαá. äáóá⌐ΓÑ »«ß-
  529.         ¼«Γα¿¼, ¬á¬ ¼«ª¡« ¿σ ¿ß»«½∞º«óáΓ∞.
  530.  
  531.              ÅαÑñ»«½«ª¿¼, ó ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ π óáß ÑßΓ∞  ¡Ñ߬«½∞¬«  τáßΓÑ⌐
  532.         ¬«ñá, ¬«Γ«αδÑ óδ»«½¡∩εΓ á¡á½«ú¿τ¡δÑ Σπ¡¬µ¿¿. Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐
  533.         »α¿¼Ñα:
  534.  
  535.                  .
  536.                  .
  537.                  .
  538.         Sub1     PROC
  539.                  sub   ax,ax
  540.         IntCountLoop:
  541.                  add   ax,[bx]
  542.                  inc   bx
  543.                  inc   bx
  544.                  loop  IntCountLoop
  545.                  ret
  546.         Sub1     ENDP
  547.                  .
  548.                  .
  549.                  .
  550.         Sub2     PROC
  551.                  sub   ax,ax
  552.                  mov   dx,ax
  553.         LongCountLoop:
  554.                  add   ax,[bx]
  555.                  adc   dx,[bx+2]
  556.                  add   bx,4
  557.                  loop  LongCountLoop
  558.                  ret
  559.         Sub2     ENDP
  560.  
  561.         TASM2 #3-5/䫬               = 14 =
  562.  
  563.                  .
  564.                  .
  565.                  .
  566.  
  567.              è«úñá ñóÑ τáßΓ¿ ¬«ñá óδ»«½¡∩εΓ á¡á½«ú¿τ¡δÑ  Σπ¡¬µ¿¿,  Γ«  ¿º
  568.         φΓ«ú« τáßΓ« ß½ÑñπÑΓ, τΓ« «¡¿ ß«ñÑαªáΓ «ñ¿¡á¬«óδÑ ¼ÑΓ¬¿. ìá»α¿¼Ñα,
  569.         Sub1 ¿ Sub2 ß«ñÑαªáΓ ¼ÑΓ¬¿, «Γ¼ÑτáεΘ¿Ñ ¡áτὫ µ¿¬½á.
  570.  
  571.              è«úñá ó »α«úαἼѠ¿¼ÑÑΓß∩ Γ«½∞¬« ¡Ñ߬«½∞¬« ¼ÑΓ«¬,  óδ  ½Ñú¬«
  572.         ¼«ªÑΓÑ  «íÑß»Ñτ¿Γ∞,  τΓ«íδ  óßÑ  ¼ÑΓ¬¿  í뫨 αẽ¿τ¡δ¼¿. Äñ¡á¬« ó
  573.         í«½∞Φ¿σ »α«úαá¼¼áσ ¿ºíÑúáΓ∞ ¿ñÑ¡Γ¿τ¡δσ ¼ÑΓ«¬ ßΓá¡«ó¿Γß∩ ºáΓαπñ¡¿-
  574.         Γѽ∞¡«.  Åα¿  φΓ«¼ «íδτ¡« íÑαπΓ αáí«ΓáεΘπε »«ñ»α«úαá¼¼π, ¬«»¿απεΓ
  575.         í½«¬ ¿ »ÑαÑ¿¼Ñ¡«óδóáεΓ Ñú«, ¼«ñ¿Σ¿µ¿απ∩ ó ¡«óπε »«ñ»α«úαá¼¼π. Äñ-
  576.         ¡á¬« »α¿ Γᬫ⌐ »α«µÑñπαÑ ½Ñú¬« ºáíδΓ∞ ¿º¼Ñ¡¿Γ∞ Γπ ¿½¿ ¿¡πε ¼ÑΓ¬π,
  577.         τΓ« »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« ¡«óá∩ »«ñ»α«úαá¼¼á íπñÑΓ óδ»«½¡∩Γ∞ »ÑαÑ-
  578.         σ«ñ  ¡á ¼ÑΓ¬π ßΓáα«⌐ »«ñ»α«úαá¼¼δ. ìá»α¿¼Ñα, Ñß½¿ óδ ß¬«»¿απÑΓÑ ¿
  579.         ¼«ñ¿Σ¿µ¿απÑΓÑ Sub1, τΓ«íδ »«½πτ¿Γ∞ Sub2, ¼«ª¡« ß½πτá⌐¡«  »«½πτ¿Γ∞
  580.         ß½ÑñπεΘÑÑ:
  581.  
  582.                  .
  583.                  .
  584.                  .
  585.         Sub2     PROC
  586.                  sub   ax,ax
  587.         LongCountLoop:
  588.                  add   ax,[bx]
  589.                  adc   dx,[bx+2]
  590.                  add   bx,4
  591.                  loop  IntCountLoop
  592.                  ret
  593.         Sub2     ENDP
  594.                  .
  595.                  .
  596.                  .
  597.  
  598.         τΓ« ó맮óÑΓ »ÑαÑσ«ñ ó ßÑαÑñ¿¡π »«ñ»α«úαá¼¼δ Sub1 ó«º¼«ª¡« ß «τÑ¡∞
  599.         ¡Ñ»α¿∩Γ¡δ¼¿ »«ß½ÑñßΓó¿∩¼¿.
  600.  
  601.              çñÑß∞ ó«º¡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿¼ÑΓ∞ Γᬫ⌐ Γ¿» ¼ÑΓ¬¿, ¬«Γ«αδ⌐
  602.         «úαá¡¿τÑ¡ »« «í½áßΓ¿ ñÑ⌐ßΓó¿∩ «Γñѽ∞¡«⌐ »«ñ»α«úαá¼¼«⌐, τΓ« »«ºó«-
  603.         ½¿Γ ¿ºíѪáΓ∞ ¬«¡Σ½¿¬Γá (»« ¼ÑΓ¬á¼) ß ñαπú¿¼¿ »«ñ»α«úαἼἿ.  Æá-
  604.         ¬«⌐ Γ¿» ¼ÑΓ«¬ ¡áºδóáÑΓß∩ ½«¬á½∞¡δ¼¿ ¼ÑΓ¬á¼¿.
  605.  
  606.              ùΓ« ªÑ ΓᬫѠ½«¬á½∞¡δÑ ¼ÑΓ¬¿? ï«¬á½∞¡δÑ  ¼ÑΓ¬¿,  ¬«Γ«αδÑ  »«
  607.         π¼«½τá¡¿ε «íδτ¡« ¡áτ¿¡áεΓß∩ ß ñóπσ ß¿¼ó«½«ó @@, «úαá¡¿τÑ¡δ »« «í-
  608.         ½áßΓ¿ ñÑ⌐ßΓó¿∩ ¿¡ßΓαπ¬µ¿∩¼¿, ºá¬½ετÑ¡¡δ¼¿ ¼Ñªñπ ñóπ¼∩ ¡Ñ½«¬á½∞¡δ-
  609.  
  610.         TASM2 #3-5/䫬               = 15 =
  611.  
  612.         ¼¿ ¼ÑΓ¬á¼¿. (ìѽ«¬á½∞¡δÑ ¼ÑΓ¬¿ - φΓ« ΓÑ ¼ÑΓ¬¿, ¬«Γ«αδÑ «»αÑñѽѡδ
  613.         ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ PROC ¿ ¼ÑΓ¬¿, ºáóÑαΦáεΘ¿Ñß∩ ñó«ÑΓ«τ¿Ñ¼, ¬«Γ«-
  614.         αδÑ  ¡Ñ ¡áτ¿¡áεΓß∩ ß ñóπσ ß¿¼ó«½«ó @@.) ùΓ« ¬áßáÑΓß∩ Æπαí« ÇßßѼ-
  615.         í½Ñαá, Γ« ñ½∩ ¡Ñú« ½«¬á½∞¡δÑ ¼ÑΓ¬¿ »α«ßΓ« ¡Ñ ßπΘÑßΓóπεΓ ó¡Ñ  ñ¿á-
  616.         »áº«¡á, «úαá¡¿τÑ¡¡«ú« í½¿ªá⌐Φ¿¼¿ ¡Ñ½«¬á½∞¡δ¼¿ ¼ÑΓ¬á¼¿.
  617.  
  618.              êñÑ¡Γ¿Σ¿¬áΓ«αδ, ¬«Γ«αδÑ  «»αÑñѽ∩εΓß∩  ß  »«¼«Θ∞ε  ñ¿αÑ¬Γ¿óδ
  619.         LABEL,  ¡Ñ »α¿ó«ñ∩Γ ¬ ¡áτá½π ¡«ó«ú« í½«¬á ½«¬á½∞¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«-
  620.         α«ó.
  621.  
  622.              ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ½«¬á½∞¡δÑ ¼ÑΓ¬¿  ñ½∩  Γ«ú«,
  623.         τΓ«íδ  ¼«ñ¿Σ¿µ¿α«óáΓ∞ »α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ó ¡áτá½Ñ ñá¡¡«ú« αáºñÑ-
  624.         ½á, ß½ÑñπεΘ¿¼ «íαẫ¼:
  625.  
  626.                  .
  627.                  .
  628.                  .
  629.         Sub1     PROC
  630.                  sub   ax,ax
  631.         @@CountLoop:
  632.                  add   ax,[bx]
  633.                  inc   bx
  634.                  inc   bx
  635.                  loop  @@CountLoop
  636.                  ret
  637.         Sub1     ENDP
  638.                  .
  639.                  .
  640.                  .
  641.         Sub2     PROC
  642.                  sub   ax,ax
  643.                  mov   dx,ax
  644.         @@CountLoop:
  645.                  add   ax,[bx]
  646.                  adc   dx,[bx+2]
  647.                  add   bx,4
  648.                  loop  @@CountLoop
  649.                  ret
  650.         Sub2     ENDP
  651.                  .
  652.                  .
  653.                  .
  654.  
  655.              çñÑß∞ óá¼ ¡Ñ ¡πª¡« ºáí«Γ¿Γ∞ß∩ « Γ«¼, τΓ«íδ ¼ÑΓ¬¿ µ¿¬½á «ñ¡«⌐
  656.         »«ñ»α«úαá¼¼δ  ¡Ñ  óσ«ñ¿½¿  ó ¬«¡Σ½¿¬Γ ß ¼ÑΓ¬á¼¿ µ¿¬½á ñαπú«⌐ »«ñ-
  657.         »α«úαá¼¼δ, ¿ ¡ÑΓ óÑα«∩Γ¡«ßΓ¿, τΓ« «ñ¡á »«ñ»α«úαá¼¼á ß½πτá⌐¡«  »Ñ-
  658.  
  659.         TASM2 #3-5/䫬               = 16 =
  660.  
  661.         αÑ⌐ñÑΓ ¡á ¼ÑΓ¬π ñαπú«⌐ »«ñ»α«úαá¼¼δ.
  662.  
  663.              èᬠ¼«ª¡« ºá¼ÑΓ¿Γ∞, »ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ ½«¬á½∞¡δσ ¼ÑΓ«¬  ¼δ
  664.         π¬áºá½¿  ñ¿αÑ¬Γ¿óπ LOCALS. é αѪ¿¼Ñ MASM ½«¬á½∞¡δÑ ¼ÑΓ¬¿ »« π¼«½-
  665.         τá¡¿ε ºá»αÑΘÑ¡δ ¿ »ÑαÑñ ΓѼ,  ¬á¬  óδ  ß¼«ªÑΓÑ  ¿σ  ¿ß»«½∞º«óáΓ∞,
  666.         ñ«½ª¡δ  íδΓ∞ αáºαÑΦÑ¡δ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ LOCALS.  é π½πτΦÑ¡¡«¼
  667.         αѪ¿¼Ñ ½«¬á½∞¡δÑ ¼ÑΓ¬¿ »« π¼«½τá¡¿ε αáºαÑΦÑ¡δ, σ«Γ∩ óδ ¼«ªÑΓÑ ¿σ
  668.         ºá»αÑΓ¿Γ∞ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ NOLOCALS.
  669.  
  670.              ï«¬á½∞¡δÑ ¼ÑΓ¬¿ »«½Ñº¡δ ΓᬪÑ, ¬«úñá óδ  σ«Γ¿ΓÑ  »«½πτ¿Γ∞  ó
  671.         »«ñ»α«úαἼѠ¡Ñ߬«½∞¬« ¬«α«Γ¬¿σ »ÑαÑσ«ñ«ó ¿ ¡Ñ σ«Γ¿ΓÑ ΓÑα∩Γ∞ óαÑ-
  672.         ¼∩, »α¿ñπ¼δóá∩ ñ½∩ ¡¿σ π¡¿¬á½∞¡δÑ ¿¼Ñ¡á. ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ  ¿ß-
  673.         »«½∞º«óáΓ∞  ½«¬á½∞¡δÑ  ¼ÑΓ¬¿, ¬«úñá »α«óÑα∩ÑΓÑ «ñ¡« ¿º ¡Ñ߬«½∞¬¿σ
  674.         º¡áτÑ¡¿⌐:
  675.  
  676.                  .
  677.                  .
  678.                  .
  679.                  LOCALS
  680.                  cmp   al,'A'
  681.                  jnz   @@P1
  682.                  jmp   HandleA
  683.         @@P1:
  684.                  cmp   al,'B'
  685.                  jnz   @@P2
  686.                  jnz   HandleB
  687.         @@P2:
  688.                  cmp   al,'C'
  689.                  jnz   @@P3
  690.                  jmp   HandleC
  691.         @@P3:
  692.                  .
  693.                  .
  694.                  .
  695.  
  696.              Åα¿ ¿ß»«½∞º«óá¡¿¿ ½«¬á½∞¡δσ ¼ÑΓ«¬ óá¼ ¡Ñ »α¿ñÑΓß∩ ºáí«Γ¿Γ∞ß∩
  697.         « Γ«¼, ß«ñÑαªáΓß∩ ½¿ ¼ÑΓ¬¿ Γ¿»á P1 ¿ P2 úñÑ-½¿í« ÑΘÑ ó »α«úαá¼¼Ñ.
  698.  
  699.              ìπª¡« »«¼¡¿Γ∞ « Γ«¼, τΓ« ½εíá∩ ¡Ñ½«¬á½∞¡á∩ ¼ÑΓ¬á «úαá¡¿τ¿óá-
  700.         ÑΓ «í½áßΓ∞ ñÑ⌐ßΓó¿∩ ½«¬á½∞¡«⌐ ¼ÑΓ¬¿. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ »«ß½Ññ«-
  701.         óáΓѽ∞¡«ßΓ∞ ¿¡ßΓαπ¬µ¿⌐ áßßÑ¼í½¿α«óáΓ∞ß∩ ¡Ñ íπñÑΓ:
  702.  
  703.                  .
  704.                  .
  705.                  .
  706.         Sub1     PROC NEAR
  707.  
  708.         TASM2 #3-5/䫬               = 17 =
  709.  
  710.                  .
  711.                  .
  712.                  .
  713.                  LOCALS
  714.         @@CountLoop:
  715.                  add   ax,[bx]
  716.                  jnz   NotZero
  717.                  inc   dx
  718.         NotZero:
  719.                  inc   bx
  720.                  inc   bx
  721.                  loop  @@CountLoop
  722.                  .
  723.                  .
  724.                  .
  725.  
  726.              Åα«í½Ñ¼á ºñÑß∞ ß«ßΓ«¿Γ ó Γ«¼, τΓ« ¼Ñªñπ ßß佬«⌐ ¡á ½«¬á½∞¡πε
  727.         ¼ÑΓ¬π  @@CountLoop  ó  ¿¡ßΓαπ¬µ¿¿ LOOP ¿ «»αÑñѽѡ¿Ñ¼ @@CountLoop
  728.         ¡áσ«ñ¿Γß∩ ¡Ñ½«¬á½∞¡á∩ ¼ÑΓ¬á NotZero. Äí½áßΓ∞  ñÑ⌐ßΓó¿∩  ½«¬á½∞¡«⌐
  729.         »ÑαѼѡ¡«⌐  αáß»α«ßΓαá¡∩ÑΓß∩ Γ«½∞¬« ñ« í½¿ªá⌐ΦÑ⌐ ¡Ñ½«¬á½∞¡«⌐ ¼ÑΓ-
  730.         ¬¿, »«φΓ«¼π ¬«úñá Æπαí« ÇßßѼí½Ñα áßßÑ¼í½¿απÑΓ  ¿¡ßΓαπ¬µ¿ε  LOOP,
  731.         ½«¬á½∞¡á∩ ¼ÑΓ¬á @@CountLoop «í¡áαπªÑ¡á ¡Ñ íπñÑΓ.
  732.  
  733.              ö«α¼π »αÑΣ¿¬ßá ½«¬á½∞¡«ú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá (ß¿¼ó«½δ @@)  ¼«ª¡«
  734.         ¿º¼Ñ¡¿Γ∞ ¡á ½εíδÑ ñóá ñαπú¿Ñ ß¿¼ó«½á, ¬«Γ«αδÑ ¼«úπΓ ¿ß»«½∞º«óáΓ∞-
  735.         ß∩ ó ¡áτá½Ñ ¿¼Ñ¡¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. ¥Γ« ¼«ª¡« ßñѽáΓ∞, π¬áºáó ¡«óδÑ
  736.         ß¿¼ó«½δ »αÑΣ¿¬ßá ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó ñ¿αÑ¬Γ¿óδ LOCAL:
  737.  
  738.                 LOCALS__
  739.  
  740.              çñÑß∞ ó ¬áτÑßΓóÑ »αÑΣ¿¬ßá  ½«¬á½∞¡«ú«  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  íπñπΓ
  741.         ¿ß»«½∞º«óáΓ∞ß∩ ñóá ß¿¼ó«½á »«ñτÑનóá¡¿∩. ¥Γ« ¼«ªÑΓ «¬áºáΓ∞ß∩ »«-
  742.         ½Ñº¡δ¼, ¬«úñá óδ σ«Γ¿ΓÑ ¡áτáΓ∞ ¿ß»«½∞º«óá¡¿Ñ ½«¬á½∞¡δσ  ¿ñÑ¡Γ¿Σ¿-
  743.         ¬áΓ«α«ó  ó ¼«ñπ½Ñ, úñÑ πªÑ ¿¼ÑεΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, ¡áτ¿¡áεΘ¿Ñß∩ ß
  744.         ¿ß»«½∞ºπѼ«ú« »« π¼«½τá¡¿ε »αÑΣ¿¬ßá ¿ñÑ¡Γ¿Σ¿¬áΓ«αá.
  745.  
  746.              è«úñá óδ Γᬿ¼ «íαẫ¼ ¼Ñ¡∩ÑΓÑ »αÑΣ¿¬ß ½«¬á½∞¡«ú«  ¿ñÑ¡Γ¿Σ¿-
  747.         ¬áΓ«αá,  Γ« ½«¬á½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ áóΓ«¼áΓ¿τÑ߬¿ αáºαÑΦáεΓß∩ ¡á
  748.         Γ«⌐ ªÑ ßΓ᫬Ñ, Γ«τ¡« ΓᬪÑ, ¬á¬ Ñß½¿ íδ óδ ¿ß»«½∞º«ó὿ ñ¿αÑ¬Γ¿óπ
  749.         LOCALS  íѺ  ¬á¬¿σ-½¿í«  áαúπ¼Ñ¡Γ«ó. àß½¿ óδ ñá½ÑÑ ñ½∩ ºá»αÑΘÑ¡¿∩
  750.         ½«¬á½∞¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó π¬áªÑΓÑ ñ¿αÑ¬Γ¿óπ  NOLOCALS,  Γ«  Æπαí«
  751.         ÇßßѼí½Ñα  "óß»«¼¡¿Γ"  ß¿¼ó«½δ »αÑΣ¿¬ßá, ¬«Γ«αδÑ óδ ºáñáó὿. ¥Γ«
  752.         »«ºó«½∩ÑΓ óá¼ ñ½∩ ó«ßßΓá¡«ó½Ñ¡¿∩ ½«¬á½∞¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ß  ºá-
  753.         ñá¡¡δ¼¿ αá¡ÑÑ »αÑΣ¿¬ßἿ ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ LOCALCS íѺ áαúπ-
  754.         ¼Ñ¡Γ«ó.
  755.  
  756.  
  757.         TASM2 #3-5/䫬               = 18 =
  758.  
  759.                       ÇóΓ«¼áΓ¿τÑ߬«Ñ ¡áº¡áτÑ¡¿Ñ αẼÑαá »ÑαÑσ«ñá               
  760.         -----------------------------------------------------------------
  761.  
  762.              î¡«ú« ½ÑΓ ¡áºáñ αáºαáí«Γτ¿¬¿ »α«µÑßß«αá 8086 αÑΦ¿½¿,  τΓ«  ó
  763.         ¿¡ßΓαπ¬µ¿∩σ  »ÑαÑσ«ñá ¼«ú½¿ íδ »«ññÑনóáΓ∞ß∩ Γ«½∞¬« «ñ¡«íá⌐Γ«óδÑ
  764.         ß¼ÑΘÑ¡¿∩ »ÑαÑσ«ñ«ó. ¥Γ« «º¡áτáÑΓ, τΓ« ¬áªñδ⌐ πß½«ó¡δ⌐ »ÑαÑσ«ñ ¼«ú
  765.         íδ »ÑαÑñáóáΓ∞ π»αáó½Ñ¡¿Ñ Γ«½∞¬« ó »αÑñѽáσ 128 íá⌐Γ «Γ ßἫ⌐ ¿¡ß-
  766.         Γαπ¬µ¿¿ »ÑαÑσ«ñá.
  767.  
  768.              æÑú«ñ¡∩, ¬«¡Ñτ¡«,  φΓ¿ ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá Γ«ªÑ »α¿¼Ñ¡∩εΓß∩.
  769.         ôß½«ó¡δÑ »ÑαÑσ«ñδ ß πß»Ñσ«¼ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß »α«úαá¼¼áσ, ß«º-
  770.         ñáóá∩ ¬«¼»á¬Γ¡δ⌐ ¬«ñ (Γᬠ¬á¬ ¿¡ßΓαπ¬µ¿∩ πß½«ó¡«ú« »ÑαÑσ«ñá ¿¼ÑÑΓ
  771.         αẼÑα Γ«½∞¬« 2 íá⌐Γá). Äñ¡á¬« ¿¡ßΓαπ¬µ¿¿ πß½«ó¡«ú« »ÑαÑσ«ñá »α«-
  772.         µÑßß«αá 8086 ¿¡«úñá »α¿¡πªñáεΓ »¿ßáΓ∞ ¡ÑφΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ, »«ß¬«½∞-
  773.         ¬π, ¬«úñá áñαÑß πß½«ó¡«ú« »ÑαÑσ«ñ «ΓßΓ«¿Γ ß½¿Φ¬«¼ ñá½Ñ¬« ¿ ¡Ññ«ß-
  774.         Γ¿ª¿¼  ß  »«¼«Θ∞ε  «ñ¡«íá⌐Γ«ó«ú«  ß¼ÑΘÑ¡¿∩,   »α¿σ«ñ¿Γß∩   »¿ßáΓ∞
  775.         5-íá⌐Γ«óδÑ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ¿¡ßΓαπ¬µ¿⌐ Γ¿»á:
  776.  
  777.                  .
  778.                  .
  779.                  .
  780.                  jnz   NotZero
  781.                  jmp   IsZero
  782.         NotZero:
  783.                  .
  784.                  .
  785.                  .
  786.  
  787.              ùΓ« ÑΘÑ σπªÑ, ¡Ñ󫺼«ª¡« ºáαá¡ÑÑ πº¡áΓ∞, ñ«ßΓ¿ª¿¼á  ½¿  π¬á-
  788.         ºá¡¡á∩  ¼ÑΓ¬á  ß  »«¼«Θ∞ε  ñá¡¡«ú« πß½«ó¡«ú« »ÑαÑσ«ñá, »«φΓ«¼π óδ
  789.         «¬áºδóáÑΓÑß∞ »ÑαÑñ óδí«α«¼: ½¿í« »«»δΓáΓ∞ß∩ »ÑαÑ⌐Γ¿ ¡á ¼ÑΓ¬π  ¡Ñ-
  790.         »«ßαÑñßΓóÑ¡¡« (τΓ« ó«º¼«ª¡« ó맮óÑΓ «Φ¿í¬π áßßÑ¼í½¿α«óá¡¿∩), ½¿í«
  791.         ¿ß»«½∞º«óáΓ∞ ñ½∩ Γᬫú« »ÑαÑσ«ñá íѺπß½«ó¡δ⌐ »ÑαÑσ«ñ, »«ΓÑα∩ó »α¿
  792.         φΓ«¼ 3 íá⌐Γá ¿ »«½πτ¿ó »α«¿úαδΦ ó« óαѼѡ¿ óδ»«½¡Ñ¡¿∩. èα«¼Ñ Γ«ú«
  793.         ºñÑß∞ ÑßΓ∞ ÑΘÑ «ñ¡á ¡Ñ»α¿∩Γ¡«ßΓ∞: ñ«íáó¿ó ó¡πΓα¿  µ¿¬½á  «ñ¡π-ñóÑ
  794.         ¿¡ßΓαπ¬µ¿¿,  óδ ¼«ªÑΓÑ »«½πτ¿Γ∞ «Φ¿í¬π Relative jump out of range
  795.         (»ÑαÑσ«ñ ºá ñ«»πßΓ¿¼δÑ úαá¡¿µδ).
  796.  
  797.              ò«Γ∩ Æπαí« ÇßßѼí½Ñα ¿ ¡Ñ ¼«ªÑΓ αÑΦ¿Γ∞ óßÑσ »α«í½Ñ¼, ßó∩ºá¡-
  798.         ¡δσ  ß πß½«ó¡δ¼¿ »ÑαÑσ«ñἿ, «¡ º¡áτ¿Γѽ∞¡« »α¿í½¿ªáÑΓß∩ ¬ φΓ«¼π,
  799.         Ñß½¿ ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ JUMPS. àß½¿ óδ π¬áªÑΓÑ φΓπ ñ¿αÑ¬Γ¿óπ,
  800.         Æπαí«  ÇßßѼí½Ñα áóΓ«¼áΓ¿τÑ߬¿ »αÑ«íαáºπÑΓ «íδτ¡δÑ πß½«ó¡δÑ »ÑαÑ-
  801.         σ«ñδ ó πß½«ó¡δÑ »ÑαÑσ«ñδ, ¿ß»«½∞ºπεΘ¿Ñ íѺπß½«ó¡δÑ »ÑαÑσ«ñδ, ¬«ú-
  802.         ñá φΓ« ¡πª¡«, τΓ«íδ ñ«ßΓ¿τ∞ µÑ½Ñó«⌐ ¼ÑΓ¬¿.
  803.  
  804.              èᬠóδ»«½¡∩ÑΓß∩ φΓ« áóΓ«¼áΓ¿τÑ߬«Ñ »αÑ«íαẫóá¡¿Ñ?  Éáßß¼«Γ-
  805.  
  806.         TASM2 #3-5/䫬               = 19 =
  807.  
  808.         α¿¼ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ:
  809.  
  810.                  .
  811.                  .
  812.                  .
  813.                  JUMPS
  814.         RepeatLoop:
  815.                  jmp  SkipOverData
  816.                  DB   100h DUP (?)
  817.         SkipOverData:
  818.                  .
  819.                  .
  820.                  .
  821.                  dec   dx
  822.                  jnz   RepeatLoop
  823.                  .
  824.                  .
  825.                  .
  826.  
  827.              ƒß¡«, τΓ« ¼ÑΓ¬á RepeatLoop ¡Ññ«ßΓ¿ª¿¼á  ¿º  ¿¡ßΓαπ¬µ¿¿  JNZ,
  828.         »«ß¬«½∞¬π ¼Ñªñπ ¡¿¼¿ í«½ÑÑ 256 íá⌐Γ. Äñ¡á¬«, Γᬠ¬á¬ íδ½á π¬áºá¡á
  829.         ñ¿αÑ¬Γ¿óá JUMPS, «Φ¿í¬¿ áßßÑ¼í½¿α«óá¡¿∩ ¡Ñ ó«º¡¿¬¡ÑΓ. é¼ÑßΓ« φΓ«-
  830.         ú«  Æπαí«  ÇßßѼí½Ñα  áßßÑ¼í½¿απÑΓ ñá¡¡δ⌐ ¬«ñ ó ß½ÑñπεΘ¿⌐ φ¬ó¿óá-
  831.         ½Ñ¡Γ:
  832.  
  833.                  .
  834.                  .
  835.                  .
  836.         RepeatLoop:
  837.                  jmp  SkipOverData
  838.                  DB   100h DUP (?)   ; óαѼѡ¡á∩ »á¼∩Γ∞ ñ½∩ ñá¡¡δσ ó CS
  839.         SkipOverData:
  840.                  .
  841.                  .
  842.                  .
  843.                  dec   dx
  844.                  jz    $+5
  845.                  jmp   RepeatLoop
  846.                  .
  847.                  .
  848.                  .
  849.  
  850.         úñÑ ó¼ÑßΓ« ¿¡ßΓαπ¬µ¿¿ JZ áóΓ«¼áΓ¿τÑ߬¿ ¿ß»«½∞ºπεΓß∩ ¿¡ßΓαπ¬µ¿¿ JZ
  851.         ¿ JMP.
  852.  
  853.              ìÑ ß½ÑñπÑΓ ñπ¼áΓ∞, τΓ«  »α¿  ¿ß»«½∞º«óá¡¿¿  ñ¿αÑ¬Γ¿óδ  JUMPS
  854.  
  855.         TASM2 #3-5/䫬               = 20 =
  856.  
  857.         Æπαí« ÇßßѼí½Ñα óßÑúñá úÑ¡Ñα¿απÑΓ »áαπ πß½«ó¡δ⌐/íѺπß½«ó¡δÑ »ÑαÑ-
  858.         σ«ñ: ¬«úñᠵѽÑóπε ¼ÑΓ¬π ¼«ª¡« ñ«ßΓ¿τ∞ ß »«¼«Θ∞ε πß½«ó¡«ú«  »ÑαÑ-
  859.         σ«ñá,  Γ« óßÑúñá ¿ß»«½∞ºπÑΓß∩ πß½«ó¡δ⌐ »ÑαÑσ«ñ (»αÑ«íαẫóá¡¿Ñ ¡Ñ
  860.         óδ»«½¡∩ÑΓß∩). ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ »α¿¼ÑαÑ »ÑαÑσ«ñ íπñÑΓ  óδ»«½-
  861.         ¡∩Γ∞ß∩  ß  »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ JNZ, Γᬠ¬á¬ ¼ÑΓ¬á ¡áσ«ñ¿Γß∩ ñ«ßΓá-
  862.         Γ«τ¡« í½¿º¬« ¿ ñ«ßΓ¿ª¿¼á, Ñß½¿ ¿ß»«½∞º«óáΓ∞ 1-íá⌐Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ:
  863.  
  864.                  .
  865.                  .
  866.                  .
  867.                  JUMPS
  868.         RepeatLoop:
  869.                  add   BYTE PTR [bx],1
  870.                  inc   bx
  871.                  dec   dx
  872.                  jnz   RepeatLoop
  873.                  .
  874.                  .
  875.                  .
  876.  
  877.              èᬠ¼δ πªÑ π»«¼¿¡á½¿, áóΓ«¼áΓ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ  Æπαí«  Çß-
  878.         ßѼí½Ñα«¼  αẼÑαá «»Ñαᵿ⌐ »ÑαÑσ«ñá ¡Ñ αÑΦáÑΓ óßÑσ »α«í½Ñ¼, ßó∩-
  879.         ºá¡¡δσ ß πß½«ó¡δ¼¿ »ÑαÑσ«ñἿ. Æπαí« ÇßßѼí½Ñα »αѬαáß¡«  «íαáíá-
  880.         ΓδóáÑΓ  áóΓ«¼áΓ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑαá »α¿ «íαáΓ¡δσ »ÑαÑσ«ñáσ
  881.         (»ÑαÑσ«ñáσ ¡á ¼ÑΓ¬¿, ¬«Γ«αδÑ ß«ñÑαªáΓß∩  ó  ¬«ñÑ,  »αÑñΦÑßΓóπεΘѼ
  882.         ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá).
  883.  
  884.              Æá¬ ¬á¬ Æπαí« ÇßßѼí½Ñα αáí«ΓáÑΓ «íδτ¡«,  ¬á¬  «ñ¡«»α«σ«ñ¡δ⌐
  885.         áßßѼí½Ñα, »α¿ áóΓ«¼áΓ¿τÑ߬«¼ ¡áº¡áτÑ¡¿¿ αẼÑαá »ÑαÑσ«ñá ¡á ¼ÑΓ-
  886.         ¬π ó»ÑαÑñ ΓαÑíπÑΓß∩ αáºπ¼¡δ⌐ ¬«¼»α«¼¿ßß.  çñÑß∞ ¡Ñ  óßÑ  »α«σ«ñ¿Γ
  887.         Γᬠú½áñ¬«,  ¬á¬ »α¿ «íαáΓ¡δσ »ÑαÑσ«ñáσ.  Äñ¡á¬« ¡Ñ»½«σ«, τΓ« πß-
  888.         ½«ó¡δÑ »ÑαÑσ«ñδ ó»ÑαÑñ ¡á í½¿ª¡¿Ñ ¼ÑΓ¬¿ óßÑúñá íπñπΓ  áßßÑ¼í½¿α«-
  889.         óáΓ∞ß∩  »α¿ αáºαÑΦÑ¡¿¿ áóΓ«¼áΓ¿τÑ߬«ú« «»αÑñѽѡ¿∩ αẼÑαá, σπªÑ,
  890.         τΓ« Ñß½¿ «¬áªÑΓß∩, τΓ« ß½ÑñπεΘπε ºá ¡¿¼ ¼ÑΓ¬π ¼«ª¡« ñ«ßΓ¿τ∞ ß »«-
  891.         ¼«Θ∞ε πß½«ó¡«ú« »ÑαÑσ«ñá,  á ó ΓѬßΓ íπñπΓ ó¬½ετÑ¡δ ¡Ñ߬«½∞¬« ñ«-
  892.         »«½¡¿Γѽ∞¡δσ ¿¡ßΓαπ¬µ¿⌐ NOP (»πßΓá∩  «»Ñαᵿ∩).  äá¡¡«⌐  »α«í½Ñ¼δ
  893.         ¼«ª¡« ¿ºíѪáΓ∞, Ñß½¿ π¬áºáΓ∞ ß »«¼«Θ∞ε »áαá¼ÑΓαá /m Æπαí« ÇßßѼí-
  894.         ½Ñαπ ¡á ¡Ñ«íσ«ñ¿¼«ßΓ∞ óδ»«½¡Ñ¡¿∩ ¡Ñ߬«½∞¬¿σ  »α«σ«ñ«ó  (σ«Γ∩  φΓ«
  895.         ßαÑñßΓó« ¡Ñ߬«½∞¬« ºá¼Ññ½∩ÑΓ »α«µÑßß áßßÑ¼í½¿α«óá¡¿∩).
  896.  
  897.              àß½¿ ¡Ñ¼¡«ú« »«ñπ¼áΓ∞, Γ« ßΓá¡ÑΓ »«¡∩Γ¡«, »«τѼπ »α¿ áóΓ«¼á-
  898.         Γ¿τÑ߬«¼ «»αÑñѽѡ¿¿ αẼÑαá  »ÑαÑσ«ñ«ó  »α¿  ßß佬áσ  ó»ÑαÑñ  ¡Ñ
  899.         óßÑúñá úÑ¡Ñα¿απÑΓß∩ «»Γ¿¼á½∞¡δ⌐ ¬«ñ. è«úñá Æπαí« ÇßßѼí½Ñα ñ«ßΓ¿-
  900.         úáÑΓ ¿¡ßΓαπ¬µ¿¿ πß½«ó¡«ú« »ÑαÑσ«ñá, ó ¬«Γ«α«⌐ ¿¼ÑÑΓß∩ ßß佬á ó»Ñ-
  901.         αÑñ,  Γ«  ¡Ñ󫺼«ª¡«  «»αÑñѽ¿Γ∞,  ¬á¬ ñá½Ñ¬« ¡áσ«ñ¿Γß∩ φΓá ¼ÑΓ¬á
  902.         (óÑñ∞ Æπαí« ÇßßѼí½Ñα φΓ«⌐ ¼ÑΓ¬¿ ÑΘÑ ¡Ñ «í¡áαπª¿½).  àß½¿ áóΓ«¼á-
  903.  
  904.         TASM2 #3-5/䫬               = 21 =
  905.  
  906.         Γ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑα«ó πß½«ó¡«ú«  »ÑαÑσ«ñá  αáºαÑΦÑ¡«,  Γ«
  907.         Æπαí« ÇßßѼí½Ñα ¼«ú íδ ßúÑ¡Ñα¿α«óáΓ∞ πß½«ó¡δ⌐ »ÑαÑσ«ñ (¿¡ßΓαπ¬µ¿∩
  908.         αẼÑα«¼ 2 íá⌐Γá),  Ñß½¿ µÑ½Ñóá∩ ¼ÑΓ¬á ¡áσ«ñ¿Γß∩ ñ«ßΓáΓ«τ¡« í½¿º-
  909.         ¬«, ¿ πß½«ó¡δ⌐ »ÑαÑσ«ñ τÑαѺ íѺπß½«ó¡δ⌐ »ÑαÑσ«ñ (2-íá⌐Γ«óá∩ ¿¡ß-
  910.         Γαπ¬µ¿∩,  ºá  ¬«Γ«α«⌐ ß½ÑñπÑΓ ¿¡ßΓαπ¬µ¿∩ αẼÑα«¼ 3 íá⌐Γá) ó »α«-
  911.         Γ¿ó¡«¼ ß½πτáÑ.  è ß«ªá½Ñ¡¿ε,  ¬«úñá Æπαí« ÇßßѼí½Ñα  «í¡áαπª¿óáÑΓ
  912.         »ÑαÑσ«ñ ß« ßß佬«⌐ ó»ÑαÑñ,  «¡ ÑΘÑ ¡Ñ º¡áÑΓ, ¡Ñ«íσ«ñ¿¼á ½¿ 2-íá⌐-
  913.         Γ«óá∩ ¿¡ßΓαπ¬µ¿∩ ¿½¿ »áαá ¿¡ßΓαπ¬µ¿⌐ αẼÑα«¼ ó 5 íá⌐Γ.
  914.  
  915.              ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ Æπαí« ÇßßѼí½Ñα ¼«ªÑΓ óδíαáΓ∞ ¡Ñ¬«Γ«αδÑ αẼÑαδ
  916.         »αáó¿½∞¡«.  Åα¿ φΓ«¼ π ¡Ñú« ¡ÑΓ óδí«αá ¿ ñ½∩ ¡áñѪ¡«ßΓ¿ «¡ αѺÑα-
  917.         ó¿απÑΓ 5 íá⌐Γ  ñ½∩ »áαδ ¿¡ßΓαπ¬µ¿⌐  íѺπß½«ó¡«ú«/πß½«ó¡«ú«  »ÑαÑ-
  918.         σ«ñá.  Å«ß½Ñ φΓ«ú«, ¬«úñá Æπαí« ÇßßѼí½Ñα ºáΓѼ ñ«ßΓ¿úáÑΓ µÑ½Ñó«⌐
  919.         ¼ÑΓ¬¿ ¿ ó¿ñ¿Γ,  τΓ« ¼«ª¡« «í«⌐Γ¿ß∞ 2-íá⌐Γ«ó«⌐ ¿¡ßΓαπ¬µ¿Ñ⌐, «¡ áß-
  920.         ßÑ¼í½¿απÑΓ  πß½«ó¡δ⌐  »ÑαÑσ«ñ,  ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ Γα¿ ¿¡ßΓαπ¬µ¿¿
  921.         NOP (τΓ«íδ ºá»«½¡¿Γ∞ αѺÑαó ó 5 íá⌐Γ).
  922.  
  923.              ÅαÑñ»«½«ª¿¼, Æπαí« ÇßßѼí½Ñα αѺÑαó¿απÑΓ ß½ÑñπεΘ¿Ñ  ¿¡ßΓαπ¬-
  924.         µ¿¿:
  925.  
  926.                   .
  927.                   .
  928.                   .
  929.                   JUMPS
  930.                   jz   DestLabel
  931.                   inc  ax
  932.                   .
  933.                   .
  934.                   .
  935.  
  936.              àß½¿ ¿¡ßΓαπ¬µ¿∩ JZ ¡Ñ ¼«ªÑΓ ñ«ßΓ¿τ∞ µÑ½Ñó«⌐ ¼ÑΓ¬¿ ¡Ñ»«ßαÑñß-
  937.         ΓóÑ¡¡«, Æπαí« ÇßßѼí½Ñα áßßÑ¼í½¿απÑΓ ß½ÑñπεΘ¿⌐ φ¬ó¿óá½Ñ¡Γ:
  938.  
  939.                   .
  940.                   .
  941.                   .
  942.                   jnz   $+5                ; ñóá íá⌐Γá
  943.                   jmp   DestLabel          ; Γα¿ íá⌐Γá
  944.                   inc   ax
  945.                   .
  946.                   .
  947.                   .
  948.  
  949.              àß½¿, ß ñαπú«⌐ ßΓ«α«¡δ,  ¿¡ßΓαπ¬µ¿∩ JZ ¼«ªÑΓ ñ«ßΓ¿τ∞ µÑ½Ñó«⌐
  950.         ¼ÑΓ¬¿ ¡Ñ»«ßαÑñßΓóÑ¡¡«,  Γ« Æπαí« ÇßßѼí½Ñα áßßÑ¼í½¿απÑΓ ß½ÑñπεΘ¿Ñ
  951.         ¿¡ßΓαπ¬µ¿¿:
  952.  
  953.         TASM2 #3-5/䫬               = 22 =
  954.  
  955.  
  956.                   .
  957.                   .
  958.                   .
  959.                   jz   DestLabel           ; ñóá íá⌐Γá
  960.                   nop                      ; ¬áªñá∩ «»Ñαᵿ∩ NOP
  961.                                            ; ¿¼ÑÑΓ αẼÑα 1 íá⌐Γ
  962.                   nop
  963.                   nop
  964.                   inc   ax
  965.                   .
  966.                   .
  967.                   .
  968.  
  969.              Æπαí« ÇßßѼí½Ñα ñ«½ªÑ¡ αѺÑαó¿α«óáΓ∞ »α¿ ¬áªñ«¼ áóΓ«¼áΓ¿τÑß-
  970.         ¬«¼ «»αÑñѽѡ¿¿ αẼÑαá πß½«ó¡«ú« »ÑαÑσ«ñá ß«  ßß佬«⌐  ó»ÑαÑñ  5
  971.         íá⌐Γ,  »«φΓ«¼π  πß½«ó¡δÑ  »ÑαÑσ«ñδ  ß áóΓ«¼áΓ¿τÑ߬¿¼ «»αÑñѽѡ¿Ñ¼
  972.         αẼÑαá, ¬«Γ«αδÑ ¼«úπΓ ñ«ßΓ¿τ∞ ßó«¿σ ¼ÑΓ«¬, ñ«»«½¡∩εΓß∩ ΓαѼ∩ ¿¡-
  973.         ßΓαπ¬µ¿∩¼¿ NOP.  ¥Γ¿ Γα¿ ñ«»«½¡¿Γѽ∞¡δÑ ¿¡ßΓαπ¬µ¿¿ NOP »α¿ó«ñ∩Γ ¬
  974.         »«ΓÑαѠ߬«α«ßΓ¿ αáí«Γδ (¬áªñá∩ ¿º ¡¿σ ΓαÑíπÑΓ  ñ½∩  óδ»«½¡Ñ¡¿∩  3
  975.         µ¿¬½«ó  ¡á »α«µÑßß«αÑ 8086) ¿ πóѽ¿τ¿óáεΓ «íΩѼ »α«úαá¼¼δ.  Æá¬¿¼
  976.         «íαẫ¼,  ¼δ ¼«ªÑ¼ óá¼ »«ß«óÑΓ«óáΓ∞ ó ΓÑσ ß½πτá∩σ,  ¬«úñá  αẼÑα
  977.         ¬«ñá  ¿ ß¬«α«ßΓ∞ óδ»«½¡Ñ¡¿∩ ¿¼ÑεΓ αÑΦáεΘÑÑ º¡áτÑ¡¿Ñ, ¿ß»«½∞º«óáΓ∞
  978.         áóΓ«¼áΓ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑα«ó πß½«ó¡δσ »ÑαÑσ«ñ«ó ß« ßß佬á-
  979.         ¼¿ ó»ÑαÑñ ñ«ßΓáΓ«τ¡« αÑñ¬«.
  980.  
  981.              àß½¿ óδ »¿ΦÑΓÑ »α«úαá¼¼π,  ß«ñÑαªáΘπε óδß«¬«»α«¿ºó«ñ¿Γѽ∞¡δ⌐
  982.         ¬«ñ, Γ« ¼«ª¡« αáºαÑΦ¿Γ∞ áóΓ«¼áΓ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑαá πß½«ó-
  983.         ¡δσ »ÑαÑσ«ñ«ó ñ½∩ ¡Ñ¬α¿Γ¿τÑ߬¿σ πτáßΓ¬«ó óáΦÑ⌐ »α«úαá¼¼δ ¿ ºá»αÑ-
  984.         Γ¿Γ∞ Ñú« ñ½∩ ¬α¿Γ¿τÑ߬¿σ  πτáßΓ¬«ó.  ï¿í« ¼«ª¡« αáºαÑΦ¿Γ∞ áóΓ«¼á-
  985.         Γ¿τÑ߬«Ñ  «»αÑñѽѡ¿Ñ  αẼÑα«ó  »ÑαÑσ«ñ«ó ß «íαáΓ¡δ¼¿ ßßδ½¬á¼¿ ¿
  986.         ºá»αÑΓ¿Γ∞ Ñú« ñ½∩ »ÑαÑσ«ñ«ó ß« ßßδ½¬á¼¿ ó»ÑαÑñ.  ¥Γ«  ¼«ª¡«  ßñÑ-
  987.         ½áΓ∞,  ß«τÑΓá∩ ñ¿αÑ¬Γ¿óπ JUMPS ß ñ¿αÑ¬Γ¿ó«⌐ NOJUMPS (¬«Γ«αá∩ ºá»-
  988.         αÑΘáÑΓ áóΓ«¼áΓ¿τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑα«ó »ÑαÑσ«ñ«ó).
  989.  
  990.              ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ áóΓ«¼áΓ¿τÑ߬«Ñ «»-
  991.         αÑñѽѡ¿Ñ αẼÑα«ó »ÑαÑσ«ñ«ó ¿ß»«½∞ºπÑΓß∩ Γ«½∞¬« ñ½∩ «íαáΓ¡δσ »Ñ-
  992.         αÑσ«ñ«ó, ¡« ¡Ñ ñ½∩ »ÑαÑσ«ñ«ó ß« ßßδ½¬á¼¿ ó»ÑαÑñ:
  993.  
  994.                    .
  995.                    .
  996.                    .
  997.         LoopTop:
  998.                    .
  999.                    .
  1000.                    .
  1001.  
  1002.         TASM2 #3-5/䫬               = 23 =
  1003.  
  1004.                    lodsb
  1005.                    cmp   al,80h
  1006.                    NOJUMPS
  1007.                    jb    SaveByteValue
  1008.                    neg   al
  1009.         SaveByteValue:
  1010.                    stosb
  1011.                    .
  1012.                    .
  1013.                    .
  1014.                    dec   dx
  1015.                    JUMPS
  1016.                    jnz   LoopTop
  1017.                    .
  1018.                    .
  1019.                    .
  1020.  
  1021.              çñÑß∞ ¼δ ¡Ñ»«ßαÑñßΓóÑ¡¡« ºáñ὿ 2-íá⌐Γ«óδ⌐  πß½«ó¡δ⌐ »ÑαÑσ«ñ
  1022.         ñ½∩  »ÑαÑσ«ñá ß« ßß佬«⌐ ¡á ¼ÑΓ¬π SaveByteValue,  á ñ½∩ «íαáΓ¡«ú«
  1023.         »ÑαÑσ«ñá ¡á LoopTop Æπαí« ÇßßѼí½Ñα ßá¼ óδíÑαÑΓ ½πτΦ¿⌐ ¬«ñ.
  1024.  
  1025.              èßΓáΓ¿, ó ¡áτá½Ñ áßßÑ¼í½¿α«óá¡¿∩ óßÑúñá (»« π¼«½τá¡¿ε) óδí¿-
  1026.         αáÑΓß∩  ñ¿αÑ¬Γ¿óá NOJUMPS.  àß½¿ óδ σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ áóΓ«¼áΓ¿-
  1027.         τÑ߬«Ñ «»αÑñѽѡ¿Ñ αẼÑα«ó »ÑαÑσ«ñ«ó, ¡πª¡« ∩ó¡« αáºαÑΦ¿Γ∞ φΓ« ß
  1028.         »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ JUMPS.
  1029.  
  1030.                              æß佬¿ ó»ÑαÑñ ¡á ¬«ñ ¿ ñá¡¡δÑ                     
  1031.         -----------------------------------------------------------------
  1032.  
  1033.              é »«ß½Ññ¡Ñ¼ αáºñѽѠ¼δ ó¿ñѽ¿ »α¿¼Ñα Γ«ú«,  ¬á¬ πß½«ó¡δÑ »Ñ-
  1034.         αÑσ«ñδ ß« ßßδ½¬á¼¿ ó»ÑαÑñ ¼«úπΓ »α¿óÑßΓ¿ ¬ Γ«¼π, τΓ« »α¿ αáºαÑΦÑ-
  1035.         ¡¿¿ áóΓ«¼áΓ¿τÑ߬«ú« «»αÑñѽѡ¿∩ αẼÑαá »ÑαÑσ«ñ«ó Æπαí« ÇßßѼí½Ñα
  1036.         úÑ¡Ñα¿απÑΓ ¼Ñ¡ÑÑ φΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ. Äñ¡á¬« ßπΓ∞ ñѽá ß«ßΓ«¿Γ ó Γ«¼,
  1037.         τΓ« »α«í½Ñ¼δ ó Æπαí« ÇßßѼí½ÑαÑ ¼«úπΓ  óδºóáΓ∞  óßÑ  ó¿ñδ  ßß佫¬
  1038.         ó»ÑαÑñ  (¿½¿ «»ÑαѪáεΘ¿σ ßß佫¬),  »«φΓ«¼π «»ÑαѪáεΘ¿σ ßß佫¬ (Γ«
  1039.         ÑßΓ∞ ßß佫¬ ¡á ¼ÑΓ¬¿,  ¬«Γ«αδÑ ¡áσ«ñ∩Γß∩ úñÑ-Γ« ñá½∞ΦÑ ó »α«úαá¼-
  1040.         ¼Ñ) »« ó«º¼«ª¡«ßΓ¿ ß½ÑñπÑΓ ¿ºíÑúáΓ∞.
  1041.  
  1042.              Å«τѼπ φΓ« Γá¬?  è«úñá Æπαí« ÇßßѼí½Ñα áßßÑ¼í½¿απÑΓ ¿ßσ«ñ¡δ⌐
  1043.         ¼«ñπ½∞,  «¡ óδ»«½¡∩ÑΓ «ñ¿¡ »α«σ«ñ,  »α«ñó¿úá∩ß∞ «Γ »Ñαó«⌐  ßΓ᫬¿
  1044.         ¿ßσ«ñ¡«ú« ¼«ñπ½∩ ¬ »«ß½Ññ¡Ñ⌐.  ¥Γ« «º¡áτáÑΓ,  τΓ« Æπαí« ÇßßѼí½Ñα
  1045.         Γαá¡ß½¿απÑΓ »Ñαóπε ßΓ᫬π ó ¼«ñπ½Ñ,  ºáΓѼ óΓ«απε ßΓ᫬π,  ΓαÑΓ∞ε
  1046.         ßΓα«¬π ¿ Γ.ñ.  ò«Γ∩ φΓ« ¼«ªÑΓ »«¬áºáΓ∞ß∩ ñ«ßΓáΓ«τ¡« «τÑó¿ñ¡δ¼, ¡«
  1047.         ß φΓ¿¼ ¼«úπΓ íδΓ∞ ßó∩ºá¡δ ¼Ñ¡ÑÑ «τÑó¿ñ¡δÑ óÑΘ¿:  Æπαí«  ÇßßѼí½Ñα
  1048.         ¡Ñ º¡áÑΓ ºáαá¡ÑÑ « ßΓα«¬Ñ ¬«ñá ¡¿τÑú«, »«¬á «¡ ¡Ñ ñ«ßΓ¿ú ÑÑ, »«φ-
  1049.  
  1050.         TASM2 #3-5/䫬               = 24 =
  1051.  
  1052.         Γ«¼π ßß佬¿ ó»ÑαÑñ ºáßΓáó½∩εΓ Æπαí« ÇßßѼí½Ñα ñѽáΓ∞  »αÑñ»«½«ªÑ-
  1053.         ¡¿∩,  ¬«Γ«αδÑ ¼«úπΓ «¬áºáΓ∞ß∩ ¡Ñ¬«ααÑ¬Γ¡δ¼¿. àß½¿ φΓ¿ »αÑñ»«½«ªÑ-
  1054.         ¡¿∩ ó ßἫ¼ ñѽѠ«¬áºá½¿ß∞  ¡Ñ¬«ααÑ¬Γ¡δ,  Æπαí«  ÇßßѼí½Ñα  ¼«ªÑΓ
  1055.         úÑ¡Ñα¿α«óáΓ∞ ¬«ñ,  φΣΣÑ¬Γ¿ó¡«ßΓ∞ ¬«Γ«α«ú« ¡¿ªÑ ¼á¬ß¿¼á½∞¡«⌐. äáªÑ
  1056.         Ñß½¿ Æπαí« ÇßßѼí½Ñα ßúÑ¡Ñα¿απÑΓ φΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ, ¼«ªÑΓ «¬áºáΓ∞ß∩
  1057.         ¡Ñ«íσ«ñ¿¼δ¼ óÑα¡πΓ∞ß∩ ¡Ñ »αÑñδñπΘ¿Ñ ßΓ᫬¿ ñ½∩ óδ»«½¡Ñ¡¿∩ ¬«ααѬ-
  1058.         Γ¿α«ó¬¿.  êº-ºá φΓ«ú« ñ½∩ áßßÑ¼í½¿α«óá¡¿∩ »«ΓαÑíπÑΓß∩ í«½∞ΦÑ óαÑ-
  1059.         ¼Ñ¡¿.
  1060.  
  1061.              Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ »α¿¼Ñα:
  1062.  
  1063.                 .
  1064.                 .
  1065.                 .
  1066.                 jmp   DestLabel
  1067.                 .
  1068.                 .
  1069.                 .
  1070.         DestLabel:
  1071.                 .
  1072.                 .
  1073.                 .
  1074.  
  1075.              è«úñá Æπαí« ÇßßѼí½Ñα óßΓαÑτáÑΓ ßΓ᫬π:
  1076.  
  1077.                 jmp   DestLabel
  1078.  
  1079.         «¡ ÑΘÑ ¡Ñ ñ«Φѽ ñ« «»αÑñѽѡ¿∩ ¼ÑΓ¬¿ DestLabel. é ¿Γ«úÑ Æπαí« Çß-
  1080.         ßѼí½Ñα ¡Ñ ¼«ªÑΓ «»αÑñѽ¿Γ∞,  ∩ó½∩ÑΓß∩ ½¿ φΓá ¼ÑΓ¬á  ñá½∞¡Ñ⌐  ¿½¿
  1081.         í½¿ª¡Ñ⌐, ¿,  Ñß½¿ «¡á í½¿ª¡∩∩ (SHORT ¿½¿ NEAR),  ¼«ª¡« ½¿ ñ«ßΓ¿τ∞
  1082.         ÑÑ ß »«¼«Θ∞ε 1-íá⌐Γ«ó«ú« ß¼ÑΘÑ¡¿∩, ¿½¿ ñ½∩ φΓ«ú« ΓαÑíπÑΓß∩ »«½¡«Ñ
  1083.         2-íá⌐Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ.  é ¿Γ«úÑ,  τΓ«íδ »α«ñ«½ª¿Γ∞ áßßÑ¼í½¿α«óá¡¿Ñ,
  1084.         Æπαí«  ÇßßѼí½Ñαπ  »α¿σ«ñ¿Γß∩  ñѽáΓ∞   »αÑñ»«½«ªÑ¡¿∩   «   ¼ÑΓ¬Ñ
  1085.         DestLabel.
  1086.  
  1087.              Æπαí« ÇßßѼí½Ñα ¼«ªÑΓ »αÑñ»«½«ª¿Γ∞,  τΓ« φΓá ¼ÑΓ¬á  ∩ó½∩ÑΓß∩
  1088.         ñá½∞¡Ñ⌐ (FAR),  ¿  ºáαѺÑαó¿α«óáΓ∞  ñ½∩  ñá½∞¡Ñ⌐ ¿¡ßΓαπ¬µ¿¿ JMP 5
  1089.         íá⌐Γ«ó.  Äñ¡á¬« í«½∞Φ¿¡ßΓó« »ÑαÑσ«ñ«ó »αÑñßΓáó½∩εΓ ß«í«⌐ 3-íá⌐Γ«-
  1090.         óδÑ  í½¿ª¡¿Ñ »ÑαÑσ«ñδ,  ¿ í佫 íδ αáßΓ«τ¿Γѽ∞¡δ¼ ΓαáΓ¿Γ∞ ½¿Φ¡¿Ñ 2
  1091.         íá⌐Γá  ñ½∩  ¬áªñ«ú«  í½¿ª¡Ñú« »ÑαÑσ«ñá ß« ßß佬«⌐ ó»ÑαÑñ.  æ ñαπ-
  1092.         ú«⌐  ßΓ«α«¡δ,  Æπαí«  ÇßßѼí½Ñα  ¼«ªÑΓ  »αÑñ»«½«ª¿Γ∞,  τΓ«  ¼ÑΓ¬π
  1093.         DestLabel ¼«ª¡« ñ«ßΓ¿τ∞ ß »«¼«Θ∞ε «ñ¡«íá⌐Γ«ó«ú« ß¼ÑΘÑ¡¿∩  ¿  ¿¡ß-
  1094.         Γαπ¬µ¿¿ JUMP SHORT.  çñÑß∞ »α«í½Ñ¼á ß«ßΓ«¿Γ ó Γ«¼, τΓ« ¼¡«ú¿Ñ »Ñ-
  1095.         αÑσ«ñδ ¡Ñ ∩ó½∩εΓß∩ ¬«α«Γ¬¿¼¿, ¿ Ñß½¿ Æπαí« ÇßßѼí½Ñα ºáαѺÑαó¿α«-
  1096.         óá½ Γ«½∞¬« 2 íá⌐Γá, ¼«ªÑΓ ó«º¡¿¬¡πΓ∞ «Φ¿í¬á.
  1097.  
  1098.  
  1099.         TASM2 #3-5/䫬               = 25 =
  1100.  
  1101.              é ¬áτÑßΓóÑ  ¬«¼»α«¼¿ßß¡«ú« αÑΦÑ¡¿∩ Æπαí« ÇßßѼí½Ñα »αÑñ»«½á-
  1102.         úáÑΓ, τΓ« óßÑ »ÑαÑσ«ñδ ß« ßßδ½¬á¼¿ ó»ÑαÑñ ∩ó½∩εΓß∩ í½¿ª¡¿¼¿, Ñß½¿
  1103.         óδ ¡Ñ ºáñáñ¿ΓÑ «íαáΓ¡«Ñ ß »«¼«Θ∞ε «»Ñαᵿ⌐ SHORT ¿½¿ FAR PTR. ä½∩
  1104.         »ÑαÑσ«ñ«ó ß« ßßδ½¬á¼¿ ó»ÑαÑñ óßÑúñá αѺÑαó¿απεΓß∩ Γα¿ íá⌐Γá. àß½¿
  1105.         «¬áªÑΓß∩,  τΓ« »ÑαÑσ«ñ ñá½∞¡¿⌐,  Γ« ó«º¡¿¬áÑΓ «Φ¿í¬á.  Å«φΓ«¼π óδ
  1106.         óßÑúñá ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ñ½∩ ó«º¼«ª¡«ßΓ¿ áßßÑ¼í½¿α«óá¡¿∩  »ÑαÑ-
  1107.         σ«ñ«ó ó»ÑαÑñ ¡á ñá½∞¡¿Ñ ¼ÑΓ¬¿ «»Ñαᵿε FAR PRT.
  1108.  
  1109.              æ ñαπú«⌐ ßΓ«α«¡δ, Ñß½¿ »ÑαÑσ«ñ ß« ßß佬«⌐ ó»ÑαÑñ «¬áºδóáÑΓß∩
  1110.         ¬«α«Γ¬¿¼,  Æπαí« ÇßßѼí½Ñα Γαá¡ß½¿απÑΓ ¬«α«Γ¬¿⌐ »ÑαÑσ«ñ,  ¡«  ñ½∩
  1111.         ºá»«½¡Ñ¡¿∩  «ßΓáóΦ¿σß∩  3 íá⌐Γ,  ¬«Γ«αδÑ í뫨 ºáαѺÑαó¿α«óá¡δ ñ½∩
  1112.         »ÑαÑσ«ñá,  ó¬½ετáÑΓ 3 «»Ñαᵿ¿ NOP. ìá»α¿¼Ñα, Æπαí« ÇßßѼí½Ñα áß-
  1113.         ßÑ¼í½¿απÑΓ ¿¡ßΓαπ¬µ¿¿:
  1114.  
  1115.                 .
  1116.                 .
  1117.                 .
  1118.                 jmp   DestLabel
  1119.         DestLabel:
  1120.                 .
  1121.                 .
  1122.                 .
  1123.  
  1124.         ó ¬«ñ:
  1125.  
  1126.                 .
  1127.                 .
  1128.                 .
  1129.                 jmp   SHORT DestLabel
  1130.                 nop
  1131.         DestLabel:
  1132.                 .
  1133.                 .
  1134.                 .
  1135.  
  1136.              ò«Γ∩ Γᬫ⌐ »ÑαÑσ«ñ αáí«ΓáÑΓ »αѬαáß¡« ¿  óδ»«½¡∩ÑΓß∩ íδßΓα«,
  1137.         «¡ ñ½¿¡¡ÑÑ,  τѼ ΓαÑíπÑΓß∩. è«¡Ñτ¡«, τΓ«íδ »αÑóαáΓ¿Γ∞ ½εí«⌐ »ÑαÑ-
  1138.         σ«ñ ¡á ¼ÑΓ¬π ó»ÑαÑñ ó 2-íá⌐Γ«óπε ¿¡ßΓαπ¬µ¿ε,  óδ ¼«ªÑΓÑ ¿ß»«½∞º«-
  1139.         óáΓ∞ «»Ñαᵿε SHORT.  ì« φΓ« ¡Ñ Γᬠπñ«í¡«, ¬á¬ Ñß½¿ íδ Æπαí« Çß-
  1140.         ßѼí½Ñα ¿¼Ñ½  ó«º¼«ª¡«ßΓ∞  úÑ¡Ñα¿α«óáΓ∞  ß««ΓóÑΓßΓóπεΘ¿⌐  »ÑαÑσ«ñ
  1141.         áóΓ«¼áΓ¿τÑ߬¿.
  1142.  
  1143.              é᪡« »«¡¿¼áΓ∞,  τΓ«  «»ÑαѪáεΘá∩  ßßδ½¬á  ¡Ñ ∩ó½∩ÑΓß∩ ºñÑß∞
  1144.         ¡Ñ»αÑ«ñ«½¿¼δ¼ »αÑ»∩ΓßΓó¿Ñ¼. àß½¿ íδ Æπαí« ÇßßѼí½Ñα º¡á½ αáßßΓ«∩-
  1145.         ¡¿Ñ  ñ«  µÑ½Ñó«⌐ ¼ÑΓ¬¿,  Γ« ¼«ª¡« í佫 íδ áßßÑ¼í½¿α«óáΓ∞ ¡á¿í«½ÑÑ
  1146.         φΣΣÑ¬Γ¿ó¡δ⌐ »ÑαÑσ«ñ.  ì« »α¿ ¿ß»«½∞º«óá¡¿¿ Γᬿσ ßß佫¬ Æπαí« Çß-
  1147.  
  1148.         TASM2 #3-5/䫬               = 26 =
  1149.  
  1150.         ßѼí½Ñα  ¡Ñ  ¼«ªÑΓ º¡áΓ∞ αáßßΓ«∩¡¿Ñ ñ« µÑ½Ñó«⌐ ¼ÑΓ¬¿,  »«¬á «¡ ¡Ñ
  1151.         ñ«Φѽ ñ« ¡ÑÑ, ¿ ¡Ñ ¼«ªÑΓ ñ«ßΓ¿τ∞ φΓ«⌐ ¼ÑΓ¬¿, »«¬á «¡ ¡Ñ áßßÑ¼í½¿-
  1152.         α«óá½ «»Ñαᵿε πß½«ó¡«ú« »ÑαÑσ«ñá.  Æπαí« ÇßßѼí½Ñα αáºαÑΦáÑΓ φΓπ
  1153.         ñ¿½Ñ¼¼π,  ßñѽáó π»α«ΘÑ¡¡«Ñ »αÑñ»«½«ªÑ¡¿Ñ,  τΓ« ñáÑΓ Ñ¼π  ó«º¼«ª-
  1154.         ¡«ßΓ∞ »α«ñ«½ªáΓ∞ αáí«Γπ, ¡« ó«º¼«ª¡« µÑ¡«⌐ »«½πτÑ¡¿∩ ¬«ñá í«½∞ΦÑ-
  1155.         ú« «íΩѼá, τѼ φΓ« ¡Ñ«íσ«ñ¿¼«.
  1156.  
  1157.              è«úñá Æπαí« ÇßßѼí½Ñαπ ¿ºóÑßΓÑ¡ Γ¿»  »ÑαÑσ«ñá  (SHORT,  NEAR
  1158.         ¿½¿  FAR),  Γ«  íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ß∩ ¼á¬ß¿¼á½∞¡« φΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ.
  1159.         î«ª¡« »«ñóÑßΓ¿ ¿Γ«ú, Γ« »«½Ñº¡« ñ½∩ ¬«α«Γ¬¿⌐ »ÑαÑσ«ñ«ó ß« ßß佬«⌐
  1160.         ó»ÑαÑñ ¿ß»«½∞º«óáΓ∞ «»Ñαᵿε SHORT (¿,  ¬«¡Ñτ¡«, «»Ñαᵿε FAR PTR
  1161.         ñ½∩ ñá½∞¡¿σ »ÑαÑσ«ñ«ó).
  1162.  
  1163.              ÅÑαÑσ«ñδ - φΓ« ¡Ñ Ññ¿¡ßΓóÑ¡¡δÑ ¿¡ßΓαπ¬µ¿¿, ó ¬«Γ«αδσ ß½ÑñπÑΓ
  1164.         ¿ºíÑúáΓ∞ ¿ß»«½∞º«óá¡¿∩ «»ÑαѪáεΘ¿σ ßß佫¬.  ìÑφΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ ¼«-
  1165.         ªÑΓ ΓᬪѠúÑ¡Ñα¿α«óáΓ∞ß∩ »α¿ ¿ß»«½∞º«óá¡¿¿ ßß佫¬ ó»ÑαÑñ ¡á  ñá¡-
  1166.         ¡δÑ. Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ »α¿¼Ñα:
  1167.  
  1168.                 .
  1169.                 .
  1170.                 .
  1171.                 .CODE
  1172.                 .
  1173.                 .
  1174.                 .
  1175.                 mov   bl,Value
  1176.                 .
  1177.                 .
  1178.                 .
  1179.         Value   EQU   1
  1180.                 .
  1181.                 .
  1182.                 .
  1183.  
  1184.              è«úñá Æπαí« ÇßßѼí½Ñα ñ«ßΓ¿úáÑΓ ¿¡ßΓαπ¬µ¿¿ MOV, Γ« ¡Ñ󫺼«ª-
  1185.         ¡« «»αÑñѽ¿Γ∞, »αÑñßΓáó½∩ÑΓ ½¿ ß«í«⌐ Value »α¿αáó¡Ñ¡¡πε ¼ÑΓ¬π ¿½¿
  1186.         »ÑαѼѡ¡πε  ó  »á¼∩Γ¿.  àß½¿ Value - φΓ« »ÑαѼѡ¡á∩ ó »á¼∩Γ¿,  Γ«
  1187.         »«ΓαÑíπÑΓß∩ 4-íá⌐Γ«óá∩ ¿¡ßΓαπ¬µ¿∩,  á Ñß½¿ Value - φΓ« »α¿αáó¡Ñ¡-
  1188.         ¡á∩  ¼ÑΓ¬á (¡á»α¿¼Ñα,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩,  ¬á¬ ¬«¡ßΓá¡Γá),  Γ«
  1189.         ¡πª¡á 2-íá⌐Γ«óá∩ ¿¡ßΓαπ¬µ¿∩.
  1190.  
  1191.              èᬠ«íδτ¡«,  τΓ«íδ »α«ñ«½ª¿Γ∞ áßßÑ¼í½¿α«óá¡¿Ñ, Æπαí« ÇßßѼí-
  1192.         ½Ñα  ñ«½ªÑ¡  »αÑñ»«½«ª¿Γ∞  σπñΦ¿⌐ ß½πτá⌐,  »«φΓ«¼π ñ½∩ ¿¡ßΓαπ¬µ¿¿
  1193.         MOV αѺÑαó¿απÑΓß∩  4  íá⌐Γá.  è«úñá  ºáΓѼ íπñÑΓ ñ«ßΓ¿ú¡πΓá ¼ÑΓ¬á
  1194.         Value ¿ «¬áªÑΓß∩,  τΓ« φΓ« »α¿αáó¡Ñ¡¡á∩ ¼ÑΓ¬á,  á ¡Ñ »ÑαѼѡ¡á∩ ó
  1195.         »á¼∩Γ¿, Γ« Æπαí« ÇßßѼí½Ñα ó«ºóαáΘáÑΓß∩ ¬ ¿¡ßΓαπ¬µ¿¿ MOV ¿ Σ«α¼¿-
  1196.  
  1197.         TASM2 #3-5/䫬               = 27 =
  1198.  
  1199.         απÑΓ 2-íá⌐Γ«óπε ¿¡ßΓαπ¬µ¿ε ß «»Ñαá¡ñ«¼-¬«¡ßΓá¡Γ«⌐ ¿, τΓ«íδ ºá»«½-
  1200.         ¡¿Γ∞ ºáαѺÑαó¿α«óá¡¡δÑ ΓαÑΓ¿⌐ ¿ τÑΓóÑαΓδ⌐ íá⌐Γδ,  ñ«½ªÑ¡ ó¬½ετ¿Γ∞
  1201.         ñóÑ ¿¡ßΓαπ¬µ¿¿ NOP.  çá¼ÑΓ¿¼,  τΓ« ¡¿τÑú« φΓ«ú« ¡Ñ ß½πτ¿½«ß∞  íδ,
  1202.         Ñß½¿ íδ Value íδ½á «»αÑñѽѡᠻÑαÑñ ¿¡ßΓαπ¬µ¿Ñ⌐ MOV, Γᬠ¬á¬ Æπα-
  1203.         í« ÇßßѼí½Ñα º¡á½ íδ, τΓ« Value - φΓ« ¡Ñ »ÑαѼѡ¡á∩ ó »á¼∩Γ¿.
  1204.  
  1205.              öá¬Γ¿τÑ߬¿, »α¿  ¿ß»«½∞º«óá¡¿¿  «íαáΓ¡δσ  ßß佫¬  ¡¿ «ñ¡á ¿º
  1206.         π¬áºá¡¡δσ »α«í½Ñ¼ ¡Ñ ó«º¡¿¬áÑΓ,  Γᬠ¬á¬ Æπαí«  ÇßßѼí½Ñα  óßÑúñá
  1207.         º¡áÑΓ « Γᬿσ ¼ÑΓ¬áσ óßÑ, τΓ« Ñ¼π ¡πª¡«. é αѺπ½∞ΓáΓÑ ñ½∩ ΓÑσ ¿¡-
  1208.         ßΓαπ¬µ¿⌐, úñÑ ¿ß»«½∞ºπεΓß∩ «íαáΓ¡δÑ ßß佬¿, «¡ áßßÑ¼í½¿απÑΓ ¬«ñ ß
  1209.         ¼á¬ß¿¼á½∞¡« ó«º¼«ª¡«⌐ φΣΣÑ¬Γ¿ó¡«ßΓ∞ε. ÄΓßεñá ¼«ª¡« ºá¬½ετ¿Γ∞, τΓ«
  1210.         ªÑ½áΓѽ∞¡« Γá¼, úñÑ φΓ« ó«º¼«ª¡«, ¿ºíÑúáΓ∞ ¿ß»«½∞º«óá¡¿∩ «»ÑαѪá-
  1211.         εΘ¿σ ßß佫¬.
  1212.  
  1213.              éδ ¼«ªÑΓÑ »«ñπ¼áΓ∞, ¡Ñ ∩ó½∩ÑΓß∩ ½¿ »α«í½Ñ¼á «»ÑαѪáεΘ¿σ ßßδ-
  1214.         ½«¬ ßΓ«½∞ ªÑ ßÑα∞Ѻ¡«⌐ ñ½∩  ó맮ó«ó,  ¬á¬  ñ½∩  »ÑαÑσ«ñ«ó?  ÄΓóÑΓ
  1215.         ºñÑß∞  «Γα¿µáΓѽ∞¡δ⌐.  äá½∞¡¿Ñ  ó맮óδ  ß« ßßδ½¬á¼¿ ó»ÑαÑñ ñ«½ª¡δ
  1216.         ¿¼ÑΓ∞ »ÑαÑ«»αÑñѽѡ¿∩ Γ¿»á FAR PTR, Γᬠ¬á¬ Æπαí« ÇßßѼí½Ñα »αÑñ-
  1217.         »«½áúáÑΓ,  τΓ«  ó맮óδ ß «»ÑαѪáεΘ¿¼¿ ßßδ½¬á¼¿ ∩ó½∩εΓß∩ í½¿ª¡¿¼¿.
  1218.         Å«ß¬«½∞¬π «ΓßπΓßΓóπεΓ ΓᬿѠóÑΘ¿, ¬á¬ ¬«α«Γ¬¿⌐ ó맮ó, Γ« ¡ÑφΣΣѬ-
  1219.         Γ¿ó¡δ⌐ ¬«ñ ñ½∩ ó맮ó«ó ¡¿¬«úñá ¡Ñ úÑ¡Ñα¿απÑΓß∩.
  1220.  
  1221.              î¡«ú¿Ñ «»ÑαѪáεΘ¿Ñ  ßß佬¿  »α¿ó«ñ∩Γ ¬ «Φ¿í¬á¼ áßßÑ¼í½¿α«óá-
  1222.         ¡¿∩, á ¡Ñ ¬ ¡ÑφΣΣÑ¬Γ¿ó¡«¼π ¬«ñπ. ìá»α¿¼Ñα,  «»ÑαѪáεΘ¿Ñ ßß佬¿ ¡á
  1223.         »α¿αáó¡Ñ¡¡πε ¼ÑΓ¬π ¡Ñ ¼«úπΓ áßßÑ¼í½¿α«óáΓ∞ß∩, á «»ÑαѪáεΘ¿Ñ ßßδ½-
  1224.         ¬¿ ¡á ñá½∞¡¿Ñ ¼ÑΓ¬¿ ¡Ñ ¼«úπΓ áßßÑ¼í½¿α«óáΓ∞ß∩ íѺ »ÑαÑ«»αÑñѽѡ¿∩
  1225.         Γ¿»á.
  1226.  
  1227.              äáªÑ Ñß½¿ Æπαí« ÇßßѼí½Ñα ¼«ªÑΓ úÑ¡Ñα¿α«óáΓ∞ φΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ
  1228.         ñ½∩ «»ÑαѪáεΘ¿σ ßß佫¬,  áßßÑ¼í½¿α«óá¡¿Ñ  óδ»«½¡∩ÑΓß∩  ¼Ññ½Ñ¡¡ÑÑ,
  1229.         τѼ ñ½∩ «íαáΓ¡δσ ßß佫¬. ¥Γ« »α«¿ßσ«ñ¿Γ ¿º-ºá Γ«ú«, τΓ« Æπαí« Çß-
  1230.         ßѼí½Ñα ñ«½ªÑ¡ ó«ºóαáΘáΓ∞ß∩ ¬  ¬áªñ«⌐  ¿¡ßΓαπ¬µ¿¿  ß  «»ÑαѪáεΘÑ⌐
  1231.         ßß佬«⌐ ¿ ñ«½ª¡δ¼ «íαẫ¼ ÑÑ áßßÑ¼í½¿α«óáΓ∞,  »«ß½Ñ Γ«ú« ¬á¬ º¡á-
  1232.         τÑ¡¿Ñ ¿ Γ¿» ¼ÑΓ¬¿ ßΓ὿ ¿ºóÑßΓ¡δ.
  1233.  
  1234.              éδó«ñ ∩ßÑ¡:  ¡á߬«½∞¬« φΓ« ó«º¼«ª¡«, ó »α«úαἼѠ¡πª¡« ¿ºíÑ-
  1235.         úáΓ∞  ßß佫¬ ó»ÑαÑñ,  τΓ« »«ºó«½¿Γ Æπαí« ÇßßѼí½Ñαπ ßúÑ¡Ñα¿α«óáΓ∞
  1236.         ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ⌐ ¬«ñ ºá ¼¿¡¿¼á½∞¡«Ñ óαѼ∩.  ìá»α¿¼Ñα, »«½Ñº¡«
  1237.         αẼÑΘáΓ∞ «»αÑñѽѡ¿∩ ñá¡¡δσ ó ¡áτá½Ñ ¿ßσ«ñ¡«ú« ¼«ñπ½∩,  ñ« Γ«ú«,
  1238.         ¬á¬ ¡á ¡¿σ ßßδ½áÑΓß∩ ¬«ñ. è«úñá óδ ¡Ñ ¼«ªÑΓÑ ¿ºíѪáΓ∞ «»ÑαѪáεΘ¿σ
  1239.         ßß佫¬, Γ« óßÑúñá ¿ß»«½∞ºπ⌐ΓÑ «»Ñαáµ¿ε «»αÑñѽѡ¿∩ Γ¿»á, τΓ« »«º-
  1240.         ó«½¿Γ Æπαí« ÇßßѼí½Ñαπ Γ«τ¡« º¡áΓ∞,  ß ¬á¬¿¼ Γ¿»«¼ ¼ÑΓ¬¿ óδ αáí«-
  1241.         ΓáÑΓÑ. àß½¿ óδ ß »«¼«Θ∞ε »áαá¼ÑΓαá /m ºáñáÑΓÑ ¡Ñ߬«½∞¬« »α«σ«ñ«ó,
  1242.         Γ« íπñÑΓ ßúÑ¡Ñα¿α«óá¡ «»Γ¿¼á½∞¡δ⌐ ¬«ñ, ¡« »α«µÑßß áßßÑ¼í½¿α«óá¡¿∩
  1243.         »«ΓαÑíπÑΓ í«½∞ΦÑú« óαѼѡ¿, τѼ »α¿ «ñ¡«¼ »α«σ«ñÑ.
  1244.  
  1245.  
  1246.         TASM2 #3-5/䫬               = 28 =
  1247.  
  1248.                                                                                
  1249.         êß»«½∞º«óá¡¿Ñ í½«¬«ó »«óΓ«αÑ¡¿∩ ¿ ¼á¬α«¬«¼á¡ñ
  1250.         ---------------------------------------------------------------
  1251.  
  1252.              Äñ¡á ¿º αáí«Γ,  ¬«Γ«απε ¬«¼»∞εΓÑα »αѬαáß¡« óδ»«½¡∩ÑΓ -  φΓ«
  1253.         »«óΓ«α∩εΘ¿Ñß∩  ñÑ⌐ßΓó¿∩.  éδ  ¼«ªÑΓÑ πΓ«¼¿Γ∞ß∩ »α¿ óó«ñÑ ñÑß∩Γ¬«ó
  1254.         º¡áτÑ¡¿⌐ ñ½∩ ñ¿αÑ¬Γ¿ó DB ¿½¿ ¼á½« «Γ½¿τáεΘ¿σß∩ óáα¿á¡Γ«ó «ñ¡«ú« ¿
  1255.         Γ«ú«  ªÑ  ¿ßσ«ñ¡«ú« ¬«ñá,  ¡« ¬«¼»∞εΓÑα ¡¿¬«úñá ¡Ñ πßΓá¡ÑΓ «Γ Γá-
  1256.         ¬«⌐ αáí«Γδ. ùΓ«íδ «ßó«í«ñ¿Γ∞ óáß «Γ Γᬫú« α«ñá ¼«¡«Γ«¡¡δσ «»Ñαá-
  1257.         µ¿⌐, ó Æπαí« ÇßßѼí½ÑαÑ »αÑñπß¼«ΓαÑ¡δ ¼á¬α«¬«¼á¡ñδ ¿ í½«¬¿ »«óΓ«-
  1258.         αÑ¡¿∩.
  1259.  
  1260.                                    ü½«¬¿ »«óΓ«αÑ¡¿∩                            
  1261.         -----------------------------------------------------------------
  1262.  
  1263.              ü½«¬ »«óΓ«αÑ¡¿∩ ¡áτ¿¡áÑΓß∩ ß ñ¿αÑ¬Γ¿óδ REPT  ¿ ºá¬á¡τ¿óáÑΓß∩
  1264.         ñ¿αÑ¬Γ¿ó«⌐  ENDM.  è«ñ  í½«¬á  »«óΓ«αÑ¡¿∩ áßßÑ¼í½¿απÑΓß∩ Γ« τ¿ß½«
  1265.         αáº, ¬«Γ«α«Ñ ºáñáÑΓß∩ «»Ñαá¡ñ«¼ ñ¿αÑ¬Γ¿óδ REPT. ìá»α¿¼Ñα, »α¿ áß-
  1266.         ßÑ¼í½¿α«óá¡¿¿ ¿¡ßΓαπ¬µ¿⌐:
  1267.  
  1268.                 .
  1269.                 .
  1270.                 .
  1271.                 REPT  10
  1272.                 DW     0
  1273.                 ENDM
  1274.                 .
  1275.                 .
  1276.                 .
  1277.  
  1278.         úÑ¡Ñα¿απÑΓß∩ Γ«Γ ªÑ ¬«ñ, τΓ« ¿ »α¿ áßßÑ¼í½¿α«óá¡¿¿ ¿¡ßΓαπ¬µ¿⌐:
  1279.  
  1280.                 .
  1281.                 .
  1282.                 .
  1283.                 DW     0
  1284.                 DW     0
  1285.                 DW     0
  1286.                 DW     0
  1287.                 DW     0
  1288.                 DW     0
  1289.                 DW     0
  1290.                 DW     0
  1291.                 DW     0
  1292.                 DW     0
  1293.                 .
  1294.  
  1295.         TASM2 #3-5/䫬               = 29 =
  1296.  
  1297.                 .
  1298.                 .
  1299.  
  1300.              ¥Γ« ¡Ñ ñ«½ª¡« óáß πñ¿ó½∩Γ∞,  »«ß¬«½∞¬π Γ«ªÑ ßἫѠ¼«ª¡« ßñÑ-
  1301.         ½áΓ∞ ß »«¼«Θ∞ε:
  1302.  
  1303.                 DW    10 DUP (0)
  1304.  
  1305.              æ¬«¼í¿¡¿απѼ í½«¬¿  »«óΓ«αÑ¡¿∩  ¿  ñ¿αÑ¬Γ¿óπ  = ñ½∩ ß«ºñá¡¿∩
  1306.         Γáí½¿µδ »Ñαóδσ ñÑß∩Γ¿ µÑ½δσ τ¿ßѽ:
  1307.  
  1308.                 .
  1309.                 .
  1310.                 .
  1311.           IntVal =  0
  1312.                 REPT 10
  1313.                 DW  IntVal
  1314.           IntVal =  IntVal+1
  1315.                 ENDM
  1316.                 .
  1317.                 .
  1318.                 .
  1319.  
  1320.              Åα¿ φΓ«¼ úÑ¡Ñα¿απÑΓß∩ ß½ÑñπεΘ¿⌐ φ¬ó¿óá½Ñ¡Γ:
  1321.  
  1322.                 .
  1323.                 .
  1324.                 .
  1325.                 DW     0
  1326.                 DW     1
  1327.                 DW     2
  1328.                 DW     3
  1329.                 DW     4
  1330.                 DW     5
  1331.                 DW     6
  1332.                 DW     7
  1333.                 DW     8
  1334.                 DW     9
  1335.                 .
  1336.                 .
  1337.                 .
  1338.  
  1339.              Å«»α«íπ⌐ΓÑ ßñѽáΓ∞ φΓ« ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ DUP!  èα«¼Ñ Γ«ú«,
  1340.         Ñß½¿ óδ ºáσ«Γ¿ΓÑ »«½πτ¿Γ∞ 100 »Ñαóδσ µÑ½δσ τ¿ßѽ, óá¼ »«ΓαÑíπÑΓß∩
  1341.         Γ«½∞¬« ¿º¼Ñ¡¿Γ∞ º¡áτÑ¡¿Ñ «»Ñαá¡ñá ñ¿αÑ¬Γ¿óδ REPT ¡á 100: φΓ«, ¬«-
  1342.         ¡Ñτ¡«, ½ÑúτÑ, τѼ óó«ñ¿Γ∞ 100 ßΓ᫬.
  1343.  
  1344.         TASM2 #3-5/䫬               = 30 =
  1345.  
  1346.  
  1347.              Äñ¡« ¿º »αѬαáß¡δσ »α¿¼Ñ¡Ñ¡¿⌐ ñ¿αÑ¬Γ¿óδ REPT ß«ßΓ«¿Γ ó úÑ¡Ñ-
  1348.         αᵿ¿  Γáí½¿µ,  ¿ß»«½∞ºπεΘ¿σß∩  ñ½∩ íδßΓα«ú« π¼¡«ªÑ¡¿∩ ¿ ñѽѡ¿∩.
  1349.         ìá»α¿¼Ñα,  ñá½ÑÑ »ÑαѼ¡«ªáεΓß∩ τ¿ß½á «Γ 0 ñ« 99 (¬«Γ«αδÑ σαá¡∩Γß∩
  1350.         ó BX) ¡á 10 («τÑ¡∞ íδßΓα«),  á αѺπ½∞ΓáΓ »«¼ÑΘáÑΓß∩ ó αÑú¿ßΓα AX.
  1351.  
  1352.                 .DATA
  1353.         TableOfMultipleOf10    LABEL   WORD
  1354.         BaseVal   =     0
  1355.                 REPT    100
  1356.                 DW      BaseVal
  1357.         BaseVal   =     BaseVal+10
  1358.                 ENDM
  1359.                 .
  1360.                 .
  1361.                 .
  1362.                 .CODE
  1363.                 .
  1364.                 .
  1365.                 .
  1366.                 shl   bx,1              ; »«ñú«Γ«ó¬á ñ½∩ »«¿ß¬á ó Γáí½¿µÑ
  1367.                                         ; ºá»¿ßÑ⌐ αẼÑα«¼ ó ß½«ó«
  1368.                 mov   ax,[TableOfMultiplesOf10+bx] ; »«¿ß¬ αѺπ½∞ΓáΓá
  1369.                                         ; π¼¡«ªÑ¡¿∩ ¡á 10
  1370.                 .
  1371.                 .
  1372.                 .
  1373.  
  1374.  
  1375.              ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« ΓѬßΓ ó í½«¬Ñ »«óΓ«αÑ¡¿∩ »α«ßΓ« áßßÑ¼í½¿-
  1376.         απÑΓß∩ ßΓ«½∞¬«  αáº,  ß¬«½∞¬«  π¬áºá¡« ó «»Ñαá¡ñÑ ñ¿αÑ¬Γ¿óδ REPT.
  1377.         ìÑΓ αạ¿µδ ¼Ñªñπ 10-¬αáΓ¡δ¼  óδ»«½¡Ñ¡¿Ñ¼ í½«¬á »«óΓ«αÑ¡¿∩ ¿ ß«º-
  1378.         ñ᡿Ѽ 9 ñ«»«½¡¿Γѽ∞¡δ󠬫»¿⌐ ¬«ñá ó φΓ«¼ í½«¬Ñ ¿ áßßÑ¼í½¿α«óá¡¿-
  1379.         Ñ¼ 10 óσ«ªñÑ¡¿⌐ φΓ«ú« ¬«ñá.
  1380.  
  1381.              ¥Γ« «º¡áτáÑΓ,  τΓ« ó¡πΓα¿ í½«¬á »«óΓ«αÑ¡¿∩ ¼«ª¡«  αẼÑßΓ¿Γ∞
  1382.         ½εí«⌐ ñ«»πßΓ¿¼δ⌐ ¬«ñ, ó¬½ετá∩ ¿¡ßΓαπ¬µ¿¿. ìá»α¿¼Ñα, ñá½ÑÑ úÑ¡Ñα¿-
  1383.         απÑΓß∩ ¬«ñ ñ½∩ ñѽѡ¿∩ 32-í¿Γ«ó«ú« íѺº¡á¬«ó«ú«  º¡áτÑ¡¿∩  ó  αÑ-
  1384.         ú¿ßΓαáσ DX:AX ¡á 16:
  1385.  
  1386.                 .
  1387.                 .
  1388.                 .
  1389.                 REPT  4
  1390.                 shr   dx,1
  1391.                 rcr   ax,1
  1392.  
  1393.         TASM2 #3-5/䫬               = 31 =
  1394.  
  1395.                 ENDM
  1396.                 .
  1397.                 .
  1398.                 .
  1399.  
  1400.              ü½«¬¿ »«óΓ«αÑ¡¿∩ ¼«úπΓ íδΓ∞ ó½«ªÑ¡¡δ¼¿.  ìá»α¿¼Ñα, ñá½ÑÑ úÑ-
  1401.         ¡Ñα¿απÑΓß∩ 10 ¿¡ßΓαπ¬µ¿⌐ NOP:
  1402.  
  1403.                 .
  1404.                 .
  1405.                 .
  1406.                 REPT  5
  1407.                 REPT  2
  1408.                 nop
  1409.                 ENDM
  1410.                 ENDM
  1411.                 .
  1412.                 .
  1413.                 .
  1414.  
  1415.                         ü½«¬¿ »«óΓ«αÑ¡¿∩ ¿ »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ                
  1416.         -----------------------------------------------------------------
  1417.  
  1418.              Åáαá¼ÑΓα-»ÑαѼѡ¡á∩ í½«¬á »«óΓ«αÑ¡¿∩ ¼«ªÑΓ ºáñáóáΓ∞ß∩ ß  »«-
  1419.         ¼«Θ∞ε ñ¿αÑ¬Γ¿ó IRP ¿ IRPC.
  1420.  
  1421.              ä¿αÑ¬Γ¿óá IRP  »«ñßΓáó½∩ÑΓ  »Ñαóπε ºá»¿ß∞ ó ß»¿ß¬Ñ »áαá¼ÑΓαá
  1422.         »α¿ »Ñαó«¼ »«óΓ«αÑ¡¿¿ í½«¬á,  óΓ«απε ºá»¿ß∞ - »α¿ óΓ«α«¼ »«óΓ«αÑ-
  1423.         ¡¿¿ í½«¬á ¿ Γ.ñ.  ñ« ΓÑσ »«α, »«¬á ß»¿ß«¬ ¡Ñ íπñÑΓ ¿ßτÑα»á¡. ìá»-
  1424.         α¿¼Ñα, ¿¡ßΓαπ¬µ¿¿:
  1425.  
  1426.                 .
  1427.                 .
  1428.                 .
  1429.                 IRP   PARM,<0,1,4,9,16,25>
  1430.                 DB    PARM
  1431.                 ENDM
  1432.                 .
  1433.                 .
  1434.                 .
  1435.  
  1436.         úÑ¡Ñα¿απεΓ:
  1437.  
  1438.                 .
  1439.                 .
  1440.  
  1441.         TASM2 #3-5/䫬               = 32 =
  1442.  
  1443.                 .
  1444.                 DB     0
  1445.                 DB     1
  1446.                 DB     4
  1447.                 DB     9
  1448.                 DB     16
  1449.                 DB     25
  1450.                 .
  1451.                 .
  1452.                 .
  1453.  
  1454.              ä¿αÑ¬Γ¿óá IRPC  αáí«ΓáÑΓ á¡á½«ú¿τ¡«,  Γ«½∞¬« «¡á »«ñßΓáó½∩ÑΓ
  1455.         ñ½∩ ¬áªñ«ú« »«óΓ«αÑ¡¿∩ í½«¬á «ñ¿¡ ß¿¼ó«½ ¿º ßΓ᫬¿. æ½ÑñπεΘ¿⌐ ¬«ñ
  1456.         πßΓá¡áó½¿óáÑΓ Σ½áú ¡π½∩, Ñß½¿ αÑú¿ßΓα AL αáóÑ¡ «ñ¡«¼π ¿º ß¿¼ó«½«ó
  1457.         ó ßΓ᫬Ñ, ∩ó½∩εΘÑ⌐ß∩ óΓ«αδ¼ áαúπ¼Ñ¡Γ«¼ IRPC:
  1458.  
  1459.                 .
  1460.                 .
  1461.                 .
  1462.                 IRPC   TEST_CHAR,azklg
  1463.                 cmp    al,'&TEST_CHAR&'
  1464.                 jz     EndCompare
  1465.                 ENDM
  1466.         EndCompare:
  1467.                 .
  1468.                 .
  1469.                 .
  1470.  
  1471.              Ç¼»Ñαßá¡ñ (&) ó »«ß½Ññ¡Ñ¼  »α¿¼ÑαÑ  ¿ß»«½∞ºπÑΓß∩  ñ½∩  Γ«ú«,
  1472.         τΓ«íδ  ºáñáΓ∞  óδτ¿ß½Ñ¡¿Ñ  »áαá¼ÑΓαá í½«¬á »«óΓ«αÑ¡¿∩ ñáªÑ ó¡πΓα¿
  1473.         ¬áóδτѬ.  Ç¼»Ñαßá¡ñ - φΓ« ¼á¬α««»Ñαᵿ∩, ¬«Γ«αá∩ αáí«ΓáÑΓ ó í½«¬Ñ
  1474.         »«óΓ«αÑ¡¿∩, »«ß¬«½∞¬π í½«¬¿ »«óΓ«αÑ¡¿∩ »αÑñßΓáó½∩εΓ ß«í«⌐ «ñ¿¡ ¿º
  1475.         Γ¿»«ó ¼á¬α«¬«¼á¡ñδ. çñÑß∞ ñ«»π߬áÑΓß∩ »α¿¼Ñ¡∩Γ∞ ΓᬪѠñαπú¿Ñ ¼á¬-
  1476.         α«ßαÑñßΓóá,  ΓᬿÑ, ¬á¬ ñ¿αÑ¬Γ¿óδ LOCAL ¿ EXITM.  Äí φΓ«¼ ¼δ αáß-
  1477.         ß¬áªÑ¼ »«ºñ¡ÑÑ.
  1478.  
  1479.                                      îá¬α«¬«¼á¡ñδ                              
  1480.         -----------------------------------------------------------------
  1481.  
  1482.              æπΓ∞ αáí«Γδ ¼á¬α«¬«¼á¡ñδ óÑß∞¼á »α«ßΓá:  óδ »α¿ßóá¿óáÑΓÑ ¿¼∩
  1483.         í½«¬π ΓѬßΓá (¼á¬α«¬«¼á¡ñÑ), ºáΓѼ, ¬«úñá Æπαí« ÇßßѼí½Ñα «í¡áαπ-
  1484.         ª¿óáÑΓ  φΓ«  ¿¼∩  ó ¿ßσ«ñ¡«¼ ¬«ñÑ,  Γ« áßßÑ¼í½¿απÑΓß∩ ßó∩ºá¡¡δσ ß
  1485.         φΓ¿¼ ¿¼Ñ¡Ñ¼ ΓѬßΓ. î«ª¡« ßτ¿ΓáΓ∞, τΓ« ¿¼∩ ¼á¬α«¬«¼á¡ñδ αáßΦ¿α∩ÑΓ-
  1486.         ß∩  ñ«  »«½¡«ú«  ΓѬßΓá  φΓ«⌐ ¼á¬α«¬«¼á¡ñδ,  »«φΓ«¼π ñ½∩ «»¿ßá¡¿∩
  1487.         »«ñßΓᡫ󬿠ΓѬßΓá ¼á¬α«¬«¼á¡ñδ ó¼ÑßΓ« ÑÑ ¿¼Ñ¡¿ τáßΓ« ¿ß»«½∞ºπÑΓ-
  1488.  
  1489.         TASM2 #3-5/䫬               = 33 =
  1490.  
  1491.         ß∩ ΓÑନ¡ "¼á¬α«αáßΦ¿αÑ¡¿Ñ".
  1492.  
  1493.              Å«½Ñº¡«⌐ á¡á½«ú¿Ñ⌐ ºñÑß∞ ¼«ªÑΓ ß½πª¿Γ∞ ó¬½ετáѼδ⌐ Σá⌐½. è«ú-
  1494.         ñá Æπαí« ÇßßѼí½Ñα óßΓαÑτáÑΓ ñ¿αÑ¬Γ¿óπ INCLUDE, Γ« áßßÑ¼í½¿απÑΓß∩
  1495.         ΓѬßΓ, ß«ñÑαªáΘ¿⌐ß∩ ó ºáñá¡¡«¼ Σá⌐½Ñ (¬á¬ Ñß½¿ íδ «¡ ß«ñÑαªá½ß∩ ó
  1496.         ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ,  úñÑ ¿ß»«½∞ºπÑΓß∩ ñ¿αÑ¬Γ¿óá INCLUDE). àß½¿ «í¡á-
  1497.         απª¿óáÑΓß∩  óΓ«αá∩  ñ¿αÑ¬Γ¿óá  INCLUDE ß ΓѼ ªÑ ¿¼Ñ¡Ñ¼ Σá⌐½á,  Γ«
  1498.         Æπαí« ÇßßѼí½Ñα ß¡«óá áßßÑ¼í½¿απÑΓ φëàΓѬßΓ.
  1499.  
  1500.              îá¬α«¬«¼á¡ñδ á¡á½«ú¿τ¡δ ó¬½ετáÑ¼δ¼ Σá⌐½á¼ ó Γ«¼  »½á¡Ñ,  τΓ«
  1501.         ΓѬßΓ ¿½¿ Γѽ« ¼á¬α«¬«¼á¡ñδ áßßÑ¼í½¿απÑΓß∩ ¬áªñδ⌐ αáº,  ¬«úñá «í-
  1502.         ¡áαπª¿óáÑΓß∩ ¿¼∩  ¼á¬α«¬«¼á¡ñδ.  Äñ¡á¬«  ¼á¬α«¬«¼á¡ñδ  «Γ½¿τáεΓß∩
  1503.         º¡áτ¿Γѽ∞¡« í«½∞ΦÑ⌐ ú¿í¬«ßΓ∞ε,  τѼ ó¬½ετáѼδÑ Σá⌐½δ,  Γᬠ¬á¬ ¿¼
  1504.         ¼«úπΓ »ÑαÑñáóáΓ∞ß∩ »áαá¼ÑΓαδ ¿ «¡¿ ¼«úπΓ ß«ñÑαªáΓ∞ ½«¬á½∞¡δÑ ¼ÑΓ-
  1505.         ¬¿. Ä¡¿ «íαáíáΓδóáεΓß∩ º¡áτ¿Γѽ∞¡« íδßΓαÑÑ, τѼ ó¬½ετáѼδÑ Σá⌐½δ,
  1506.         Γᬠ¬á¬ ΓѬßΓ ¼á¬α«¬«¼á¡ñδ  ¡Ñ  ΓαÑíπÑΓß∩  τ¿ΓáΓ∞  ß  ñ¿ß¬á  (¬á¬
  1507.         Σá⌐½). äáóá⌐ΓÑ αáßß¼«Γα¿¼ «ß¡«óδ αáí«Γδ ¼á¬α«¬«¼á¡ñ.
  1508.  
  1509.              é ß½ÑñπεΘѼ  Σαáú¼Ñ¡ΓÑ  »α«úαá¼¼δ ¼á¬α«¬«¼á¡ñá MULTIPLY_BY_4
  1510.         ¿ß»«½∞ºπÑΓß∩ ñ½∩ π¼¡«ªÑ¡¿∩ º¡áτÑ¡¿∩ ó αÑú¿ßΓαÑ AX ¡á 4 ¿ ß«σαá¡Ñ-
  1511.         ¡¿∩ αѺπ½∞ΓáΓá ó αÑú¿ßΓαáσ DX:AX:
  1512.  
  1513.                 .
  1514.                 .
  1515.                 .
  1516.         MULTIPLY_BY_4  MACRO
  1517.                 sub   dx,dx
  1518.                 shl   ax,1
  1519.                 rcl   dx,1
  1520.                 shl   ax,1
  1521.                 rcl   dx,1
  1522.                 ENDM
  1523.                 .
  1524.                 .
  1525.                 .
  1526.                 mov   ax,[MemVar]
  1527.                 MULTIPLY_BY_4
  1528.                 mov   WORD PTR [Result],ax
  1529.                 mov   WORD PTR [Result+2],dx
  1530.                 .
  1531.                 .
  1532.                 .
  1533.  
  1534.              è«úñá Æπαí« ÇßßѼí½Ñα óßΓαÑτáÑΓ ¿¼∩ ¼á¬α«¬«¼á¡ñδ MULTIPLY_BY
  1535.         _4,  «¡ áßßÑ¼í½¿απÑΓ ó φΓ«⌐ Γ«τ¬Ñ 4 ¿¡ßΓαπ¬µ¿¿, ß«ßΓáó½∩εΘ¿Ñ Γѽ«
  1536.         ¼á¬α«¬«¼á¡ñδ.  ¥Γ« »«τΓ¿ Γ«ªÑ ßἫÑ, ¬á¬ Ñß½¿ íδ½á «»αÑñѽѡᠡ«-
  1537.  
  1538.         TASM2 #3-5/䫬               = 34 =
  1539.  
  1540.         óá∩ ¿¡ßΓαπ¬µ¿∩ MULTIPLY_BY_4,  ¬«Γ«αá∩ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ Γ«τ¡«
  1541.         ΓᬪÑ,  ¬á¬ óδ ¿ß»«½∞ºπÑΓÑ ¿¡ßΓαπ¬µ¿¿ MOV ¿½¿ MUL. è«¡Ñτ¡«, ¡«óá∩
  1542.         ¼á¬α«¿¡ßΓαπ¬µ¿∩ ß«ßΓ«¿Γ ¿º 5 ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086,  ¡« »α¿-
  1543.         óÑñÑ¡¡δ⌐ óδΦÑ ¬«ñ ú«αáºñ« ½ÑúτÑ τ¿ΓáÑΓß∩,  Ñß½¿ ¿ß»«½∞º«óáΓ∞ ¼á¬-
  1544.         α«¬«¼á¡ñπ, τѼ íѺ ¡ÑÑ.
  1545.  
  1546.              é¼ÑßΓ« ¼á¬α«¬«¼á¡ñδ  ó  ñá¡¡«¼  »α¿¼ÑαÑ óδ ¼«ú½¿ íδ ß αáó¡δ¼
  1547.         πß»Ñσ«¼ ¿ß»«½∞º«óáΓ∞ »«ñ»α«úαá¼¼π ß ¿¼Ñ¡Ñ¼ MyltiplyBy4:
  1548.  
  1549.                 .
  1550.                 .
  1551.                 .
  1552.         MultiplyBy4   PROC
  1553.                 sub   dx,dx
  1554.                 shl   ax,1
  1555.                 rcl   dx,1
  1556.                 shl   ax,1
  1557.                 rcl   dx,1
  1558.                 ret
  1559.         MultiplyBy4   ENDP
  1560.                 .
  1561.                 .
  1562.                 .
  1563.                 mov   ax,[MemVar]
  1564.                 call  MultiplyBy4
  1565.                 mov   WORD PTR [Result],ax
  1566.                 mov   WORD PTR [Result+2],dx
  1567.                 .
  1568.                 .
  1569.                 .
  1570.  
  1571.              ùΓ« ½πτΦÑ óδíαáΓ∞,  »«ñ»α«úαá¼¼π ¿½¿ ¼á¬α«¬«¼á¡ñπ?  é  «íΘѼ
  1572.         ß½πτáÑ  ¬«ñ  ¼Ñ¡∞ΦÑú«  «íΩѼᠠ¼«ª¡« »«½πτ¿Γ∞,  Ñß½¿ ¿ß»«½∞º«óáΓ∞
  1573.         »«ñ»α«úαá¼¼π,  »«ß¬«½∞¬π ÑÑ ¬«ñ áßßÑ¼í½¿απÑΓß∩ Γ«½∞¬« «ñ¿¡ αáº, á
  1574.         ó ΓѽѠ»α«úαá¼¼δ ß«ñÑαªáΓß∩ ó맮óδ. Äñ¡á¬« í«½ÑÑ íδßΓαδ⌐ ¬«ñ ¼«ª-
  1575.         ¡« »«½πτ¿Γ∞ ß »«¼«Θ∞ε ¼á¬α«¬«¼á¡ñ,  »«ß¬«½∞¬π ºñÑß∞  ¡Ñ  ΓÑα∩ÑΓß∩
  1576.         óαѼ∩ ¡á «Γαáí«Γ¬π ¿¡ßΓαπ¬µ¿⌐ CALL ¿ RET. èα«¼Ñ Γ«ú« «ñ¡π ¿ Γπ ªÑ
  1577.         ¼á¬α«¬«¼á¡ñπ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ úÑ¡Ñαᵿ¿ ñ½∩ á¡á½«ú¿τ¡δσ ºá-
  1578.         ñáτ ß½Ñú¬á «Γ½¿τáεΘÑú«ß∩ ¬«ñá, á »«ñ»α«úαá¼¼π ¡ÑΓ.
  1579.  
  1580.              é «íΘѼ ß½πτáÑ ½πτΦÑ ¿ß»«½∞º«óáΓ∞ »«ñ»α«úαá¼¼δ ñ½∩ ¼¿¡¿¼¿ºá-
  1581.         µ¿¿ «íΩѼᠬ«ñá ¿ ¼á¬α«¬«¼á¡ñδ ñ½∩ πóѽ¿τÑ¡¿∩ ß¬«α«ßΓ¿ ¿  ú¿í¬«ß-
  1582.         Γ¿.
  1583.  
  1584.              èᬫú« α«ñá  ú¿í¬«ßΓ∞  »αÑñ«ßΓáó½∩ÑΓ ¼á¬α«¬«¼á¡ñá?  ¥Γá ú¿í-
  1585.         ¬«ßΓ∞ «úαá¡¿τ¿óáÑΓß∩ Γ«½∞¬« óáΦ¿¼ ó««íαáªÑ¡¿Ñ¼,  Γᬠ¬á¬ ¼á¬α«¬«-
  1586.  
  1587.         TASM2 #3-5/䫬               = 35 =
  1588.  
  1589.         ¼á¡ñδ ¼«úπΓ ó«ß»α¿¡¿¼áΓ∞ »áαá¼ÑΓαδ ¿ ß«ñÑαªáΓ∞ ñ¿αÑ¬Γ¿óδ πß½«ó¡«-
  1590.         ú«  áßßÑ¼í½¿α«óá¡¿∩.  Åáαá¼ÑΓαδ  ¼á¬α«¬«¼á¡ñδ  π¬áºδóáεΓß∩,   ¬á¬
  1591.         «»Ñαá¡ñδ ñ¿αÑ¬Γ¿óδ MACRO. ìá»α¿¼Ñα, VALUE ¿ LENGTH - φΓ« »áαá¼ÑΓ-
  1592.         αδ ¼á¬α«¬«¼á¡ñδ FILL_ARRAY,  ¬«Γ«αá∩ «»αÑñѽѡá ß½ÑñπεΘ¿¼  «íαá-
  1593.         º«¼:
  1594.  
  1595.                 .
  1596.                 .
  1597.                 .
  1598.         FILL_ARRAY   MACRO   VALUE,LENGTH
  1599.                 REPT LENGTH
  1600.                 DB   VALUE
  1601.                 ENDM
  1602.                 ENDM
  1603.                 .
  1604.                 .
  1605.                 .
  1606.  
  1607.              Åα¿ ó맮óÑ  ¼á¬α«¬«¼á¡ñδ  ÑÑ »áαá¼ÑΓαδ ¼«ª¡« π¬áºδóáΓ∞,  ¬á¬
  1608.         «»Ñαá¡ñδ ó맮óá ¼á¬α«¬«¼á¡ñδ.  ìá»α¿¼Ñα,  ¼á¬α«¬«¼á¡ñπ FILL_ARRAY
  1609.         ¼«ª¡« óδºδóáΓ∞, ¬á¬:
  1610.  
  1611.                 .
  1612.                 .
  1613.                 .
  1614.         ByteArray LABEL     BYTE
  1615.                 FILL_ARRAY  2,9
  1616.                 .
  1617.                 .
  1618.                 .
  1619.  
  1620.              Åáαá¼ÑΓαδ, ¬«Γ«αδÑ π¬áºδóáεΓß∩ ó ó맮óÑ ¼á¬α«¬«¼á¡ñδ (2  ¿ 9
  1621.         ó »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ),  ¡áºδóáεΓß∩ Σá¬Γ¿τÑ߬¿¼¿ »áαá¼ÑΓαἿ. Åá-
  1622.         αá¼ÑΓαδ,  ¬«Γ«αδÑ π¬áºδóáεΓß∩ ó «»αÑñѽѡ¿¿ ¼á¬α«¬«¼á¡ñδ (VALUE ¿
  1623.         LENGTH  ó ñá¡¡«¼ »α¿¼ÑαÑ) ¡áºδóáεΓß∩ Σ«α¼á½∞¡δ¼¿ »áαá¼ÑΓαἿ. Åα¿
  1624.         ¬áªñ«¼ ó맮óÑ ¼á¬α«¬«¼á¡ñδ »ÑαÑñ ÑÑ αáßΦ¿αÑ¡¿Ñ¼ Σ«α¼á½∞¡δÑ  »áαá-
  1625.         ¼ÑΓαδ  πßΓá¡áó½¿óáεΓß∩ ó º¡áτÑ¡¿∩ ß««ΓóÑΓßΓóπεΘ¿σ Σá¬Γ¿τÑ߬¿σ »á-
  1626.         αá¼ÑΓα«ó. Å«φΓ«¼π:
  1627.  
  1628.                 .
  1629.                 .
  1630.                 .
  1631.         ByteArray  LABEL   BYTE
  1632.                 FILL_ARRAY 2,9
  1633.                 .
  1634.                 .
  1635.  
  1636.         TASM2 #3-5/䫬               = 36 =
  1637.  
  1638.                 .
  1639.  
  1640.         »α¿óÑñÑΓ ¬ ß½ÑñπεΘÑ¼π ¬«ñπ ¡á ÇßßѼí½ÑαÑ:
  1641.  
  1642.                 .
  1643.                 .
  1644.                 .
  1645.         ByteArray  LABEL   BYTE
  1646.                 REPT 9
  1647.                 DB   2
  1648.                 ENDM
  1649.                 .
  1650.                 .
  1651.                 .
  1652.  
  1653.              Åα¿ ¼á¬α«ó맮óÑ º¡áτÑ¡¿∩ Σá¬Γ¿τÑ߬¿σ »áαá¼ÑΓα«ó »«ñßΓáó½∩εΓ-
  1654.         ß∩  ó¼ÑßΓ«  Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó ó ¼á¬α««»αÑñѽѡ¿¿,  »«φΓ«¼π óδ
  1655.         ¼«ªÑΓÑ úÑ¡Ñα¿α«óáΓ∞ αẽ¿τ¡δ⌐ ¼á¬α«¬«ñ, »α«ßΓ« ¿º¼Ñ¡¿ó ó ¼á¬α«óδ-
  1656.         ºδóÑ Σá¬Γ¿τÑ߬¿Ñ »áαá¼ÑΓαδ.  ìá»α¿¼Ñα, Ñß½¿ óδ σ«Γ¿ΓÑ ¿¡¿µ¿á½¿º¿-
  1657.         α«óáΓ∞ ¼áßß¿ó ByteArray Γᬿ¼ «íαẫ¼, τΓ«íδ «¡ ¿¼Ñ½ ñ½¿¡π 8 íá⌐-
  1658.         Γ«ó ¿ º¡áτÑ¡¿Ñ 0FFh,  á ByteArray2 - τΓ«íδ «¡ ¿¼Ñ½ ñ½¿¡π 100 íá⌐-
  1659.         Γ«ó ¿ º¡áτÑ¡¿Ñ 0, óßÑ, τΓ« ¡πª¡« ñ½∩ φΓ«ú« ßñѽáΓ∞, φΓ«:
  1660.  
  1661.                 .
  1662.                 .
  1663.                 .
  1664.         ByteArray   LABEL  BYTE
  1665.                 FILL_ARRAY 0ffh,8
  1666.         ByteArray2  LABEL  BYTE
  1667.                 FILL_ARRAY 0,100h
  1668.                 .
  1669.                 .
  1670.                 .
  1671.  
  1672.              ö«α¼á½∞¡δÑ »áαá¼ÑΓαδ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ ¼á¬-
  1673.         α«¬«¼á¡ñδ.  Äñ¡á¬« ó«º¡¿¬áÑΓ »α«í½Ñ¼á, ¬«úñá Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ
  1674.         ß¼ÑΦ¿óáεΓß∩ ß ñαπú¿¼ ΓѬßΓ«¼. ìá»α¿¼Ñα, ó ¼á¬α«¬«¼á¡ñÑ:
  1675.  
  1676.                 .
  1677.                 .
  1678.                 .
  1679.         PUSH_WORD_REG  MACRO  RLETTER
  1680.                 push  RLETTERx
  1681.                 ENDM
  1682.                 .
  1683.                 .
  1684.  
  1685.         TASM2 #3-5/䫬               = 37 =
  1686.  
  1687.                 .
  1688.  
  1689.         Æπαí«  ÇßßѼí½Ñα  ¡Ñ  º¡áÑΓ,  ∩ó½∩ÑΓß∩  ½¿ ßΓα«¬á  RLETTER, ó¬½ε-
  1690.         τÑ¡¡á∩ ó RLETTERx,  ¿¼Ñ¡Ñ¼ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá, ¿½¿ τáßΓ∞ε «»Ñ-
  1691.         αá¡ñá  ¿¡ßΓαπ¬µ¿¿  PUSH,  »«φΓ«¼π «¡ »αÑñ»«½áúáÑΓ,  τΓ« φΓ« τáßΓ∞
  1692.         «»Ñαá¡ñá. Äñ¡á¬« ¼á½«óÑα«∩Γ¡«, τΓ« ºá¡ÑßÑ¡¿Ñ ó ßΓѬ RLETTERx »α¿-
  1693.         óÑñÑΓ ¬ πß»Ñσπ,  Γᬠ¬á¬ ¼«ªÑΓ «¬áºáΓ∞ß∩, τΓ« π óáß ÑßΓ∞ »ÑαѼѡ-
  1694.         ¡á∩ ß ΓѼ ªÑ ¿¼Ñ¡Ñ¼. é ½εí«¼ ß½πτáÑ ªÑ½áѼδ⌐ αѺπ½∞ΓáΓ »«½πτÑ¡ ¡Ñ
  1695.         íπñÑΓ.
  1696.  
  1697.              ÉÑΦÑ¡¿Ñ¼ ∩ó½∩ÑΓß∩  ºá¬½ετÑ¡¿Ñ  Σ«α¼á½∞¡«ú«  »áαá¼ÑΓαá ó »áαπ
  1698.         ß¿¼ó«½«ó &.  è«úñá Æπαí« ÇßßѼí½Ñα «í¡áαπª¿óáÑΓ ΓѬßΓ ¼á¬α«¬«¼á¡-
  1699.         ñδ,  ºá¬½ετÑ¡¡δ⌐ ó ß¿¼ó«½δ &,  «¡ »α«óÑα∩ÑΓ ß¡áτá½á,  ∩ó½∩ÑΓß∩ ½¿
  1700.         φëàΓѬßΓ ¿¼Ñ¡Ñ¼ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá.  àß½¿  φΓ«  Γá¬,  Γ«  «¡
  1701.         »«ñßΓáó½∩ÑΓ º¡áτÑ¡¿Ñ ñá¡¡«ú« »áαá¼ÑΓαá. àß½¿ Γᬫ⌐ ΓѬßΓ ¡Ñ ∩ó½∩-
  1702.         ÑΓß∩ ¿¼Ñ¡Ñ¼ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá,  Γ« Æπαí« ÇßßѼí½Ñα ¿ú¡«α¿απÑΓ
  1703.         á¼»Ñαßá¡ñδ (&).
  1704.  
  1705.              ìá»α¿¼Ñα, ß½ÑñπεΘÑÑ αáßΦ¿αÑ¡¿Ñ ¼á¬α«¬«¼á¡ñδ PUSH_WORD_REG:
  1706.  
  1707.                 .
  1708.                 .
  1709.                 .
  1710.         PUSH_WORD_REG   MACRO  RLETTER
  1711.                 push    &RLETTER&x
  1712.                 ENDM
  1713.                 .
  1714.                 .
  1715.                 .
  1716.                 PUSH_WORD_REG
  1717.  
  1718.         áßßÑ¼í½¿απÑΓß∩ ó push bp.
  1719.  
  1720.              Ç¼»Ñαßá¡ñδ ΓαÑíπεΓß∩ Γ«½∞¬« Γá¼,  úñÑ ßßδ½¬á  ¡á  Σ«α¼á½∞¡δ⌐
  1721.         »áαá¼ÑΓα ¡áσ«ñ¿Γß∩ »«ñ ó«»α«ß«¼. ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ ΓѬßΓÑ «¡¿
  1722.         ¡Ñ ¡πª¡δ:
  1723.  
  1724.                 .
  1725.                 .
  1726.                 .
  1727.         PUSH_WORD_REG   MACRO  REGISTER
  1728.                 push   REGISTER
  1729.                 ENDM
  1730.                 .
  1731.                 .
  1732.                 .
  1733.  
  1734.         TASM2 #3-5/䫬               = 38 =
  1735.  
  1736.  
  1737.              Äñ¡á¬« ¿ß»«½∞º«óá¡¿Ñ á¼»Ñαßá¡ñ«ó ¡¿¬á¬«ú« óαÑñá ¡Ñ »α¿¡ÑßÑΓ,
  1738.         »«φΓ«¼π ½πτΦÑ ¿ß»«½∞ºπ⌐ΓÑ ¿σ ó Γ«¼ ß½πτáÑ,  Ñß½¿ óδ ß«¼¡ÑóáÑΓÑß∞,
  1739.         ¡πª¡δ «¡¿, ¿½¿ ¡ÑΓ.
  1740.  
  1741.  
  1742.  
  1743.  
  1744.         TASM2 #3-5/䫬               = 39 =
  1745.  
  1746.                                 é½«ªÑ¡¡δÑ ¼á¬α«¬«¼á¡ñδ                         
  1747.         -----------------------------------------------------------------
  1748.  
  1749.              èᬠóδ πªÑ ó¿ñѽ¿, ¼á¬α«¬«¼á¡ñδ ¼«úπΓ ß«ñÑαªáΓ∞ í½«¬¿ »«óΓ«-
  1750.         αÑ¡¿∩.  îá¬α«¬«¼á¡ñδ ¼«úπΓ ΓᬪѠ óδºδóáΓ∞  ñαπú¿Ñ  ¼á¬α«¬«¼á¡ñδ.
  1751.         ìá»α¿¼Ñα:
  1752.  
  1753.                 .
  1754.                 .
  1755.                 .
  1756.         PUSH_WORD_REG   MACRO  REGISTER
  1757.                 push   REGISTER
  1758.                 ENDM
  1759.                 .
  1760.                 .
  1761.                 .
  1762.         PUSH_ALL_REG   MACRO
  1763.                 IRP    REG,<AX,BX,CX,DX,SI,DI,BP,SP>
  1764.                 PUSH_WORD_REG  REG
  1765.                 ENDM
  1766.                 .
  1767.                 .
  1768.                 .
  1769.  
  1770.              çñÑß∞ ¼á¬α«¬«¼á¡ñá PUSH_ALL_REG  ß«ñÑαª¿Γ  í½«¬  »«óΓ«αÑ¡¿∩,
  1771.         ¬«Γ«αδ⌐,    ó   ßó«ε   «τÑαÑñ∞,   ß«ñÑαª¿Γ   óδº«ó   ¼á¬α«¬«¼á¡ñδ
  1772.         PUSH_ALL_REG.
  1773.  
  1774.  
  1775.  
  1776.  
  1777.         TASM2 #3-5/䫬               = 40 =
  1778.  
  1779.                                 îá¬α«¬«¼á¡ñδ ¿ πß½«ó¿∩                         
  1780.         -----------------------------------------------------------------
  1781.  
  1782.              é«º¼«ª¡«, ¡á¿í«½ÑÑ ¼«Θ¡«Ñ ßαÑñßΓó«,  ñ«ßΓπ»¡«Ñ ó ¼á¬α«¬«¼á¡-
  1783.         ñáσ, - φΓ« ó«º¼«ª¡«ßΓ∞ ó¬½ετáΓ∞ ó ¡¿σ ñ¿αÑ¬Γ¿óδ πß½«ó¡«ú« áßßѼí-
  1784.         ½¿α«óá¡¿∩.  ¥Γ« »«ºó«½∩ÑΓ «ñ¡«⌐ ¼á¬α«¬«¼á¡ñÑ áßßÑ¼í½¿α«óáΓ∞  αáº-
  1785.         ½¿τ¡δÑ ó¿ñδ ¬«ñá, ó ºáó¿ß¿¼«ßΓ¿ «Γ ß«ßΓ«∩¡¿∩ »α¿αáó¡Ñ¡¡δσ ¼ÑΓ«¬ ¿
  1786.         »áαá¼ÑΓα«ó ¬áªñ«ú« ó맮óá ¼á¬α«¬«¼á¡ñδ.
  1787.  
  1788.              äáóá⌐ΓÑ óÑα¡Ñ¼ß∩  ¬ »«¬áºá¡¡«¼π  αá¡ÑÑ »α¿¼Ñαπ ¼á¬α«¬«¼á¡ñδ,
  1789.         óδ»«½¡∩εΘÑ⌐ π¼¡«ªÑ¡¿Ñ. é ñá¡¡«¼ ß½πτáÑ, Ñß½¿ ¼¡«ª¿Γѽ∞ »ÑαÑñáóáÑ-
  1790.         ¼δ⌐ ¼á¬α«¬«¼á¡ñÑ,  »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßΓѻѡ∞ τ¿ß½á 2, Γ« ñ½∩ í«-
  1791.         ½ÑÑ  íδßΓα«ú« óδ»«½¡Ñ¡¿∩ π¼¡«ªÑ¡¿∩ ¼δ íπñѼ ¿ß»«½∞º«óáΓ∞ ¿¡ßΓαπ¬-
  1792.         µ¿¿ ßñó¿úá ¿ µ¿¬½¿τÑ߬«ú« ßñó¿úá, á ó »α«Γ¿ó¡«¼ ß½πτáÑ ¿ß»«½∞ºπѼ
  1793.         ¿¡ßΓαπ¬µ¿ε MUL. îá¬α«¬«¼á¡ñá óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1794.  
  1795.                 .
  1796.                 .
  1797.                 .
  1798.         MULTIPLY MACRO  FACTOR
  1799.         ;
  1800.         ; Åα«óÑα¿Γ∞, ∩ó½∩ÑΓß∩ ½¿ FACTOR ßΓѻѡ∞ε 2
  1801.         ;
  1802.         IS_POWER_OF_TWO  = 0
  1803.         COUNT            = 15
  1804.         POWER_OF_TWO     = 800h
  1805.                 REPT     16
  1806.         IF POWER_OF_TWO EQ FACTOR
  1807.         IS_POWER_OF_TWO  = 1          ; ¼¡«ª¿Γѽ∞ »αÑñßΓáó½∩ÑΓ
  1808.                                       ; ß«í«⌐ ßΓѻѡ∞ τ¿ß½á 2
  1809.                 EXITM
  1810.         ENDIF
  1811.         COUNT            = COUNT - 1
  1812.         POWER_OF_TWO     = POWER_OF_TWO SHR 1
  1813.                 ENDM
  1814.  
  1815.         IF IS_POWER_OF_TWO
  1816.                 sub   dx,dx
  1817.                 REPT  COUNT
  1818.                 shl   al,1
  1819.                 rcl   dx,1
  1820.                 ENDM
  1821.         ELSE
  1822.                 mov   dx,FACTOR
  1823.                 mul   dx
  1824.         ENDIF
  1825.  
  1826.         TASM2 #3-5/䫬               = 41 =
  1827.  
  1828.                 ENDM
  1829.                 .
  1830.                 .
  1831.                 .
  1832.  
  1833.              MULTIPLY ó σ«ñÑ αáí«Γδ »α«óÑα∩ÑΓ,  óδ»«½¡∩ÑΓß∩ ½¿  π¼¡«ªÑ¡¿Ñ
  1834.         ¡á ßΓѻѡ∞ 2, ¿ áßßÑ¼í½¿απÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ ¬«ñ. Å«φΓ«¼π ¬«ñ:
  1835.  
  1836.                 MULTIPLY 10
  1837.  
  1838.         áßßÑ¼í½¿απÑΓß∩ ó:
  1839.  
  1840.                 .
  1841.                 .
  1842.                 .
  1843.                 mov   dx,10
  1844.                 mul   dx
  1845.                 .
  1846.                 .
  1847.                 .
  1848.  
  1849.         á ¬«ñ:
  1850.  
  1851.                 MULTIPLY 8
  1852.  
  1853.         áßßÑ¼í½¿απÑΓß∩ ó ß½ÑñπεΘ¿⌐ ó¿ñ:
  1854.  
  1855.                 .
  1856.                 .
  1857.                 .
  1858.                 sub   dx,dx
  1859.                 shl   ax,1
  1860.                 rcl   dx,1
  1861.                 shl   ax,1
  1862.                 rcl   dx,1
  1863.                 shl   ax,1
  1864.                 rcl   dx,1
  1865.                 .
  1866.                 .
  1867.                 .
  1868.  
  1869.              ìπª¡« πτ¿ΓδóáΓ∞,  τΓ« αáßΦ¿αÑ¡¿Ñ ¼á¬α«¬«¼á¡ñ óδ»«½¡∩ÑΓß∩  ó«
  1870.         óαѼ∩  áßßÑ¼í½¿α«óá¡¿∩,  á  ¡Ñ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩.  èáªñδ⌐ ó맮ó
  1871.         ¼á¬α«¬«¼á¡ñδ MULTIPLY »α¿ó«ñ¿Γ ¬ áßßÑ¼í½¿α«óá¡¿ε ¡«ó«ú« ¬«ñá: ñ¿-
  1872.         αÑ¬Γ¿óá  IF ó φΓ«⌐ ¼á¬α«¬«¼á¡ñÑ «»αÑñѽ∩ÑΓ,  ¬á¬¿Ñ ¿¡ßΓαπ¬µ¿¿ áß-
  1873.         ßÑ¼í½¿α«óáΓ∞.  ìÑ »πΓá⌐ΓÑ ¼á¬α«¬«¼á¡ñδ ß »«ñ»α«úαἼἿ, á πß½«ó-
  1874.  
  1875.         TASM2 #3-5/䫬               = 42 =
  1876.  
  1877.         ¡«Ñ  áßßÑ¼í½¿α«óá¡¿Ñ  ß  «»ÑαáΓ«αἿ  if  ¿ á¡á½«ú¿τ¡δ¼¿ ó ∩ºδ¬áσ
  1878.         óδß«¬«ú« πα«ó¡∩.
  1879.  
  1880.                                                                                
  1881.         çáóÑαΦÑ¡¿Ñ ¼á¬α«αáßΦ¿αÑ¡¿∩ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ EXITM
  1882.         -----------------------------------------------------------------
  1883.  
  1884.              é »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ ß«ñÑনΓß∩ ñ¿αÑ¬Γ¿óá,  ¬«Γ«απε ¼δ ñ« ß¿σ
  1885.         »«α ¡Ñ αáßß¼áΓα¿ó὿ - ñ¿αÑ¬Γ¿óá EXITM.  ¥Γá ñ¿αÑ¬Γ¿óá  π¬áºδóáÑΓ
  1886.         Æπαí« ÇßßѼí½Ñαπ,  τΓ« ¡πª¡« »αѬαáΓ¿Γ∞ αáßΦ¿αÑ¡¿Ñ ΓѬπΘÑ⌐ ¼á¬α«-
  1887.         ¬«¼á¡ñδ ¿½¿ í½«¬á »«óΓ«αÑ¡¿∩.  àß½¿ ªÑ ΓѬπΘá∩  ¼á¬α«¬«¼á¡ñá  ¿½¿
  1888.         í½«¬ »«óΓ«αÑ¡¿∩ ∩ó½∩ÑΓß∩ ó½«ªÑ¡¡δ¼ »« «Γ¡«ΦÑ¡¿ε ¬ ñαπú«⌐ ¼á¬α«¬«-
  1889.         ¼á¡ñÑ ¿½¿ í½«¬π »«óΓ«αÑ¡¿∩, Γ« αáßΦ¿αÑ¡¿Ñ ó¡ÑΦ¡Ñú« í½«¬á »«óΓ«αÑ-
  1890.         ¡¿∩ ¿½¿ ¼á¬α«¬«¼á¡ñδ »α«ñ«½ªáÑΓß∩.
  1891.  
  1892.              é ¡áΦѼ  »α¿¼ÑαÑ ñ¿αÑ¬Γ¿óá EXITM »αѬαáΘáÑΓ αáßΦ¿αÑ¡¿Ñ í½«¬á
  1893.         »«óΓ«αÑ¡¿∩,  ß«ñÑαªáΘÑú« EXITM,  «ñ¡á¬«  αáßΦ¿αÑ¡¿Ñ  ¼á¬α«¬«¼á¡ñδ
  1894.         MULTIPLY,  ¬«Γ«αá∩ ß«ñÑαª¿Γ í½«¬ »«óΓ«αÑ¡¿∩, »α«ñ«½ªáÑΓß∩. öá¬Γ¿-
  1895.         τÑ߬¿ ó ñá¡¡«¼ »α¿¼ÑαÑ ¿¡ßΓαπ¬µ¿¿ REPT ¿ EXITM ¿ß»«½∞ºπεΓß∩  ß«ó-
  1896.         ¼ÑßΓ¡« ñ½∩ »«½πτÑ¡¿∩ á¡á½«úá µ¿¬½á while ó ∩ºδ¬Ñ æ¿.  çñÑß∞ «»∩Γ∞
  1897.         ¡πª¡« π»«¼∩¡πΓ∞ « Γ«¼, τΓ« µ¿¬½ while ó MULTIPLY - φΓ« µ¿¬½ φΓá»á
  1898.         áßßÑ¼í½¿α«óá¡¿∩,  »«ºó«½∩εΘ¿⌐ «»αÑñѽ¿Γ∞, ¬á¬«⌐ ¬«ñ ¡πª¡« áßßѼí-
  1899.         ½¿α«óáΓ∞, á ¡Ñ µ¿¬½ φΓá»á óδ»«½¡Ñ¡¿∩.
  1900.  
  1901.  
  1902.  
  1903.  
  1904.         TASM2 #3-5/䫬               = 43 =
  1905.  
  1906.                         Ä»αÑñѽѡ¿Ñ ¼ÑΓ«¬ ß »«¼«Θ∞ε ¼á¬α«¬«¼á¡ñ                
  1907.         -----------------------------------------------------------------
  1908.  
  1909.              Äñ¡á ¿º  »«ΓÑ¡µ¿á½∞¡δσ  »α«í½Ñ¼  ó  ¼á¬α«¬«¼á¡ñáσ ó«º¡¿¬áÑΓ,
  1910.         ¬«úñá óδ σ«Γ¿ΓÑ «»αÑñѽ¿Γ∞ ó ¼á¬α«¬«¼á¡ñÑ ¼ÑΓ¬π. ìá»α¿¼Ñα, ß½Ññπ-
  1911.         εΘ¿⌐  ¬«ñ  »α¿óÑñÑΓ  ¬  «Φ¿í¬Ñ ¿º-ºá »«óΓ«α¡«ú« «»αÑñѽѡ¿∩ ¼ÑΓ¬¿
  1912.         SkipLabel, »«ß¬«½∞¬π φΓá ¼ÑΓ¬á «»αÑñѽ∩ÑΓß∩ ó αáßΦ¿αÑ¡¿¿ ¼á¬α«¬«-
  1913.         ¼á¡ñδ DO_DEC:
  1914.  
  1915.                 .
  1916.                 .
  1917.                 .
  1918.         DO_DEC  MACRO
  1919.                 jcxz   SkipLabel
  1920.                 dec    cx
  1921.         SkipLabel:
  1922.                 ENDM
  1923.                 .
  1924.                 .
  1925.                 .
  1926.                 DO_DEC
  1927.                 .
  1928.                 .
  1929.                 .
  1930.                 DO_DEC
  1931.                 .
  1932.                 .
  1933.                 .
  1934.  
  1935.                è ßτáßΓ∞ε,  ó Æπαí« ÇßßѼí½ÑαÑ »αÑñπß¼«ΓαÑ¡« »α«ßΓ«Ñ αÑΦÑ-
  1936.         ¡¿Ñ ñá¡¡«⌐ »α«í½Ñ¼δ ó ó¿ñÑ ñ¿αÑ¬Γ¿óδ LOCAL.  ¥Γá ñ¿αÑ¬Γ¿óá ó ¼á¬-
  1937.         α«¬«¼á¡ñÑ  »α¿ó«ñ¿Γ ¬ Γ«¼π,  τΓ« «í½áßΓ∞ ñÑ⌐ßΓó¿∩ π¬áºá¡¡«⌐ ¼ÑΓ¬¿
  1938.         ¿½¿ ¼ÑΓ«¬ «úαá¡¿τ¿óáÑΓß∩ ñá¡¡«⌐ ¼á¬α«¬«¼á¡ñ«⌐. ìá»α¿¼Ñα, ñ¿αÑ¬Γ¿-
  1939.         óπ  LOCAL ¼«ª¡« ¿ß»«½∞º«óáΓ∞,  τΓ«íδ »α¿óÑßΓ¿ »αÑñδñπΘ¿⌐ »α¿¼Ñα ¬
  1940.         ¬«ααÑ¬Γ¡«¼π ó¿ñπ:
  1941.  
  1942.                 .
  1943.                 .
  1944.                 .
  1945.         DO_DEC  MACRO
  1946.                 LOCAL  SkipLabel
  1947.                 jcxz   SkipLabel
  1948.                 dec    cx
  1949.         SkipLabel:
  1950.                 ENDM
  1951.                 .
  1952.  
  1953.         TASM2 #3-5/䫬               = 44 =
  1954.  
  1955.                 .
  1956.                 .
  1957.                 DO_DEC
  1958.                 .
  1959.                 .
  1960.                 .
  1961.                 DO_DEC
  1962.                 .
  1963.                 .
  1964.                 .
  1965.  
  1966.              àß½¿ ñ¿αÑ¬Γ¿óá LOCAL ¿ß»«½∞ºπÑΓß∩ ó ¼á¬α«¬«¼á¡ñÑ, «¡á ñ«½ª¡á
  1967.         π¬áºδóáΓ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ºá ñ¿αÑ¬Γ¿ó«⌐ MACRO.  æ »«¼«Θ∞ε «ñ¡«⌐
  1968.         ñ¿αÑ¬Γ¿óδ  LOCAL ½«¬á½∞¡δ¼¿ ¼«ª¡« «íΩ∩ó¿Γ∞ ¡Ñ߬«½∞¬« ¼ÑΓ«¬. î«ª¡«
  1969.         ΓᬪѠ¿ß»«½∞º«óáΓ∞ ¡Ñ߬«½∞¬« ñ¿αÑ¬Γ¿ó LOCAL:
  1970.  
  1971.                 .
  1972.                 .
  1973.                 .
  1974.         TEST_MACRO  MACRO
  1975.                 LOCAL  LoopTop,LoopEnd,SkipInc
  1976.                 LOCAL  NoEvent,MacroDone
  1977.                 .
  1978.                 .
  1979.                 .
  1980.                 ENDM
  1981.                 .
  1982.                 .
  1983.                 .
  1984.  
  1985.              ê¼Ñ¡á, »α¿ßóá¿óáѼδÑ ó  ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  ½«¬á½∞¡δ¼  ¼ÑΓ¬á¼,
  1986.         ¿¼ÑεΓ ó¿ñ:
  1987.  
  1988.                ??XXXX
  1989.  
  1990.         úñÑ XXXX  -  φΓ«  ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ  τ¿ß½«  ó  ñ¿á»áº«¡Ñ  «Γ 0 ñ«
  1991.         0FFFFh. æ½Ññ«óáΓѽ∞¡«, óδ ¡Ñ ñ«½ª¡δ »α¿ßóá¿óáΓ∞ óáΦ¿¼ ¼ÑΓ¬á¼ ¿¼Ñ-
  1992.         ¡á,  ¬«Γ«αδÑ ¡áτ¿¡áεΓß∩ ß ß¿¼ó«½«ó ??, ¿¡áτÑ φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬
  1993.         ¬«¡Σ½¿¬Γπ ß ½«¬á½∞¡δ¼¿ ¼ÑΓ¬á¼¿,  úÑ¡Ñα¿απÑ¼δ¼¿ Æπαí« ÇßßѼí½Ñα«¼.
  1994.  
  1995.              Ä»ÑαѪáεΘ¿Ñ ßß佬¿ ¡á ¼á¬α«¬«¼á¡ñδ ¡Ñ ñ«»π߬áεΓß∩:  ¼á¬α«¬«-
  1996.         ¼á¡ñδ  ñ«½ª¡δ «»αÑñѽ∩Γ∞ß∩ ñ« Γ«ú«,  ¬á¬ «¡¿ óδºδóáεΓß∩.  é ßóÑΓÑ
  1997.         Γ«ú«, τΓ« αá¡ÑÑ ú«ó«α¿½«ß∞ ¡á¼¿ «í «»ÑαѪáεΘ¿σ ßß佬áσ, φΓ« ¿¼ÑÑΓ
  1998.         «»αÑñѽѡ¡δ⌐  ß¼δß½,  Γᬠ ¬á¬ Æπαí« ÇßßѼí½Ñα ¡Ñ º¡áÑΓ,  ß¬«½∞¬«
  1999.         íá⌐Γ  ¡πª¡« αѺÑαó¿α«óáΓ∞  ñ½∩ ¼á¬α«¬«¼á¡ñδ,  ¡á ¬«Γ«απε  ¿¼ÑÑΓß∩
  2000.         «»ÑαѪáεΘá∩  ßß佬á.  Äñ¡á¬«  ß ñαπú«⌐ ßΓ«α«¡δ ¼á¬α«¬«¼á¡ñδ ¼«ª¡«
  2001.  
  2002.         TASM2 #3-5/䫬               = 45 =
  2003.  
  2004.         «»αÑñѽ∩Γ∞ ó ½εí«¼ ¼ÑßΓÑ ¿ßσ«ñ¡«ú« ¼«ñπ½∩.
  2005.  
  2006.              é ¼á¬α«¬«¼á¡ñÑ ¼«ªÑΓ ß«ñÑαªáΓ∞ß∩ ½εíá∩ ñ«»πßΓ¿¼á∩ ó  ÇßßѼí-
  2007.         ½ÑαÑ ßΓ᫬á.  ¥Γ« ó¬½ετáÑΓ ó ßÑí∩ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ñá¡¡δσ, á
  2008.         ΓᬪѠ¬«ñ ¿ ñáªÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  óßÑ Γ¿»δ ¼ÑΓ«¬
  2009.         ¿ ñ¿αÑ¬Γ¿óδ π»αáó½Ñ¡¿∩ ½¿ßΓ¿¡ú«¼.
  2010.  
  2011.              ê¼ÑÑΓß∩ ¡Ñ߬«½∞¬«  ñ¿αÑ¬Γ¿ó,  ¬«Γ«αδÑ ß«ºñá¡δ ß»Ñµ¿á½∞¡« ñ½∩
  2012.         ¿ß»«½∞º«óá¡¿∩  ó  ¼á¬α«¬«¼á¡ñáσ.  ¥Γ«  ñ¿αÑ¬Γ¿óδ  IFDIF,   IFIDN,
  2013.         IFDIFI, IFIDNI,  IFB ¿ IFNB. àßΓ∞ ΓᬪѠ¡Ñ߬«½∞¬« ñ¿αÑ¬Γ¿ó πß½«ó-
  2014.         ¡«⌐ «íαáí«Γ¬¿ «Φ¿í«¬,  ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ó ¼á¬α«¬«¼á¡ñáσ.  ¥Γ«
  2015.         ñ¿αÑ¬Γ¿óδ ERRDIF, ERRIDN, ERRDIFI, ERRIDNI, ERRB ¿ ERRNB. Äí φΓ¿σ
  2016.         ñ¿αÑ¬Γ¿óáσ αáß߬áºδóáÑΓß∩  ó â½áóÑ 6 ¿ ó "æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ"
  2017.         (ó â½áóÑ 3).
  2018.  
  2019.              ê¼ÑÑΓß∩ ΓᬪѠ¡Ñ߬«½∞¬« ß»Ñµ¿á½∞¡δσ «»Ñαᵿ⌐,  ¬«Γ«αδÑ ¼«ª¡«
  2020.         ¿ß»«½∞º«óáΓ∞ ó ¼á¬α«¬«¼á¡ñáσ:
  2021.  
  2022.                 &            Ä»Ñαᵿ∩ »«ñßΓá¡«ó¬¿
  2023.                 <>           æΓ᫬«óá∩ «»Ñαᵿ∩ ½¿ΓÑαá½∞¡«ú« ΓѬßΓá
  2024.                 !            Ä»Ñαᵿ∩ ß¿¼ó«½á ó ¬áóδτ¬áσ
  2025.                 %            Ä»Ñαᵿ∩ óδτ¿ß½Ñ¡¿∩ óδαáªÑ¡¿∩
  2026.                 ;;           Å«ñáó½Ñ¡¿Ñ ¬«¼¼Ñ¡Γáα¿∩
  2027.  
  2028.              Ä»Ñαᵿ∩ »«ñßΓᡫ󬿠 &  «íßπªñá½áß∞  ó  »αÑñδñπΘѼ αáºñѽÑ,
  2029.         »«ßó∩ΘÑ¡¡«¼ ¼á¬α«¬«¼á¡ñá¼.  ¥Γ¿ ¿ ñαπú¿Ñ ß»Ñµ¿á½∞¡δÑ «»Ñαᵿ¿ í«-
  2030.         ½ÑÑ »«½¡« «»αÑñѽ∩εΓß∩ ó "æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ".
  2031.  
  2032.                                Éáºó¿ΓδÑ ßΓαπ¬Γπαδ ñá¡¡δσ                       
  2033.         -----------------------------------------------------------------
  2034.  
  2035.              ä½∩ «í½ÑúτÑ¡¿∩ Σπ¡¬µ¿⌐ π»αáó½Ñ¡¿∩ ß½«ª¡δ¼¿ ßΓαπ¬ΓπαἿ  ñá¡-
  2036.         ¡δσ ó Æπαí« ÇßßѼí½ÑαÑ »αÑñπß¼«ΓαÑ¡δ Γα¿ ñ¿αÑ¬Γ¿óδ: STRUC, RECORD
  2037.         ¿ UNION.  éδ ó«º¼«ª¡« ºá¼ÑΓ¿½¿, τΓ« ¡áºóá¡¿∩ φΓ¿σ ñ¿αÑ¬Γ¿ó á¡á½«-
  2038.         ú¿τ¡δ ΓѼ,  ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩.  äÑ⌐ß-
  2039.         Γó¿Γѽ∞¡«, ÑßΓ∞ ¡Ñ¬«Γ«α«Ñ »«ñ«í¿Ñ ¼Ñªñπ ñ¿αÑ¬Γ¿óἿ ßΓαπ¬Γπα ñá¡-
  2040.         ¡δσ  Æπαí«  ÇßßѼí½Ñαá  ¿  ΓѼ¿,  ¬«Γ«αδÑ  ¿ß»«½∞ºπεΓß∩  ó ∩ºδ¬áσ
  2041.         óδß«¬«ú« πα«ó¡∩.
  2042.  
  2043.              Äñ¡á¬« ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßΓαπ¬Γπα ñá¡¡δσ ó ∩ºδ¬Ñ ÇßßѼí-
  2044.         ½Ñαá,  íπñπτ¿ »«½Ñº¡δ¼¿, ∩ó½∩εΓß∩ ΓѼ ¡Ñ ¼Ñ¡ÑÑ ¡Ñ Γᬿ¼¿ αáºó¿Γδ-
  2045.         ¼¿, ¬á¬ ¿ß»«½∞ºπεΘ¿Ñß∩ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩. ìá»α¿¼Ñα, ó ∩ºδ-
  2046.         ¬Ñ  ÇßßѼí½Ñαá  «í½áßΓ∞  ñÑ⌐ßΓó¿∩  ¿¼Ñ¡¿  φ½Ñ¼Ñ¡Γá  ßΓαπ¬Γπαδ  ¡Ñ
  2047.         «úαá¡¿τ¿óáÑΓß∩ φΓ«⌐  ßΓαπ¬Γπα«⌐,  »«φΓ«¼π  ¿¼∩  ¬áªñ«ú«  φ½Ñ¼Ñ¡Γá
  2048.         ßΓαπ¬Γπαδ ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡« ó ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ.
  2049.  
  2050.         TASM2 #3-5/䫬               = 46 =
  2051.  
  2052.  
  2053.              èα«¼Ñ Γ«ú«,  ó  «Γ½¿τ¿Ñ «Γ ∩ºδ¬«ó æ¿ ¿ Åá߬á½∞,  ó ∩ºδ¬Ñ Çß-
  2054.         ßѼí½Ñαá ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßΓαπ¬Γπα ñá¡¡δσ - φΓ«  πñ«íßΓó«, á
  2055.         ¡Ñ ¡Ñ«íσ«ñ¿¼«ßΓ∞:  ¼«ª¡« αáí«ΓáΓ∞ ß« ßΓαπ¬ΓπαἿ ºá»¿ßÑ⌐, ñá¡¡δ¼¿
  2056.         ¿ «íΩÑñ¿¡Ñ¡¿∩¼¿ ÇßßѼí½Ñαá  ¡Ñ  ¿ß»«½∞ºπ∩  ñ¿αÑ¬Γ¿óδ  «»αÑñѽѡ¿∩
  2057.         ßΓαπ¬Γπα  ñá¡¡δσ.  ÆÑ¼  ¡Ñ  ¼Ñ¡ÑÑ φΓ¿ ñ¿αÑ¬Γ¿óδ «τÑ¡∞ πñ«í¡δ ¿ ¿σ
  2058.         ßΓ«¿Γ ¿ºπτ¿Γ∞.
  2059.  
  2060.              æ½ÑñπεΘÑÑ ¡¿ªÑ «íßπªñÑ¡¿Ñ «Γ¡«ß¿Γß∩ ¬ Æπαí« ÇßßѼí½Ñαπ,  αá-
  2061.         í«ΓáεΘѼπ  ó  αѪ¿¼Ñ MASM.  é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ (Ideal) Æπαí« Çß-
  2062.         ßѼí½Ñα »«ññÑনóáÑΓ º¡áτ¿Γѽ∞¡« í«½ÑÑ ¼«Θ¡δÑ Σ«α¼δ ñ¿αÑ¬Γ¿ó  «»-
  2063.         αÑñѽѡ¿∩  ßΓαπ¬Γπα  ñá¡¡δσ.  Ä αáßΦ¿αÑ¡¡δσ ßαÑñßΓóáσ π½πτΦÑ¡¡«ú«
  2064.         αѪ¿¼á ¼«ª¡« »α«τ¿ΓáΓ∞ ó â½áóÑ 11.
  2065.  
  2066.              ÅÑαÑñ ΓѼ,  ¬á¬ ¼δ ¡áτ¡Ñ¼ αáß߬áºδóáΓ∞ «  ßΓαπ¬Γπαáσ  ñá¡¡δσ
  2067.         Æπαí« ÇßßѼí½Ñαá,  ßΓ«¿Γ ßñѽáΓ∞ «ñ¡« ºá¼Ñτá¡¿Ñ:  Ñß½¿ ¡á ¡¿σ «Γ-
  2068.         ßπΓßΓóπεΓ ó ¿¡ßΓαπ¬µ¿∩σ ¿ ñ¿αÑ¬Γ¿óáσ «»ÑαѪáεΘ¿Ñ ßß佬¿, ßΓαπ¬Γπ-
  2069.         αδ,  ºá»¿ß¿ ¿ «íΩÑñ¿¡Ñ¡¿∩ ¼«úπΓ ß«ñÑαªáΓ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ ΓѬßΓá.
  2070.  
  2071.                                     ä¿αÑ¬Γ¿óá STRUC                            
  2072.         -----------------------------------------------------------------
  2073.  
  2074.              ä¿αÑ¬Γ¿óπ STRUC,  ¬«Γ«αá∩ »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞ ßΓαπ¬Γπαπ
  2075.         ñá¡¡δσ,  »«½Ñº¡«  «»αÑñѽ¿Γ∞  ó Γ«¼ ß½πτáÑ,  ¬«úñá óá¼ »α¿σ«ñ¿Γß∩
  2076.         ¿¼ÑΓ∞ ñѽ« ß ñá¡¡δ¼¿, αáºñѽѡ¡δ¼¿ ¡á ½«ú¿τÑ߬¿Ñ úαπ»»δ.
  2077.  
  2078.              ä½∩ ΓÑσ, ¬Γ« º¡á¬«¼ ß ∩ºδ¬«¼ æ¿, ñ¿αÑ¬Γ¿óá STRUC á¡á½«ú¿τ¡á∩
  2079.         «»ÑαáΓ«απ ßΓαπ¬Γπαδ ∩ºδ¬á æ¿.
  2080.  
  2081.              ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼,  τΓ«  óδ  σ«Γ¿ΓÑ «»αÑñѽ¿Γ∞ ßΓαπ¬Γπαπ
  2082.         ñá¡¡δσ,  ß«ñÑαªáΘπε ¿¼∩, ó«ºαáßΓ ¿ ñ«σ«ñ ñ½∩ «ñ¡«ú« »«½∞º«óáΓѽ∩.
  2083.         é«Γ φΓá ßΓαπ¬Γπαá:
  2084.  
  2085.            CLIENT    STRUC
  2086.            NAME      DB        'çñÑß∞ π¬áºδóáÑΓß∩ ¿¼∩...'
  2087.            AGE       DW        ?
  2088.            INCOME    DD        ?
  2089.            CLIENT    ENDS
  2090.  
  2091.              æΓαπ¬Γπαá CLIENT (»«½∞º«óáΓѽ∞) ß«ñÑαª¿Γ Γα¿ »«½∩: »«½Ñ NAME
  2092.         ß«ñÑαª¿Γ ¿¼∩ (ñ« 20 ß¿¼ó«½«ó ñ½¿¡«⌐),  »«½Ñ AGE ß«ñÑαª¿Γ ó«ºαáßΓ,
  2093.         ¬«Γ«αδ⌐ σαá¡¿Γß∩,  ¬á¬ 16-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, ¿ »«½Ñ INCOME, ß«ñÑα-
  2094.         ªáΘÑÑ ñ«σ«ñ (σαá¡¿Γß∩, ¬á¬ 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ).
  2095.  
  2096.              æΓαπ¬Γπαπ CLIENT ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  2097.  
  2098.         TASM2 #3-5/䫬               = 47 =
  2099.  
  2100.  
  2101.                 .
  2102.                 .
  2103.                 .
  2104.            CLIENT    STRUC
  2105.            NAME      DB        'çñÑß∞ π¬áºδóáÑΓß∩ ¿¼∩...'
  2106.            AGE       DW        ?
  2107.            INCOME    DD        ?
  2108.            CLIENT    ENDS
  2109.                 .
  2110.                 .
  2111.                 .
  2112.                 .DATA
  2113.         MisterBark   CLIENT    <'John Q. Bark',32,10000>
  2114.                 .
  2115.                 .
  2116.                 .
  2117.                 .CODE
  2118.                 .
  2119.                 .
  2120.                 .
  2121.                 mov     ax,[MisterBark.Age]
  2122.                 mov     bx,OFFSET MisterBark
  2123.                 mov     ax,WORD PTR [bx.INCOME]
  2124.                 mov     dx,WORD PTR [bx.INCOME+2]
  2125.                 .
  2126.                 .
  2127.                 .
  2128.  
  2129.              ¥Γ«Γ »α¿¼Ñα ßΓ«¿Γ »«ñα«í¡« αáßß¼«ΓαÑΓ∞. ÄΓ¼ÑΓ¿¼ ß¡áτá½á, τΓ«
  2130.         «»αÑñѽѡ¿∩ ßΓαπ¬Γπαδ ºáóÑαΦáεΓß∩ ñ¿αÑ¬Γ¿ó«⌐ ENDS.  ¥Γ« ΓᠪѠñ¿-
  2131.         αÑ¬Γ¿óá,  τΓ« ºá¬á¡τ¿óáÑΓ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó.  ìá»α¿¼Ñα, ñá½ÑÑ
  2132.         «»αÑñѽ∩ÑΓß∩ ßΓαπ¬Γπαá ó¡πΓα¿ ßÑú¼Ñ¡Γá ñá¡¡δσ.
  2133.  
  2134.                 .
  2135.                 .
  2136.                 .
  2137.         _Data   SEGMENT WORD PUBLIC 'DATA'
  2138.                 .
  2139.                 .
  2140.                 .
  2141.         Test    STRUC
  2142.                 .
  2143.                 .
  2144.                 .
  2145.         Test    ENDS
  2146.  
  2147.         TASM2 #3-5/䫬               = 48 =
  2148.  
  2149.                 .
  2150.                 .
  2151.                 .
  2152.         _Data   ENDS
  2153.  
  2154.              é«-óΓ«αδσ, «Γ¼ÑΓ¿¼,  τΓ«  »ÑαѼѡ¡á∩  MisterBark   ßΓαπ¬Γπαδ
  2155.         CLIENT ß«ºñá¡á Γá¬,  ¬á¬ Ñß½¿ íδ ßπΘÑßΓó«óá½ ¡«óδ⌐ Γ¿»  ñá¡¡δσ  ß
  2156.         ¿¼Ñ¡Ñ¼ CLIENT (Σá¬Γ¿τÑ߬¿,  ¿¼Ñ¡¡« Γᬫ⌐ Γ¿» ñá¡¡δσ óδ ¿ ß«ºñ὿,
  2157.         «»αÑñѽ¿ó ßΓαπ¬Γπαπ CLIENT).  àß½¿ ñ½∩ ßΓαπ¬Γπαδ CLIENT óδ »α¿¼Ñ-
  2158.         ¡¿ΓÑ «»Ñαᵿε SIZE, Γ« »«½πτ¿ΓÑ º¡áτÑ¡¿Ñ 26 (αẼÑα ßΓαπ¬Γπαδ).
  2159.  
  2160.              Åα¿ ß«ºñá¡¿¿ »ÑαѼѡ¡«⌐ MisterBark ó πú½«óδσ ß¬«í¬áσ »αÑñπß-
  2161.         ¼«ΓαÑ¡δ Γα¿ »áαá¼ÑΓαá «»¿ßá¡¿∩.  ¥Γ¿ »áαá¼ÑΓαδ ßΓá¡«ó∩Γß∩ ¡áτá½∞-
  2162.         ¡δ¼¿  º¡áτÑ¡¿∩¼¿  ß««ΓóÑΓßΓóπεΘ¿σ  »«½Ñ⌐  »ÑαѼѡ¡«⌐  MisterBark.
  2163.         æΓα«¬á  'John Q.  Bark' - φΓ« ¡áτá½∞¡«Ñ º¡áτÑ¡¿∩ »«½∩ NAME,  32 -
  2164.         ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ »«½∩ AGE,  á 10000 - ¡áτá½∞¡«Ñ  º¡áτÑ¡¿Ñ  »«½∩
  2165.         INCOME.
  2166.  
  2167.              éá¼ ¡Ñ ΓαÑíπÑΓß∩ «»αÑñѽ∩Γ∞ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩  óßÑσ  »«½Ñ⌐,
  2168.         «»αÑñѽѡ¡δσ ó ßΓαπ¬ΓπαÑ. ìá»α¿¼Ñα:
  2169.  
  2170.         MisterBark      CLIENT  <>
  2171.  
  2172.         ¡Ñ ¿¡¿µ¿á½¿º¿απÑΓ ¡¿¬á¬¿σ »«½Ñ⌐ MisterBark, á
  2173.  
  2174.         MisterBark      CLIENT  <,,19757>
  2175.  
  2176.         ¿¡¿µ¿á½¿º¿απÑΓ Γ«½∞¬« »«½Ñ INCOME. Äñ¡á¬« πú½«óδѠ߬«í¬¿ ΓαÑíπÑΓ-
  2177.         ß∩ π¬áºδóáΓ∞, ñáªÑ Ñß½¿ »«½∩ ¡Ñ ¿¡¿µ¿á½¿º¿α«óá¡δ.
  2178.  
  2179.              àß½¿ »α¿ ß«ºñá¡¿¿ »ÑαѼѡ¡«⌐ ó »á¼∩Γ¿ óδ ¡Ñ «»αÑñѽ∩ÑΓÑ  ¡á-
  2180.         τá½∞¡«Ñ º¡áτÑ¡¿Ñ,  Γ« ÑßΓ∞ Γα¿ ó«º¼«ª¡δσ ß»«ß«íá, ß »«¼«Θ∞ε ¬«Γ«-
  2181.         αδσ φΓ« ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ ¼«ªÑΓ íδΓ∞ ºáñá¡«.  àß½¿ óδ ºáñ὿ ¡á-
  2182.         τá½∞¡«Ñ  º¡áτÑ¡¿Ñ ñá¡¡«ú« »«½∩ »α¿ «»αÑñѽѡ¿¿ ßΓαπ¬Γπα¡«ú« Γ¿»á,
  2183.         Γ« φΓ«¼π »«½ε »α¿ßóá¿óáÑΓß∩ π¬áºá¡¡«Ñ º¡áτÑ¡¿Ñ (»« π¼«½τá¡¿ε).
  2184.  
  2185.              ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ
  2186.         ºáñáÑΓß∩ Γ«½∞¬« ñ½∩ «ñ¡«ú« »«½∩ MisterBark (»«½Ñ NAME) »α¿ ß«ºñá-
  2187.         ¡¿¿ »ÑαѼѡ¡«⌐ MisterBark. Äñ¡á¬«, «»αÑñѽѡ« ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ,
  2188.         ºáñá¡¡«Ñ ñ½∩ »«½∩ AGE »α¿ «»αÑñѽѡ¿¿ ßΓαπ¬Γπαδ  CLIENT,  »«φΓ«¼π
  2189.         φΓ« íπñÑΓ º¡áτÑ¡¿Ñ¼ »«½∩ AGE ñ½∩ MisterBark. ä½∩ »«½∩ INCOME º¡á-
  2190.         τÑ¡¿Ñ ¡¿úñÑ ¡Ñ ºáñá¡«,  »«φΓ«¼π ñá¡¡«Ñ »«½Ñ ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡á-
  2191.         τÑ¡¿Ñ¼ 0. Åα¿¼Ñα:
  2192.  
  2193.                 .
  2194.                 .
  2195.  
  2196.         TASM2 #3-5/䫬               = 49 =
  2197.  
  2198.                 .
  2199.         CLIENT  STRUC
  2200.         NAME    DB     'çñÑß∞ π¬áºδóáÑΓß∩ ¿¼∩...'
  2201.         AGE     DW     ?
  2202.         INCOME  DD     ?
  2203.         CLIENT  ENDS
  2204.                 .
  2205.                 .
  2206.                 .
  2207.                 .DATA
  2208.         MisterBark     CLIENT  <'John Q. Bark>
  2209.                 .
  2210.                 .
  2211.                 .
  2212.  
  2213.              é αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ ñá¡¡«⌐ »α«úαá¼¼δ »«½Ñ NAME ¿¡¿µ¿á½¿-
  2214.         º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 'John Q. Bark', »«½Ñ AGE - º¡áτÑ¡¿Ñ¼ 21, á »«-
  2215.         ½Ñ INCOME - º¡áτÑ¡¿Ñ¼ 0.  çá¼ÑΓ¿¼,  τΓ« ¡áτá½∞¡«Ñ  º¡áτÑ¡¿Ñ  »«½∩
  2216.         NAME, ºáñáóáѼ«Ñ »α¿ ß«ºñá¡¿¿ »ÑαѼѡ¡«⌐ MisterBark, «Γ¼Ñ¡∩ÑΓ ¡á-
  2217.         τá½∞¡«Ñ º¡áτÑ¡¿Ñ, ºáñá¡¡«Ñ »α¿ «»αÑñѽѡ¿¿ ßΓαπ¬Γπαδ CLIENT.
  2218.  
  2219.              æ »«¼«Θ∞ε «»Ñαᵿ¿ DUP  óδ  ¼«ªÑΓÑ  ¿¡¿µ¿á½¿º¿α«óáΓ∞  ¼áßß¿ó
  2220.         ßΓαπ¬Γπα. ìá»α¿¼Ñα:
  2221.  
  2222.         Clients        CLIENT      52 DUP (<>)
  2223.  
  2224.              çñÑß∞ ß«ºñáÑΓß∩ ¼áßß¿ó Clients, ß«ßΓ«∩Θ¿⌐ ¿º 52 ßΓαπ¬Γπα Γ¿-
  2225.         »á CLIENT, ¬áªñá∩ ¿º ¬«Γ«αδσ ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿∩¼¿ »« π¼«½-
  2226.         τá¡¿ε.
  2227.  
  2228.              àß½¿ óδ  ß¡«óá  óºú½∩¡ÑΓÑ  ¡á »α¿¼Ñα ¿ßσ«ñ¡«⌐ ßΓαπ¬Γπαδ,  Γ«
  2229.         πó¿ñ¿ΓÑ ¡«óπε «»Ñαᵿε - Γ«τ¬π (.). ¥Γá «»Ñαᵿ∩ »αÑñßΓáó½∩ÑΓ ß«-
  2230.         í«⌐ ñαπúπε Σ«α¼π «»Ñαᵿ¿ + ñ½∩ áñαÑßᵿ¿ ó »á¼∩Γ¿. Æ« ÑßΓ∞, ß½Ñ-
  2231.         ñπεΘ¿Ñ ßΓ᫬¿ óδ»«½¡∩εΓ «ñ¿¡á¬«óδÑ ñÑ⌐ßΓó¿∩:
  2232.  
  2233.                 .
  2234.                 .
  2235.                 .
  2236.                 mov     ax,[bx.AGE]
  2237.                 mov     ax,[bx].AGE
  2238.                 mov     ax,[bx+AGE]
  2239.                 mov     ax,[bx]+AGE
  2240.                 .
  2241.                 .
  2242.                 .
  2243.  
  2244.  
  2245.         TASM2 #3-5/䫬               = 50 =
  2246.  
  2247.              Ä»Ñαᵿ∩ Γ«τ¬¿ τáßΓ« ¿ß»«½∞ºπÑΓß∩ »α¿ ßΓαπ¬Γπα¡δσ ßß佬áσ ¡á
  2248.         ß«ñÑন¼«Ñ ó «í«º¡áτÑ¡¿∩σ ∩ºδ¬á æ¿, úñÑ ΓᬪѠ¿ß»«½∞ºπÑΓß∩ Γ«τ¬á.
  2249.         ¥Γ« ñѽáÑΓß∩ ΓᬪÑ,  τΓ«íδ í佫 »«¡∩Γ¡«,  τΓ«  ¿ß»«½∞ºπÑΓß∩  »«½Ñ
  2250.         ßΓαπ¬Γπαδ. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Γπ «»Ñαᵿε, ¬«Γ«αá∩ óá¼ í«½∞ΦÑ
  2251.         ¡αáó¿Γß∩ (. ¿½¿ +).
  2252.  
  2253.              Å«½∩ ßΓαπ¬Γπαδ,  «»αÑñѽѡ¡δÑ  ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ STRUC,  ó
  2254.         ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ »αÑñßΓáó½∩εΓ ß«í«⌐ ¼ÑΓ¬¿,  »α¿αáó¡Ñ¡¡δÑ ¬ ß¼ÑΘÑ-
  2255.         ¡¿ε  »«½∩  ó  ßΓαπ¬ΓπαÑ.  êß»«½∞ºπ∩  ñá¡¡«Ñ αá¡ÑÑ «»αÑñѽѡ¿Ñ ñ½∩
  2256.         CLIENT ¿ MisterBark,  ¼«ª¡« ß¬áºáΓ∞, τΓ« ß½ÑñπεΘ¿Ñ ñóÑ ßΓ᫬¿ φ¬-
  2257.         ó¿óá½Ñ¡Γ¡δ:
  2258.  
  2259.                 .
  2260.                 .
  2261.                 .
  2262.                 mov     [MisterBark.AGE],ax
  2263.                 mov     [MisterBark+20],ax
  2264.                 .
  2265.                 .
  2266.                 .
  2267.  
  2268.         ¿½¿
  2269.                 .
  2270.                 .
  2271.                 .
  2272.         AGE_FIELD       EQU 20
  2273.                 .
  2274.                 .
  2275.                 .
  2276.                 mov     [MisterBark+AGE_FIELD],ax
  2277.                 .
  2278.                 .
  2279.                 .
  2280.  
  2281.  
  2282.  
  2283.  
  2284.         TASM2 #3-5/䫬               = 51 =
  2285.  
  2286.                 ìÑñoßΓáΓ¬¿ ¿ »αÑ¿¼πΘÑßΓóá ¿ß»«½∞º«óá¡¿∩ ñ¿αÑ¬Γ¿óδ STRUC        
  2287.         -----------------------------------------------------------------
  2288.  
  2289.              ä½∩ τÑú« ªÑ ¡πª¡« ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ  STRUC?  é«-»Ñαóδσ,
  2290.         »«½∩  ßΓαπ¬Γπαδ  «íÑß»Ñτ¿óáεΓ  Γ¿»¿ºáµ¿ε ñá¡¡δσ.  Æπαí« ÇßßѼí½Ñα
  2291.         º¡áÑΓ,  τΓ« MisterBark.AGE ó »Ñαó«¼ »α¿¼ÑαÑ - φΓ« »ÑαѼѡ¡á∩ αáº-
  2292.         ¼Ñα«¼ ó ß½«ó«, »«ß¬«½∞¬π AGE - φΓ« φ½Ñ¼Ñ¡Γ ßΓαπ¬Γπαδ, á óδαáªÑ¡¿Ñ
  2293.         MisterBark+AGE ó« óΓ«α«¼ »α¿¼ÑαÑ ¡Ñ ¿¼ÑÑΓ »α¿ßπΘÑú« Ñ¼π αẼÑαá.
  2294.  
  2295.              é«-óΓ«αδσ, ¡á¼¡«ú« »α«ΘÑ ¿º¼Ñ¡¿Γ∞ «»αÑñѽѡ¿Ñ ßΓαπ¬Γπαδ, τѼ
  2296.         ¿º¼Ñ¡∩Γ∞ ß¼ÑΘÑ¡¿∩ ¬«¡ßΓá¡Γ,  ¿½¿ ñáªÑ ¡áí«α »α¿ßóá¿óá¡¿⌐.  ìá»α¿-
  2297.         ¼Ñα,  Ñß½¿ óδ αÑΦ¿½¿,  τΓ« »«½Ñ NAME ñ«½ª¡« ¿¼ÑΓ∞ ñ½¿¡π 30 ß¿¼ó«-
  2298.         ½«ó, Γ« óá¼ »α¿Φ½«ß∞ íδ ¿º¼Ñ¡¿Γ∞ ºá»¿ß∞ ñ½∩ »«½∩ NAME ó «»αÑñѽÑ-
  2299.         ¡¿¿ CLIENT. àß½¿ íδ óδ ¿ß»«½∞º«ó὿ »α¿ßóá¿óá¡¿∩, óá¼ »α¿Φ½«ß∞ íδ
  2300.         óαπτ¡πε óδτ¿ß½∩Γ∞ ¿ ¿º¼Ñ¡∩Γ∞ ß¼ÑΘÑ¡¿∩ »«½Ñ⌐ AGE ¿ INCOME. é í«½∞-
  2301.         Φ¿σ ßΓαπ¬Γπαáσ φΓ« íδ½á íδ «úα«¼¡á∩ αáí«Γá.
  2302.  
  2303.              ìᬫ¡Ñµ, ñ¿αÑ¬Γ¿óá STRUC «í½ÑúτáÑΓ ß«ºñá¡¿Ñ  ¿ ¿¡¿µ¿á½¿ºáµ¿ε
  2304.         ßΓαπ¬Γπα ñá¡¡δσ.
  2305.  
  2306.              è«α«τÑ ú«ó«α∩,  ñ¿αÑ¬Γ¿óá STRUC ñáÑΓ πñ«í¡δ⌐ ß»«ß«í ß«ºñá¡¿∩
  2307.         ßΓαπ¬Γπα ñá¡¡δσ ¿ ñ«ßΓπ»á ¬ ¡¿¼. æ ñαπú«⌐ ßΓ«α«¡δ, ßΓαπ¬Γπαδ ñá¡-
  2308.         ¡δσ  ¡á  ∩ºδ¬Ñ ÇßßѼí½Ñαá ß»«ß«íßΓóπεΓ «Φ¿í¬á¼ ó í«½∞ΦÑ⌐ ßΓѻѡ¿,
  2309.         τѼ ßΓαπ¬Γπαδ ñá¡¡δσ ¡á ∩ºδ¬Ñ æ¿.  ìá»α¿¼Ñα, ¬«úñá óδ ¿ß»«½∞ºπÑΓÑ
  2310.         ñ½∩  ßß佬¿  ¡á ßΓαπ¬Γπαπ ñá¡¡δσ αÑú¿ßΓα,  ó Æπαí« ÇßßѼí½ÑαÑ ¡ÑΓ
  2311.         ß»«ß«íá ß««íΘ¿Γ∞, ß«ñÑαª¿Γ ½¿ αÑú¿ßΓα π¬áºáΓѽ∞ ¡á ñ«»πßΓ¿¼πε ñ½∩
  2312.         φΓ«ú« Γ¿»á ßΓαπ¬Γπαπ ñá¡¡δσ.  é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ αÑ-
  2313.         ú¿ßΓα BX ºáúαπªáÑΓß∩ º¡áτÑ¡¿Ñ¼ 0,  ¡« Æπαí«  ÇßßѼí½Ñα  ¡Ñ  ¼«ªÑΓ
  2314.         º¡áΓ∞,  αáß»«½«ªÑ¡á  »«  ß¼ÑΘÑ¡¿ε  0  ñ«»πßΓ¿¼á∩ ßΓαπ¬Γπαá ñá¡¡δσ
  2315.         DATA, ¿½¿ ¡ÑΓ:
  2316.  
  2317.                 .
  2318.                 .
  2319.                 .
  2320.                 mov     bx,0
  2321.                 mov     dx,[bx.AGE]
  2322.                 .
  2323.                 .
  2324.                 .
  2325.  
  2326.              ¥Γ« ¡Ñ  »α«í½Ñ¼á  ∩ºδ¬á ÇßßѼí½Ñαá,  φΓ« »α«ßΓ« «ΓαáªáÑΓ Ñú«
  2327.         »α¿α«ñπ. éÑñ∞ ÑßΓ∞ óδí«α ¼Ñªñπ ΓѼ, τΓ«íδ ñáΓ∞ óá¼ »«½¡πε ßó«í«ñπ
  2328.         ó »α«úαá¼¼¿α«óá¡¿¿ ¿ ΓѼ, τΓ«íδ ºáΘ¿Γ¿Γ∞ óáß «Γ ßἫú« ßÑí∩. ƒºδ¬
  2329.         ÇßßѼí½Ñαá »αÑñ«ßΓáó½∩ÑΓ óá¼ ßó«í«ñπ. ìπª¡« ¿¼ÑΓ∞ ó ó¿ñπ ÑΘÑ «ñ¿¡
  2330.         ó᪡δ⌐ ¼«¼Ñ¡Γ:  ó ßß佬áσ ¡á ßΓαπ¬Γπαδ ñá¡¡δσ Æπαí« ÇßßѼí½Ñα ¼«-
  2331.         ªÑΓ óδ»«½¡∩Γ∞ Γ«½∞¬« «úαá¡¿τÑ¡¡πε »α«óÑα¬π ¡á «Φ¿í¬¿. ÄΓóÑΓßΓóÑ¡-
  2332.  
  2333.         TASM2 #3-5/䫬               = 52 =
  2334.  
  2335.         ¡«ßΓ∞ ºá »αáó¿½∞¡πε ºáúαπº¬π π¬áºáΓѽÑ⌐ ó«º½áúáÑΓß∩ ¡á óáß.
  2336.  
  2337.                             ô¡¿¬á½∞¡δÑ ¿¼Ñ¡á »«½Ñ⌐ ßΓαπ¬Γπα                    
  2338.         -----------------------------------------------------------------
  2339.  
  2340.              ìÑ߬«½∞¬« ñ«ßáñÑ¡ Γ«Γ Σá¬Γ,  τΓ« ¿¼Ñ¡á »«½Ñ⌐ ßΓαπ¬Γπα, ¬«Γ«-
  2341.         αδÑ  ó  ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  »α«ßΓ« ∩ó½∩εΓß∩ ¼ÑΓ¬á¼¿,  ñ«½ª¡δ íδΓ∞ ó
  2342.         ñá¡¡«¼ ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ π¡¿¬á½∞¡δ.  ìá»α¿¼Ñα, Ñß½¿ óδ ó ñá¡¡«¼ ¿ß-
  2343.         σ«ñ¡«¼  ¼«ñπ½Ñ «»αÑñѽ¿½¿ ßΓαπ¬Γπαπ CLIENT,  ¡¿úñÑ ó ñαπú«¼ ¼ÑßΓÑ
  2344.         ¼«ñπ½∩ óδ  ¡Ñ ¼«ú½¿ íδ ¿ß»«½∞º«óáΓ∞ ¼ÑΓ¬π ß ¿¼Ñ¡Ñ¼ INCOME (ñáªÑ ó
  2345.         ñαπú«⌐ ßΓαπ¬ΓπαÑ).  INCOME - φΓ« »α«ßΓ« ¼ÑΓ¬á ß« º¡áτÑ¡¿Ñ¼ 22  ¿,
  2346.         ¬«¡Ñτ¡«, ó «ñ¡«¼ ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ ¡Ñ ¼«ªÑΓ ß«ñÑαªáΓ∞ß∩ ñóÑ ¼ÑΓ¬¿ ß
  2347.         «ñ¡¿¼ ¿ ΓѼ ªÑ ¿¼Ñ¡Ñ¼.  é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ¿º-ºá »«-
  2348.         »δΓ¬¿ »ÑαÑ«»αÑñѽѡ¿∩ AGE íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ß∩ «Φ¿í¬á:
  2349.  
  2350.                 .
  2351.                 .
  2352.                 .
  2353.            CLIENT    STRUC
  2354.            NAME      DB        'çñÑß∞ π¬áºδóáÑΓß∩ ¿¼∩...'
  2355.            AGE       DW        ?
  2356.            INCOME    DD        ?
  2357.            CLIENT    ENDS
  2358.                 .
  2359.                 .
  2360.                 .
  2361.            AGE  EQU  21
  2362.                 .
  2363.                 .
  2364.                 .
  2365.  
  2366.  
  2367.  
  2368.  
  2369.         TASM2 #3-5/䫬               = 53 =
  2370.  
  2371.                                   é½«ªÑ¡¡δÑ ßΓαπ¬Γπαδ                          
  2372.         -----------------------------------------------------------------
  2373.  
  2374.              æΓαπ¬Γπαδ ¼«úπΓ íδΓ∞ ó½«ªÑ¡¡δ¼¿, ¡á»α¿¼Ñα:
  2375.  
  2376.                 .
  2377.                 .
  2378.                 .
  2379.                 .DATA
  2380.                 .
  2381.                 .
  2382.                 .
  2383.            AGE_STRUC  STRUC
  2384.            YEARS      DW   ?
  2385.            MONTHS     DW   ?
  2386.            AGE_STRUC  ENDS
  2387.                 .
  2388.                 .
  2389.                 .
  2390.            CLIENT    STRUC
  2391.            NAME      DB        'çñÑß∞ π¬áºδóáÑΓß∩ ¿¼∩...'
  2392.            AGE       AGE_STRUC <>
  2393.            INCOME    DW        ?
  2394.            CLIENT    ENDS
  2395.                 .
  2396.                 .
  2397.                 .
  2398.            MisterBark   CLIENT   <>
  2399.                 .
  2400.                 .
  2401.                 .
  2402.                 .CODE
  2403.                 .
  2404.                 .
  2405.                 .
  2406.                 mov     dx,[MisterBark.AGE.MONTHS]
  2407.                 mov     si,OFFSET MisterBark
  2408.                 mov     cx,[si.AGE.YEARS]
  2409.                 .
  2410.                 .
  2411.                 .
  2412.  
  2413.              çñÑß∞ ßΓαπ¬Γπαá AGE_STRUC ß ¿¼Ñ¡Ñ¼ AGE  ó  ßΓαπ¬ΓπαÑ  CLIENT
  2414.         ∩ó½∩ÑΓß∩  ó½«ªÑ¡¡«⌐,  á ºáΓѼ ó ßΓαπ¬ΓπαÑ CLIENT MisterBark ¼«ª¡«
  2415.         ßßδ½áΓ∞ß∩ ¡á »«½∩ MONTHS ¿ YEARS.
  2416.  
  2417.  
  2418.         TASM2 #3-5/䫬               = 54 =
  2419.  
  2420.                                 ê¡¿µ¿á½¿ºáµ¿∩ ßΓαπ¬Γπα                         
  2421.         -----------------------------------------------------------------
  2422.  
  2423.              ÄΓ¡«ß¿Γѽ∞¡« ¿¡¿µ¿á½¿ºáµ¿¿  ßΓαπ¬Γπα ¡πª¡« ßñѽáΓ∞ ¡Ñ߬«½∞¬«
  2424.         »αÑñπ»αѪñÑ¡¿⌐.  é«-»Ñαóδσ,  Ñß½¿ óδ  »δΓáÑΓÑß∞  ¿¡¿µ¿á½¿º¿α«óáΓ∞
  2425.         ßΓ᫬«ó«Ñ  »«½Ñ ßΓαπ¬Γπαδ ßΓ᫬«⌐,  ñ½¿¡á ¬«Γ«α«⌐ »αÑóδΦáÑΓ ñ½¿¡π
  2426.         »«½∩, Γ« íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ß∩ «Φ¿í¬á áßßÑ¼í½¿α«óá¡¿∩.
  2427.  
  2428.              é«-óΓ«αδσ, Ññ¿¡ßΓóÑ¡¡δ¼ ó¿ñ«¼ »«½∩,  ¬«Γ«α«Ñ ¼«ª¡« ¿¡¿µ¿á½¿-
  2429.         º¿α«óáΓ∞ ßΓ᫬«óδ¼ º¡áτÑ¡¿Ñ¼ - φΓ« ßΓ᫬«ó«Ñ »«½Ñ. æ½ÑñπεΘ¿⌐  ñá-
  2430.         ½ÑÑ ¬«ñ áßßÑ¼í½¿α«óáΓ∞ß∩ ¡Ñ íπñÑΓ:
  2431.  
  2432.                 .
  2433.                 .
  2434.                 .
  2435.         TEST    STRING
  2436.         TEXT    DG      30 DUP (' ')
  2437.         TEST    ENDS
  2438.                 .
  2439.                 .
  2440.         TStruct TEST <'Test string'>
  2441.                 .
  2442.                 .
  2443.                 .
  2444.  
  2445.         ñáªÑ Ñß½¿ ßΓ᫬á TEXT ¿¡¿µ¿á½¿α«óá¡á ¡π½∩¼¿,  Γᬠ¬á¬  Æπαí«  Çß-
  2446.         ßѼí½Ñα αáßß¼áΓα¿óáÑΓ TEXT, ¬á¬ ¼áß߿󠿺 30 »α«íѽ«ó, á ¡Ñ ßΓα«-
  2447.         ¬π ¿º 30 ß¿¼ó«½«ó. ä«»πßΓ¿¼, ¿¼ÑÑΓß∩ ß½ÑñπεΘ¿⌐ ¬«ñ:
  2448.  
  2449.                 .
  2450.                 .
  2451.                 .
  2452.         TEST    STRUC
  2453.         TEXT    DB      'çñÑß∞ ß½ÑñπÑΓ ßΓ᫬á.....'
  2454.         TEST    ENDS
  2455.                 .
  2456.                 .
  2457.                 .
  2458.         TStruct         TEST <'Test string'>
  2459.                 .
  2460.                 .
  2461.                 .
  2462.  
  2463.              ¥Γ«Γ ¬«ñ íπñÑΓ áßßÑ¼í½¿α«óáΓ∞ß∩.
  2464.  
  2465.  
  2466.         TASM2 #3-5/䫬               = 55 =
  2467.  
  2468.              é-ΓαÑΓ∞¿σ, σ«Γ∩ óδ ¼«ªÑΓÑ ¿¡¿µ¿á½¿º¿α«óáΓ∞ í«½ÑÑ «ñ¡«ú« φ½Ñ-
  2469.         ¼Ñ¡Γá ñá¡¡δσ,  ¬á¬ »α¿¡áñ½ÑªáΘ¿σ ¬ «ñ¡«¼π »«½ε ßΓαπ¬Γπαδ, ¿¡¿µ¿á-
  2470.         ½¿º¿α«óáΓ∞ óδ ¼«ªÑΓÑ,  ßá¼«Ñ í«½∞ΦÑÑ, «ñ¿¡ φ½Ñ¼Ñ¡Γ ¡á »«½Ñ (¬«úñá
  2471.         óδ  ß«ºñáÑΓÑ  óσ«ªñÑ¡¿Ñ  φΓ«⌐ ßΓαπ¬Γπαδ).  ìá»α¿¼Ñα,  ó ß½ÑñπεΘѼ
  2472.         Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ,  ¬«úñá ß«ºñáÑΓß∩ ßΓαπ¬Γπαá TestStruc, »Ñαóδ⌐
  2473.         íá⌐Γ  »«½∩ B ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 2,  ó Γ« óαѼ∩ ¬á¬ óΓ«α«⌐
  2474.         íá⌐Γ ¬áªñ«ú« »«½∩ «ßΓáÑΓß∩ αáó¡δ¼ º¡áτÑ¡¿ε »« π¼«½τá¡¿ε 20h (»α«-
  2475.         íѽ):
  2476.  
  2477.                 .
  2478.                 .
  2479.                 .
  2480.         T       STRUC
  2481.         A       DB      0ffh,0ffh
  2482.         B       DB      0ffh,0ffh
  2483.         T       ENDS
  2484.                 .
  2485.                 .
  2486.                 .
  2487.         TestStruc       T       <1,2>
  2488.                 .
  2489.                 .
  2490.                 .
  2491.  
  2492.              é ñá¡¡«¼  αáºñѽѠ¼δ «íßπñ¿½¿ óÑαß¿ε ñ¿αÑ¬Γ¿óδ STRUC ñ½∩ αÑ-
  2493.         ª¿¼á MASM. é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ (αѪ¿¼ IDEAL) ñ¿αÑ¬Γ¿óá STRUC º¡á-
  2494.         τ¿Γѽ∞¡«  í«½ÑÑ  ¼«Θ¡á∩  ¿ »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ í«½∞ΦÑ ßαÑñßΓó,
  2495.         ñ«ßΓπ»¡δσ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩ («í  π½πτΦÑ¡¡«¼  αѪ¿¼Ñ  Æπαí«
  2496.         ÇßßѼí½Ñαá αáß߬áºδóáÑΓß∩ ó â½áóÑ 11).
  2497.  
  2498.  
  2499.  
  2500.  
  2501.         TASM2 #3-5/䫬               = 56 =
  2502.  
  2503.                                    ä¿αÑ¬Γ¿óá RECORD                            
  2504.         -----------------------------------------------------------------
  2505.  
  2506.              ä¿αÑ¬Γ¿óá RECORD ñáÑΓ óἠ󫺼«ª¡«ßΓ∞ «»αÑñѽ∩Γ∞ »«½∩  í¿Γ ó
  2507.         íá⌐ΓÑ ¿½¿ ß½«óÑ. Ä»αÑñѽѡ¿∩ »«½Ñ⌐ í¿Γ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ úÑ-
  2508.         ¡Ñαᵿ¿ ¼áß«¬ ß µÑ½∞ε óδñѽѡ¿∩ «ñ¡«ú« ¿½¿  í«½ÑÑ  »«½Ñ⌐  í¿Γ,  á
  2509.         ΓᬪѠó ¬áτÑßΓóÑ ßτÑΓτ¿¬«ó ßñó¿ú«ó ñ½∩ óδαáó¡¿óá¡¿∩ ó»αáó« ½εí«ú«
  2510.         í¿Γ«ó«ú« »«½∩.  ä¿αÑ¬Γ¿óá RECORD ¡Ñ ¿¼ÑÑΓ «Γ¡«ΦÑ¡¿∩  ¬  «»ÑαáΓ«απ
  2511.         Åá߬á½∩ record.
  2512.  
  2513.              ÅαÑñ»«½«ª¿¼, τΓ« óδ «»αÑñѽ¿ΓÑ ßΓαπ¬Γπαπ ñá¡¡δσ, ¬«Γ«αá∩ ß«-
  2514.         ñÑαª¿Γ 1-í¿Γ«óδÑ Σ½áú¿ ¿ 12-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ. ¥Γ« ¼«ª¡« ßñѽáΓ∞ ß
  2515.         »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ RECORD ß½ÑñπεΘ¿¼ «íαẫ¼:
  2516.  
  2517.         TEST_REC        RECORD   FLAG1:1,FLAG2:1,FLAG3:1,TVAL:12
  2518.  
  2519.              é ñá¡¡«¼ »α¿¼ÑαÑ «»αÑñѽ∩ÑΓß∩ Γα¿ Σ½áúá FLAG1, FLAG2 ¿ FLAG3
  2520.         ¿  »«½Ñ ñá¡¡δσ ß ¿¼Ñ¡Ñ¼ TVAL.  ç¡áτÑ¡¿Ñ,  π¬áºδóáѼ«Ñ ñ½∩ ¬áªñ«ú«
  2521.         »«½∩ »«ß½Ñ ñó«ÑΓ«τ¿∩, ºáñáÑΓ αẼÑα φΓ«ú« »«½∩ ó í¿Γáσ (¬áªñδ⌐ ¿º
  2522.         Σ½áú«ó ¿¼ÑÑΓ αẼÑα 1 í¿Γ, TVAL - 12 í¿Γ).
  2523.  
  2524.              èᬿ¼ «íαẫ¼  »«½∩  σαá¡∩Γß∩  ó¡πΓα¿  ºá»¿ß¿?  ¥Γ« ñ«ó«½∞¡«
  2525.         ß½«ª¡«. ÅÑαó«Ñ »«½Ñ (FLAG1) - φΓ« ßá¼δ⌐ ½Ñóδ⌐ (¡á¿í«½ÑÑ º¡áτáΘ¿⌐)
  2526.         í¿Γ ºá»¿ß¿. éΓ«α«Ñ »«½Ñ (FLAG2) - φΓ« ß½ÑñπεΘ¿⌐ »« º¡áτ¿¼«ßΓ¿ í¿Γ
  2527.         ºá»¿ß¿ ¿ Γ.ñ.,  »«¬á óδ ¡Ñ ñ«ßΓ¿ú¡¿ΓÑ º¡áτÑ¡¿∩ TVAL,  ¬«Γ«α«Ñ ºá-
  2528.         ¬á¡τ¿óáÑΓß∩ ó ßἫ¼ ¼½áñΦѼ í¿ΓÑ ºá»¿ß¿.  Äñ¡á¬« φΓᠺỿß∞ ¿¼ÑÑΓ
  2529.         αẼÑα Γ«½∞¬«  15 í¿Γ ¿ «ñ¿¡ í¿Γ ó ß½«óÑ «ßΓáÑΓß∩ ¡ÑπτΓÑ¡¡δ¼ (ºá-
  2530.         »¿ß¿ óßÑúñᠺ᡿¼áεΓ Γ«τ¡« 8 ¿½¿ 16 í¿Γ).  éδ»«½¡∩ÑΓß∩  ß½ÑñπεΘÑÑ
  2531.         »αá󿽫:  ºá»¿ß¿  ó  µÑ½«¼ óßÑúñá óδαáó¡¿óáεΓß∩ ó»αáó« ¡á úαá¡¿µπ
  2532.         íá⌐Γá ¿½¿ ß½«óá.
  2533.  
  2534.              èᬠ¼δ πªÑ ß¬áºá½¿, φΓ« ¡Ñ¼¡«ú« ß½«ª¡«. ä½∩ »α«∩ߡѡ¿∩ ß¿Γπ-
  2535.         áµ¿¿ »α¿óÑñѼ »α¿¼Ñα.  çỿß∞ Γ¿»á TEST_REC «»αÑñѽѡá ß  »«¼«Θ∞ε
  2536.         ßΓ᫬¿ ó¿ñá:
  2537.  
  2538.         TRec    TEST_REC        <1,0,0,52h>
  2539.  
  2540.              çñÑß∞ ¼δ ß«ºñ὿ »ÑαѼѡ¡πε TRec Γ¿»á ºá»¿ß¿ TEST_REC.  ç¡á-
  2541.         τÑ¡¿∩ ó πú½«óδσ ß¬«í¬áσ »αÑñßΓáó½∩εΓ ß«í«⌐ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ ß«-
  2542.         «ΓóÑΓßΓóπεΘ¿σ  »«½Ñ⌐,  »«φΓ«¼π  »«½Ñ  TRec FLAG1 ¿¡¿µ¿á½¿º¿απÑΓß∩
  2543.         º¡áτÑ¡¿Ñ¼ 0,  á »«½Ñ TVAL ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 52h. ìá É¿ß.
  2544.         9.1 »«¬áºá¡« αẼÑΘÑ¡¿Ñ ¿ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ τÑΓδαÑσ »«½Ñ⌐ ºá»¿ß¿
  2545.         »ÑαѼѡ¡«⌐ TRec.
  2546.  
  2547.                       FLAG1       FLAG3
  2548.         ¡Ñ ¿ß»«½∞ºπÑΓß∩ |   FLAG2   |           TVAL
  2549.  
  2550.         TASM2 #3-5/䫬               = 57 =
  2551.  
  2552.                   |     |     |     |             |
  2553.                ---|-----|-----|-----|-------------|----------------------
  2554.                |  v  |  v  |  v  |  v  |          v                     |
  2555.         TRec   |  0  |  1  |  0  |  0  |         52h                    |
  2556.                |     |     |     |     |                                |
  2557.                ----------------------------------------------------------
  2558.           í¿Γ     15    14    13    12   11                             0
  2559.  
  2560.              É¿ß. 9.1.  Éáß»«½«ªÑ¡¿Ñ  ¿ ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ »«½Ñ⌐ ó ºá»¿ß¿
  2561.         TREC.
  2562.  
  2563.              àß½¿ «íΘ¿⌐ αẼÑα ºá»¿ß¿ («íΘá∩ ßπ¼¼á óßÑσ »«½Ñ⌐) ß«ßΓáó½∩ÑΓ
  2564.         8 ¿½¿ ¼Ñ¡ÑÑ í¿Γ,  Γ« ºá»¿ß∞ σαá¡¿Γß∩ ó íá⌐ΓÑ,  ó »α«Γ¿ó¡«¼ ß½πτáÑ
  2565.         «¡á σαá¡¿Γß∩ ó ß½«óÑ. çᠿ߬½ετÑ¡¿Ñ¼ ΓÑσ ß½πτáÑó, ¬«úñá αáºαÑΦÑ¡«
  2566.         áßßÑ¼í½¿α«óá¡¿Ñ  ß ¿ß»«½∞º«ó᡿Ѽ »α«µÑßß«αá 80386 (ó φΓ«¼ ß½πτáÑ
  2567.         ñ«»π߬áεΓß∩ ºá»¿ß¿ ñ« 32 í¿Γ),  ºá»¿ß¿,  αẼÑα ¬«Γ«αδσ »αÑóδΦáÑΓ
  2568.         16 í¿Γ, ¡Ñ »«ññÑনóáεΓß∩.
  2569.  
  2570.              ê¡¿µ¿á½¿ºáµ¿∩ »ÑαѼѡ¡«⌐  Γ¿»á  ºá»¿ß∞  ó« ¼¡«ú«¼ á¡á½«ú¿τ¡á
  2571.         ¿¡¿µ¿á½¿ºáµ¿¿ ßΓαπ¬Γπα¡«⌐ »ÑαѼѡ¡«⌐.  àß½¿ óδ ºáñáÑΓÑ  ¡áτá½∞¡«Ñ
  2572.         º¡áτÑ¡¿Ñ ñ½∩ ñá¡¡«ú« »«½∩ ºá»¿ß¿ »α¿ ß«ºñá¡¿¿ »ÑαѼѡ¡«⌐ Γ¿»á ºá-
  2573.         »¿ß∞,  Γ« »«½Ñ ¿¡¿µ¿á½¿º¿απÑΓß∩ φΓ¿¼ º¡áτÑ¡¿Ñ¼  (¬á¬  »«¬áºá¡«  ó
  2574.         »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ).
  2575.  
  2576.              àß½¿ »α¿ ß«ºñá¡¿¿ »ÑαѼѡ¡«⌐-ºá»¿ß¿ óδ ¡Ñ ºáñáñ¿ΓÑ ¡áτá½∞¡«Ñ
  2577.         º¡áτÑ¡¿Ñ ñ½∩ ñá¡¡«ú« »«½∩ ºá»¿ß¿, Γ« ó«º¼«ª¡δ ñóá ¿ß»«½∞ºπѼδσ »«
  2578.         π¼«½τá¡¿ε º¡áτÑ¡¿∩.  è«úñá óδ ß«ºñáÑΓÑ Γ¿» ºá»¿ß¿, óδ  ¼«ªÑΓÑ ºá-
  2579.         ñáΓ∞ ñ½∩ ½εí«ú« »«½∩  ¿ß»«½∞ºπѼ«Ñ  »« π¼«½τá¡¿ε º¡áτÑ¡¿Ñ. ìá»α¿-
  2580.         ¼Ñα:
  2581.  
  2582.         TEST_REC        RECORD  FLAG:1=1,FLAG:1=0,FLAG3,TVAL:12=0fffh
  2583.  
  2584.         ºáñáÑΓ »« π¼«½τá¡¿ε º¡áτÑ¡¿Ñ 1 ñ½∩ FLAG1, º¡áτÑ¡¿Ñ 0 ñ½∩ FLAG 2 ¿
  2585.         0FFFh - ñ½∩ TVAL (ñ½∩ FLAG3 ∩ó¡«Ñ º¡áτÑ¡¿Ñ »« π¼«½τá¡¿ε ¡Ñ  ºáñá-
  2586.         ÑΓß∩). Å« π¼«½τá¡¿ε ¬áªñ«Ñ »«½Ñ,  º¡áτÑ¡¿Ñ ¬«Γ«α«ú« ∩ó¡« ¡Ñ ºáñá-
  2587.         ÑΓß∩, »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ 0, »«φΓ«¼π »« π¼«½τá¡¿ε FLAG3 »α¿ßóá¿óá-
  2588.         ÑΓß∩ º¡áτÑ¡¿Ñ 0.
  2589.  
  2590.              ÄΓßεñá ß½ÑñπÑΓ, τΓ« c πτÑΓ«¼ «»αÑñѽѡ¿∩ TEST_REC ¿ ß«ºñá¡¿∩
  2591.         TRec:
  2592.  
  2593.                 .
  2594.                 .
  2595.                 .
  2596.                 .DATA
  2597.                 .
  2598.  
  2599.         TASM2 #3-5/䫬               = 58 =
  2600.  
  2601.                 .
  2602.                 .
  2603.         TEST_REC        RECORD  FLAG:1=1,FLAG:1=0,FLAG3,TVAL:12=0fffh
  2604.                 .
  2605.                 .
  2606.                 .
  2607.         TRec    TEST_REC  <,1,,2>
  2608.                 .
  2609.                 .
  2610.                 .
  2611.  
  2612.         »«½∩ ¿¡¿µ¿á½¿º¿απεΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  2613.  
  2614.              - »«½Ñ FLAG1 ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 1;
  2615.              - »«½Ñ FLAG2 ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 1;
  2616.              - »«½Ñ FLAG3 ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 0;
  2617.              - »«½Ñ TVAL ¿¡¿µ¿á½¿º¿απÑΓß∩ º¡áτÑ¡¿Ñ¼ 2.
  2618.  
  2619.              ÄíΘÑÑ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐-ºá»¿ß¿ TRec - 6002h.  çá¼ÑΓ¿¼, τΓ«
  2620.         ¡áτá½∞¡δÑ º¡áτÑ¡¿∩,  ºáñá¡¡δÑ »α¿ ß«ºñá¡¿¿ ºá»¿ß¿, »ÑαÑ«»αÑñѽ∩εΓ
  2621.         ¡áτá½∞¡δÑ º¡áτÑ¡¿∩, ºáñáóáѼδÑ »α¿ «»αÑñѽѡ¿¿ ºá»¿ß¿.
  2622.  
  2623.              Å«ß½Ñ «»αÑñѽѡ¿∩ Γ¿» ºá»¿ß¿ á¡á½«ú¿τÑ¡ ñαπú¿¼ Γ¿»á¼ ñá¡¡δσ.
  2624.         éδ, ¡á»α¿¼Ñα, ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ «»Ñαá¡ñδ Γ¿»á ºá»¿ß¿ ó «»Ñαᵿ¿
  2625.         SIZE, ¿½¿ ¼«ª¡« «»αÑñѽ¿Γ∞ ¼áßß¿ó ºá»¿ßÑ⌐ ß »«¼«Θ∞ε «»Ñαᵿ¿ DUP.
  2626.         ìá»α¿¼Ñα,  ñá½ÑÑ «»αÑñѽ∩ÑΓß∩ ¼áß߿󠿺 90 ºá»¿ßÑ⌐ Γ¿»á TEST_REC:
  2627.  
  2628.         TRecArray       TEST_REC        90 DUP (<1,1,1,0>)
  2629.  
  2630.              èᬠ¿ ¿¼Ñ¡á »«½Ñ⌐ ßΓαπ¬Γπα, ¿¼Ñ¡á »«½Ñ⌐ ºá»¿ßÑ⌐ »αÑñßΓáó½∩εΓ
  2631.         ß«í«⌐ ¼ÑΓ¬¿.  Å«ß¬«½∞¬π «»αÑñѽ∩Γ∞ ¼ÑΓ¬¿ ó ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ ñ«»πß-
  2632.         ¬áÑΓß∩ Γ«½∞¬« «ñ¿¡ αáº,  φΓ« «º¡áτáÑΓ,  τΓ« ¿¼Ñ¡á  »«½Ñ⌐  ºá»¿ßÑ⌐
  2633.         ñ«½ª¡δ íδΓ∞ ó ñá¡¡«¼ ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ π¡¿¬á½∞¡δ.
  2634.  
  2635.                                    ä«ßΓπ» ¬ ºá»¿ß∩¼                            
  2636.         -----------------------------------------------------------------
  2637.  
  2638.              ÆÑ»Ñα∞, ¬«úñá óδ º¡áÑΓÑ, ¬á¬¿¼ «íαẫ¼ ¼«ª¡« ß«ºñáΓ∞ ºá»¿ß∞,
  2639.         ¿ ¬á¬ σαá¡∩Γß∩ αẽ¿τ¡δÑ »«½∩ ó ºá»¿ß¿, ¼«ª¡« »α¿ßΓπ»¿Γ∞ ¬ ¿ºπτÑ-
  2640.         ¡¿ε ñ«ßΓπ»á ¬ ºá»¿ß∩¼.  éδ ¼«ªÑΓÑ ß »«½¡δ¼  «ß¡«ó᡿Ѽ  »«ñπ¼áΓ∞,
  2641.         τΓ« «íαáΘáΓ∞ß∩ ¬ ºá»¿ß∩¼ ¼«ª¡« Γ«τ¡« ΓᬪÑ,  ¬á¬ ¿ ¬ »«½∩¼ ßΓαπ¬-
  2642.         Γπαδ, ¡á»α¿¼Ñα:
  2643.  
  2644.                 mov     al,[TRec.FLAG2]      ; φΓ« αáí«ΓáΓ∞ ¡Ñ íπñÑΓ!
  2645.  
  2646.  
  2647.         TASM2 #3-5/䫬               = 59 =
  2648.  
  2649.         ¡« φΓ« ¡Ñ Γá¬.  Åα«µÑßß«α 8086 ¼«ªÑΓ αáí«ΓáΓ∞  Γ«½∞¬«  ß  8-  ¿½¿
  2650.         16-í¿Γ«ó묨  «»Ñαá¡ñἿ  ó  »á¼∩Γ¿,  »«φΓ«¼π ¡Ñ󫺼«ª¡« ºáúαπº¿Γ∞
  2651.         1-í¿Γ«ó«Ñ »«½Ñ, ¡á»α¿¼Ñα, ó αÑú¿ßΓα. Äñ¡á¬« ß »«½∩¼¿ ºá»¿ßÑ⌐ ¼«ª-
  2652.         ¡« ñѽáΓ∞ ß½ÑñπεΘÑÑ: ¼«ª¡« «»αÑñѽ¿Γ∞ ¿σ αẼÑα ó íá⌐Γáσ, «»αÑñÑ-
  2653.         ½¿Γ∞, ß¬«½∞¬« í¿Γ ¡πª¡« óδα«ó¡∩Γ∞ ó»αáó« ¿½¿ ó½Ñó«  ¿  ñ½∩  Γ«ú«,
  2654.         τΓ«íδ óδñѽ¿Γ∞ ¿σ, ß«ºñáΓ∞ ¼á߬π. äαπú¿¼¿ ß½«óἿ, σ«Γ∩ »α«µÑßß«α
  2655.         8086 ¡Ñ »«ºó«½∩ÑΓ óá¼ ¡Ñ»«ßαÑñßΓóÑ¡¡« αáí«ΓáΓ∞ ß  »«½∩¼¿ ºá»¿ßÑ⌐,
  2656.         Æπαí«  ÇßßѼí½Ñα »«ññÑনóáÑΓ αáí«Γπ ß φΓ¿¼¿ »«½∩¼¿ ß »«¼«Θ∞ε Γá-
  2657.         ¬¿σ ¿¡ßΓαπ¬µ¿⌐, ¬á¬ AND ¿ SHR.
  2658.  
  2659.              ç¡áτÑ¡¿Ñ ñá¡¡«ú« »«½∩ ºá»¿ß¿ »αÑñßΓáó½∩ÑΓ ß«í«⌐  τ¿ß½«  í¿Γ,
  2660.         ¡á  ¬«Γ«αδÑ ¡πª¡« ßñó¿¡πΓ∞ ºá»¿ß∞,  τΓ«íδ óδα«ó¡∩Γ∞ ó»αáó« ¡á φΓ«
  2661.         »«½Ñ (Γ« ÑßΓ∞ »«¼ÑßΓ¿Γ∞ í¿Γ 0 »«½∩ ó í¿Γ 0 ºá»¿ß¿). ìá»α¿¼Ñα:
  2662.  
  2663.                 .
  2664.                 .
  2665.                 .
  2666.                 mov     al,FLAG1
  2667.                 mov     ah,TVAL
  2668.                 .
  2669.                 .
  2670.                 .
  2671.  
  2672.         ºáúαπªáεΓ ó AL 14 ¿ ó AH 0, »«φΓ«¼π:
  2673.  
  2674.                 .
  2675.                 .
  2676.                 .
  2677.                 mov     ax,[TRec]
  2678.                 mov     cl,FLAG1
  2679.                 shr     ax,cl
  2680.                 .
  2681.                 .
  2682.                 .
  2683.  
  2684.         óδαáó¡¿óáεΓ ó»αáó« ¡á »«½Ñ FLAG1 TRec ó AX.
  2685.  
  2686.              ç¡áτÑ¡¿Ñ ßἫú«  Γ¿»á ºá»¿ß¿ - φΓ« º¡áτÑ¡¿Ñ íá⌐Γá ¿½¿ ß½«óá,
  2687.         ¬«Γ«α«Ñ ¼«ú½« íδ úÑ¡Ñα¿α«óáΓ∞ß∩ ß »«¼«Θ∞ε ß«ºñá¡¿∩ ºá»¿ß¿ ß  ñá¡-
  2688.         ¡δ¼¿ ¡áτá½∞¡δ¼¿ º¡áτÑ¡¿∩¼¿. ìá»α¿¼Ñα, ¿¡ßΓαπ¬µ¿∩:
  2689.  
  2690.              mov        ax,TEXT_REC <1,1,1,0fffh>
  2691.  
  2692.         ºáúαπªáÑΓ ó AX º¡áτÑ¡¿Ñ 7FFFh - º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ óδ ¼«ú½¿ íδ »«-
  2693.         ½πτ¿Γ∞,  Ñß½¿ íδ ß«ºñ὿ Γ¿» ºá»¿ß¿  TEST_REC ß ¡áτá½∞¡δ¼¿ º¡áτÑ-
  2694.         ¡¿∩¼¿ <1,1,1,0FFFh>.  ìπª¡« πτ¿ΓδóáΓ∞ αẽ¿τ¿Ñ ¼Ñªñπ ºáúαπº¬«⌐ AX
  2695.  
  2696.         TASM2 #3-5/䫬               = 60 =
  2697.  
  2698.         Γ¿»«¼ ºá»¿ß¿ TEST_REC (¬á¬ ó »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ) ¿  ºáúαπº¬«⌐  αÑ-
  2699.         ú¿ßΓαá AX Γ¿»«¼ ºá»¿ß¿ TREC, ¬á¬ ó »α¿¼ÑαÑ:
  2700.  
  2701.                 .
  2702.                 .
  2703.                 .
  2704.         TEST_REC        RECORD  FLAG1:1=1,FLAG2:1=0,FLAG3:1,TVAL:12=0fffh
  2705.                 .
  2706.                 .
  2707.                 .
  2708.         TRec            TEST_REC <,1,,,2>
  2709.                 .
  2710.                 .
  2711.                 .
  2712.                 .CODE
  2713.                 .
  2714.                 .
  2715.                 .
  2716.                 mov     ax,[TRec]
  2717.                 .
  2718.                 .
  2719.                 .
  2720.  
  2721.         úñÑ αÑú¿ßΓα  AX  ºáúαπªáÑΓß∩ º¡áτÑ¡¿Ñ¼ 6002h (º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
  2722.         TRec).
  2723.  
  2724.  
  2725.  
  2726.  
  2727.         TASM2 #3-5/䫬               = 61 =
  2728.  
  2729.                                      Ä»Ñαᵿ∩ WITH                             
  2730.         -----------------------------------------------------------------
  2731.  
  2732.              Ä»Ñαᵿ∩ WITH ó«ºóαáΘáÑΓ αẼÑα ºá»¿ß¿ ¿½¿ »«½∩ ºá»¿ß¿ ó í¿-
  2733.         Γáσ. ìá»α¿¼Ñα, ¡á ß½ÑñπεΘÑ⌐ ßΓα«¬Ñ ó αÑú¿ßΓαÑ AL ß«σαá¡∩ÑΓß∩ º¡á-
  2734.         τÑ¡¿Ñ 15 (τ¿ß½« í¿Γ ó ºá»¿ß¿ TEST_REC):
  2735.  
  2736.                 mov   al,WITH TEST_REC   ; αẼÑα »«½∩ ºá»¿ß¿ ó í¿Γáσ
  2737.  
  2738.         á ñá½ÑÑ º¡áτÑ¡¿Ñ 1 (ñ½¿¡á ¬áªñ«ú« ¿º »«½Ñ⌐ Σ½áú«ó)  ß«σαá¡∩ÑΓß∩ ó
  2739.         αÑú¿ßΓαáσ AL, AH ¿ BL ¿ º¡áτÑ¡¿Ñ TVAL - ó αÑú¿ßΓαÑ BH:
  2740.  
  2741.                 .
  2742.                 .
  2743.                 .
  2744.                 mov     al,WITH FLAG1
  2745.                 mov     ah,WITH FLAG2
  2746.                 mov     bl,WITH FLAG3
  2747.                 mov     bh,WITH TVAL
  2748.                 .
  2749.                 .
  2750.                 .
  2751.  
  2752.  
  2753.  
  2754.  
  2755.         TASM2 #3-5/䫬               = 62 =
  2756.  
  2757.                                      Ä»Ñαᵿ∩ MASK                             
  2758.         -----------------------------------------------------------------
  2759.  
  2760.              Ä»Ñαᵿ∩ MASK ó«ºóαáΘáÑΓ ¼á߬π, »«ñσ«ñ∩Θπε ñ½∩ óδñѽѡ¿∩ ºá-
  2761.         »¿ß¿ ¿½¿ »«½∩ ºá»¿ß¿ ó »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ AND. ìá»α¿¼Ñα:
  2762.  
  2763.                 mov     ax,MASK TEST_REC
  2764.  
  2765.         ºá»¿ßδóáÑΓ º¡áτÑ¡¿Ñ 7FFFh ó αÑú¿ßΓα AX, á ¿¡ßΓαπ¬µ¿¿:
  2766.  
  2767.                 .
  2768.                 .
  2769.                 .
  2770.                 mov     ax,MASK TEST_REC
  2771.                 mov     dx,[TRec]
  2772.                 and     dx,ax
  2773.                 .
  2774.                 .
  2775.                 .
  2776.  
  2777.         ºá»¿ßδóáεΓ º¡áτÑ¡¿Ñ ºá»¿ß¿ TRec ó αÑú¿ßΓαÑ  DX,  αẼá߬¿απ∩  í¿Γ
  2778.         15, ¬«Γ«αδ⌐ ¡Ñ ∩ó½∩ÑΓß∩ τáßΓ∞ε ºá»¿ß¿ TEST_REC.
  2779.  
  2780.              Ä»Ñαᵿ∩ MASK  í«½ÑÑ  »«½Ñº¡á,  ¬«úñá ΓαÑíπÑΓß∩ óδñѽ¿Γ∞ «Γ-
  2781.         ñѽ∞¡«Ñ »«½Ñ ºá»¿ß¿. äá½ÑÑ «»αÑñѽ∩ÑΓß∩, πßΓá¡«ó½Ñ¡ ½¿ Σ½áú FLAG3
  2782.         »«½∩ TRec:
  2783.  
  2784.                 .
  2785.                 .
  2786.                 .
  2787.                 mov     ax,[TRec]
  2788.                 and     ax,MASK FLAG3
  2789.                 jz      Flag3NotSet        ; Σ½áú ¡Ñ πßΓá¡«ó½Ñ¡
  2790.                 .
  2791.                 .
  2792.                 .
  2793.  
  2794.              çá¼ÑΓ¿¼, τΓ«  ó¼ÑßΓ« ¿¡ßΓαπ¬µ¿¿ AND ¼«ª¡« ß»«¬«⌐¡« ¿ß»«½∞º«-
  2795.         óáΓ∞ ¿¡ßΓαπ¬µ¿ε TEST.  äá½ÑÑ óδ»«½¡∩ÑΓß∩ ΓᠪѠ»α«óÑα¬á,  τΓ« ¿ ó
  2796.         »αÑñδñπΘѼ  »α¿¼ÑαÑ,  »α¿ φΓ«¼ ¡Ñ ¿º¼Ñ¡∩εΓß∩ ¡¿¬á¬¿Ñ αÑú¿ßΓαδ ¿½¿
  2797.         ∩τÑ⌐¬¿ »á¼∩Γ¿:
  2798.  
  2799.                 .
  2800.                 .
  2801.                 .
  2802.                 jz      Flag3NotSet
  2803.  
  2804.         TASM2 #3-5/䫬               = 63 =
  2805.  
  2806.                 .
  2807.                 .
  2808.                 .
  2809.  
  2810.              Ä»Ñαᵿε MASK »«½Ñº¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ αáí«Γδ ß »«½∩¼¿ ºá»¿-
  2811.         ß¿ ó ß«τÑΓá¡¿¿ ß ¿¡ßΓαπ¬µ¿∩¼¿ ßñó¿úá (¬á¬ óδ πó¿ñ¿ΓÑ ñá½ÑÑ).
  2812.  
  2813.  
  2814.  
  2815.  
  2816.         TASM2 #3-5/䫬               = 64 =
  2817.  
  2818.                              ä½∩ τÑú« ¿ß»«½∞ºπεΓß∩ ºá»¿ß¿?                     
  2819.         -----------------------------------------------------------------
  2820.  
  2821.              ÆÑ»Ñα∞ óδ πº¡á½¿,  τΓ« »αÑñßΓáó½∩εΓ ß«í«⌐ ºá»¿ß¿ ¿  ¬á¬  «¡¿
  2822.         ¿ß»«½∞ºπεΓß∩.  è«úñá ¼«ªÑΓ ñÑ⌐ßΓó¿Γѽ∞¡« ó«º¡¿¬¡πΓ∞ ¡Ñ«íσ«ñ¿¼«ßΓ∞
  2823.         ó ¿ß»«½∞º«óá¡¿¿ ºá»¿ßÑ⌐? è«¡Ñτ¡«, ºá»¿ß¿ ¿ß»«½∞ºπεΓß∩ ¡ÑτáßΓ«, ¡«
  2824.         «¡¿ «τÑ¡∞ πñ«í¡δ:  óÑñ∞ ¡Ñ߬«½∞¬« »«½Ñ⌐ ñá¡¡δσ óδ ¼«ªÑΓÑ ºá»¿ßáΓ∞
  2825.         ó «ñ¿¡ íá⌐Γ ¿½¿ ó ß½«ó«.  ìѬ«Γ«αδÑ ¿ß»«½∞ºπѼδÑ íẫó«⌐ ß¿ßΓѼ«⌐
  2826.         óó«ñá-óδó«ñá (BIOS) »ÑαѼѡ¡δÑ ΓᬪѠßΓαπ¬Γπα¿α«óá¡δ ó ó¿ñÑ ºá»¿-
  2827.         ßÑ⌐.  ìá»α¿¼Ñα,  ¼½áñΦ¿⌐ íá⌐Γ Σ½áúá «í«απñ«óá¡¿∩ BIOS,  ó ¬«Γ«α«¼
  2828.         σαá¡¿Γß∩ «Γ¡«ß∩Θá∩ß∩ ¬ á»»áαáΓ¡«¼π «íÑß»ÑτÑ¡¿ε ¿¡Σ«α¼áµ¿∩ (á¬Γ¿ó-
  2829.         ¡δ⌐ ó¿ñÑ«áñá»ΓÑα,  τ¿ß½« ¿¼ÑεΘ¿σß∩ ñ¿ß¬«ó«ñ«ó ¿ Γ.ñ.) - φΓ«  »«½Ñ
  2830.         ßΓαπ¬Γπαδ:
  2831.  
  2832.          EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1
  2833.  
  2834.         úñÑ:
  2835.  
  2836.              NUMDISKS - τ¿ß½« πßΓá¡«ó½Ñ¡¡δσ ñ¿ß¬«ó«ñ«ó ñ½∩ ú¿í¬¿σ ñ¿ß¬«ó,
  2837.         - 1.
  2838.  
  2839.              VIDEO - »«¬áºδóáÑΓ,  ¬á¬«⌐ Γ¿» ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá ó ñá¡¡δ⌐
  2840.         ¼«¼Ñ¡Γ á¬Γ¿óÑ¡.
  2841.  
  2842.              RSRVD - »«½Ñ,  ºáαѺÑαó¿α«óá¡¡«Ñ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó αẽ¿τ-
  2843.         ¡δσ ¼¿¬α«¬«¼»∞εΓÑαáσ Σ¿α¼δ IBM.
  2844.  
  2845.              MATHCHIP = 1,  Ñß½¿ πßΓá¡«ó½Ñ¡  áα¿Σ¼ÑΓ¿τÑ߬¿⌐  ß«»α«µÑßß«αá
  2846.         (Γ¿»á 8087).
  2847.  
  2848.              AREDISKS = 1,  Ñß½¿ πßΓá¡«ó½Ñ¡δ ñ¿ß¬«ó«ñδ ñ½∩ ú¿í¬¿σ ñ¿ß¬«ó.
  2849.  
  2850.              Åα¿óÑñѼ »α¿¼Ñα Σπ¡¬µ¿¿,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ºá»¿ß∞  EQ_FLAG
  2851.         ¿ «»Ñαᵿ¿ ¡áñ ºá»¿ß∞ε ñ½∩ πßΓᡫ󬿠»«½∩ ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá ó«
  2852.         Σ½áúÑ-»ÑαѼѡ¡«⌐ á»»áαáΓπαδ BIOS:
  2853.  
  2854.         ;
  2855.         ; é«ºóαáΘáÑΓ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ »«½∩ ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá
  2856.         ; Σ½áúá-»ÑαѼѡ¡«⌐ á»»áαáΓπαδ BIOS
  2857.         ;
  2858.         ; éó«ñ: ¡ÑΓ
  2859.         ;
  2860.         ; éδó«ñ:
  2861.         ;     AL = 0, Ñß½¿ ñ¿ß»½Ñ⌐¡δ⌐ áñá»ΓÑα ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¡Ñ óδíαá¡
  2862.         ;          1, Ñß½¿ óδíαá¡ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐¡δ⌐ áñá»ΓÑα 40σ25
  2863.         ;          2, Ñß½¿ óδíαá¡ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐ 80σ25
  2864.  
  2865.         TASM2 #3-5/䫬               = 65 =
  2866.  
  2867.         ;          3, Ñß½¿ óδíαá¡ ¼«¡«σα«¼¡δ⌐ ñ¿ß»½Ñ⌐ 80σ25
  2868.         ;
  2869.         ; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ: AX, CL, ES
  2870.         ;
  2871.         EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1
  2872.         ;
  2873.  
  2874.         GetBIOSEquipmentFlag       PROC
  2875.                 mov     ax,40h
  2876.                 mov     es,ax            ; ES π¬áºδóáÑΓ ¡á ßÑú¼Ñ¡Γ ñá¡¡δσ
  2877.                                          ; BIOS
  2878.                 mov     al,es:[10h]      ; »«½πτ¿Γ∞ ¼½áñΦ¿⌐ íá⌐Γ Σ½áúá
  2879.                                          ; á»»áαáΓπαδ
  2880.                 and     al,MASK VIDEO    ; óδñѽ¿Γ∞ »«½Ñ ñ¿ß»½Ñ⌐¡«ú«
  2881.                                          ; áñá»ΓÑαá
  2882.                 mov     cl,VIDEO         ; »«½πτ¿Γ∞ τ¿ß½« íá⌐Γ ñ½∩
  2883.                                          ; ßñó¿úá »«½∩ ó»αáó« (óδαáó¡¿-
  2884.                                          ; óá¡¿Ñ ó»αáó« ¡á φΓ« »«½Ñ)
  2885.                 shr     al,cl            ; óδα«ó¡∩Γ∞ ó»αáó« ¡á »«½Ñ
  2886.                                          ; ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá
  2887.                 ret
  2888.         GetBIOSEquipmentFlag       ENDP
  2889.  
  2890.              Åα¿óÑñѼ »α¿¼Ñα ñ«»«½¡¿Γѽ∞¡«⌐ Σπ¡¬µ¿¿, ¬«Γ«αá∩ πßΓá¡áó½¿óá-
  2891.         ÑΓ »«½Ñ Σ½áúá á»»áαáΓπαδ BIOS ó ºáñá¡¡«Ñ º¡áτÑ¡¿Ñ:
  2892.  
  2893.         ;
  2894.         ; ôßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ »«½∩ Σ½áúá á»»áαáΓπαδ BIOS
  2895.         ;
  2896.         ; éó«ñ:
  2897.         ;     AL = 0, Ñß½¿ ñ¿ß»½Ñ⌐¡δ⌐ áñá»ΓÑα ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¡Ñ óδíαá¡
  2898.         ;          1, Ñß½¿ óδíαá¡ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐¡δ⌐ áñá»ΓÑα 40σ25
  2899.         ;          2, Ñß½¿ óδíαá¡ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐ ß αѪ¿¼«¼ 80σ25
  2900.         ;          3, Ñß½¿ óδíαá¡ ¼«¡«σα«¼¡δ⌐ ñ¿ß»½Ñ⌐ 80σ25
  2901.         ;
  2902.         ; éδó«ñ: ¡ÑΓ
  2903.         ;
  2904.         ; ìáαπΦáѼδÑ αÑú¿ßΓαδ: AX, CL, ES
  2905.         ;
  2906.         EQ__FLAG RECORD NUMDISKS:2,VIDEO:2,RSRVD:2,MATHCHIP:1,AREDISKS:1
  2907.         ;
  2908.  
  2909.         SetBIOSEquipmentFlag       PROC
  2910.                 mov     ax,40h
  2911.                 mov     es,cx           ; ES π¬áºδóáÑΓ ¡á ßÑú¼Ñ¡Γ ñá¡¡δσ
  2912.                                         ; BIOS
  2913.  
  2914.         TASM2 #3-5/䫬               = 66 =
  2915.  
  2916.                 mov     cl,VIDEO        ; »«½πτ¿Γ∞ τ¿ß½« íá⌐Γ ñ½∩
  2917.                                         ; ßñó¿úá »ÑαÑñáóáѼ«ú« º¡áτÑ¡¿∩
  2918.                                         ; ó½Ñó« ñ½∩ óδαáó¡¿óá¡¿∩ Ñú« ¡á
  2919.                                         ; »«½Ñ ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá
  2920.                 shl     al,cl           ; óδα«ó¡∩Γ∞ º¡áτÑ¡¿Ñ
  2921.                 mov     ah,es:[10h]     ; »«½πτ¿Γ∞ ¼½áñΦ¿⌐ íá⌐Γ Σ½áúá
  2922.                                         ; á»»áαáΓπαδ
  2923.                 and     ah,NOT MASK VIDEO ; «τ¿ßΓ¿Γ∞ »«½Ñ ñ¿ß»½Ñ⌐¡«ú«
  2924.                                         ; áñá»ΓÑαá
  2925.                 and     al,MASK VIDEO   ; «íÑß»Ñτ¿Γ∞ »αáó¿½∞¡«Ñ ºáñá-
  2926.                                         ; ¡¿Ñ ¡«ó«ú« º¡áτÑ¡¿Ñ »«½∩
  2927.                                         ; ñ¿ß»½Ñ⌐¡«ú« áñá»ΓÑαá
  2928.                 or      al,ah           ; ºá¡ÑßΓ¿ ¡«óδ⌐ ñ¿ß»½Ñ⌐¡δ⌐
  2929.                                         ; áñá»ΓÑα
  2930.                 mov     es:[10h],al     ; πßΓá¡«ó¿Γ∞ ¡«óδ⌐ Σ½áú
  2931.                                         ; á»»áαáΓπαδ
  2932.                 ret
  2933.         SetBIOSEquipmentFlag       ENDP
  2934.  
  2935.              é ñá¡¡«¼ αáºñѽѠ¼δ «íßπñ¿½¿ óÑαß¿ε ñ¿αÑ¬Γ¿óδ  RECORD αѪ¿¼á
  2936.         MASM.  é  π½πτΦÑ¡¡«¼  αѪ¿¼Ñ (IDEAL) óÑαß¿∩ ñá¡¡«⌐ ñ¿αÑ¬Γ¿óδ ¡Ñß-
  2937.         ¬«½∞¬« «Γ½¿τáÑΓß∩ «Γ αѪ¿¼á MASM (í«½ÑÑ  »«ñα«í¡«  «í  π½πτΦÑ¡¡«¼
  2938.         αѪ¿¼Ñ αáß߬áºδóáÑΓß∩ ó â½áóÑ 11).
  2939.  
  2940.  
  2941.  
  2942.  
  2943.         TASM2 #3-5/䫬               = 67 =
  2944.  
  2945.                                     ä¿αÑ¬Γ¿óá UNION                            
  2946.         -----------------------------------------------------------------
  2947.  
  2948.              ä¿αÑ¬Γ¿óá UNION «íÑß»Ñτ¿óáÑΓ ß»«ß«í, ß »«¼«Θ∞ε ¬«Γ«α«ú« ¼«ª-
  2949.         ¡« ßßδ½áΓ∞ß∩ ¡á ñá¡¡πε ∩τÑ⌐¬π »á¼∩Γ¿,  ¬á¬ ¡á  ñá¡¡δÑ  ¡Ñ߬«½∞¬¿σ
  2950.         Γ¿»«ó. ¥Γá ñ¿αÑ¬Γ¿óá á¡á½«ú¿τ¡á «»ÑαáΓ«απ union ∩ºδ¬á æ¿.
  2951.  
  2952.              ÅαÑñ»«½«ª¿¼, π óáß ¿¼ÑÑΓß∩ ßτÑΓτ¿¬, ¬«Γ«αδ⌐ ¿¡«úñá ¿ß»«½∞ºπ-
  2953.         ÑΓß∩, ¬á¬ 8-í¿Γ«óδ⌐ ßτÑΓτ¿¬, á ¿¡«úñá - ¬á¬ 16-í¿Γ«óδ⌐. àú« ¼«ª¡«
  2954.         «»¿ßáΓ∞, ¬á¬ ß½ÑñπεΘÑÑ «íΩÑñ¿¡Ñ¡¿Ñ:
  2955.  
  2956.                 .
  2957.                 .
  2958.                 .
  2959.         FLEX_COUNT      UNION
  2960.         COUNT8          DB      ?
  2961.         COUNT16         DW      ?
  2962.         FLEX_COUNT      ENDS
  2963.                 .
  2964.                 .
  2965.                 .
  2966.  
  2967.              çá¼ÑΓ¿¼, τΓ« ¬á¬ ¿ ñ¿αÑ¬Γ¿óá STRUC,  ñ¿αÑ¬Γ¿óá UNION  ñ«½ª¡á
  2968.         ºáóÑαΦáΓ∞ß∩ ß««ΓóÑΓßΓóπεΘÑ⌐ ñ¿αÑ¬Γ¿ó«⌐ ENDS.
  2969.  
  2970.              æ πτÑΓ«¼  »αÑñδñπΘÑú«  «»αÑñѽѡ¿∩ «íΩÑñ¿¡Ñ¡¿∩ FLEX_COUNT óδ
  2971.         ¼«ªÑΓÑ ß«ºñáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ Γᬫ⌐ ñó«⌐¡«⌐ ßτÑΓτ¿¬ ß½ÑñπεΘ¿¼ «í-
  2972.         αẫ¼:
  2973.  
  2974.                 .
  2975.                 .
  2976.                 .
  2977.                 .DATA
  2978.         Counter         FLEX_COUNT      <?,?>
  2979.                 .
  2980.                 .
  2981.                 .
  2982.                 .CODE
  2983.                 .
  2984.                 .
  2985.                 .
  2986.                 mov     [Counter.COUNT16],0ffffh
  2987.         LoopTop:
  2988.                 .
  2989.                 .
  2990.                 .
  2991.  
  2992.         TASM2 #3-5/䫬               = 68 =
  2993.  
  2994.                 dec     [Count.COUNT16]
  2995.                 jnz     LoopTop
  2996.                 .
  2997.                 .
  2998.                 .
  2999.                 mov     [Counter.COUNT8],255
  3000.         ShortLoopTop:
  3001.                 .
  3002.                 .
  3003.                 .
  3004.                 dec     [Counter.COUNT8]
  3005.                 jnz     LoopTop
  3006.                 .
  3007.                 .
  3008.                 .
  3009.  
  3010.              èᬠ¿ »α¿ ¿ß»«½∞º«óá¡¿¿ ßΓαπ¬Γπαδ,  «»Ñαᵿ∩ Γ«τ¬¿ ¿ß»«½∞ºπ-
  3011.         ÑΓß∩ ñ½∩ ßß佬¿ ¡á »«½∩  «íΩÑñ¿¡Ñ¡¿∩  (¼«ª¡«  ΓᬪѠ ¿ß»«½∞º«óáΓ∞
  3012.         «»Ñαᵿε +). æßδ½¬á ¡á »ÑαѼѡ¡πε ß »«¼«Θ∞ε »«½Ñ⌐ «íΩÑñ¿¡Ñ¡¿∩ φ¬-
  3013.         ó¿óá½Ñ¡Γ¡á ¿ß»«½∞º«óá¡¿ε »ÑαÑ«»αÑñѽѡ¿∩ Γ¿»á.  ÅαÑñδñπΘ¿⌐ »α¿¼Ñα
  3014.         φ¬ó¿óá½Ñ¡ΓÑ¡ ß½ÑñπεΘѼπ:
  3015.  
  3016.                 .
  3017.                 .
  3018.                 .
  3019.                 .DATA
  3020.         Counter         DW      ?
  3021.                 .
  3022.                 .
  3023.                 .
  3024.                 .CODE
  3025.                 .
  3026.                 .
  3027.                 .
  3028.                 mov     WORD PTR [Counter],0ffffh
  3029.         LoopTop:
  3030.                 .
  3031.                 .
  3032.                 .
  3033.                 dec     WORD PTR [Counter]
  3034.                 jnz     LoopTop
  3035.                 .
  3036.                 .
  3037.                 .
  3038.                 mov     BYTE PTR [Counter],255
  3039.         ShortLoopTop:
  3040.  
  3041.         TASM2 #3-5/䫬               = 69 =
  3042.  
  3043.                 .
  3044.                 .
  3045.                 .
  3046.                 dec     BYTE PTR [Counter]
  3047.                 jnz     LoopTop
  3048.                 .
  3049.                 .
  3050.                 .
  3051.  
  3052.              ÅαÑ¿¼πΘÑßΓó« ¿ß»«½∞º«óá¡¿∩  «íΩÑñ¿¡Ñ¡¿⌐  »«  ßαáó¡Ñ¡¿ε ß ¿ß-
  3053.         »«½∞º«ó᡿Ѽ »ÑαÑ«»αÑñѽѡ¿⌐ Γ¿»á ß«ßΓ«¿Γ ó Γ«¼, τΓ« óδ ß í«½∞ΦÑ⌐
  3054.         óÑα«∩Γ¡«ßΓ∞ε ¿ß»«½∞ºπÑΓÑ ¬«ααÑ¬Γ¡«Ñ ¿¼∩ φ½Ñ¼Ñ¡Γá «íΩÑñ¿¡Ñ¡¿∩, τѼ
  3055.         íπñÑΓÑ ¬áªñδ⌐ αẠóß»«¼¿¡áΓ∞ « »ÑαÑ«»αÑñѽѡ¿¿ Γ¿»á.  èα«¼Ñ Γ«ú«,
  3056.         »«óΓ«α∩εΘá∩ß∩  «»Ñαᵿ∩ ß »ÑαѼѡ¡«⌐-«íΩÑñ¿¡Ñ¡¿Ñ¼ ßΓá¡«ó¿Γß∩ «τÑ-
  3057.         ó¿ñ¡«⌐,  Ñß½¿ óδ »«ß¼«Γα¿ΓÑ ¡á  «»αÑñѽѡ¿Ñ  »ÑαѼѡ¡«⌐,  »«φΓ«¼π
  3058.         »α«úαá¼¼π,  ó ¬«Γ«α«⌐ ß«ñÑαªáΓß∩ «íΩÑñ¿¡Ñ¡¿∩, ú«αáºñ« ½ÑúτÑ »«¡¿-
  3059.         ¼áΓ∞ ¿ «íß½πª¿óáΓ∞.
  3060.  
  3061.              é «íΩÑñ¿¡Ñ¡¿∩σ ¼«ª¡« ¿ß»«½∞º«óáΓ∞  ó½«ªÑ¡¡δÑ  «íΩÑñ¿¡Ñ¡¿∩  ¿
  3062.         ßΓαπ¬Γπαδ. ìá»α¿¼Ñα, ß½ÑñπεΘÑÑ «íΩÑñ¿¡Ñ¡¿Ñ »«ºó«½∩ÑΓ «αúá¡¿º«óáΓ∞
  3063.         ñ«ßΓπ» ¬ 4-íá⌐Γ«ó«⌐ »ÑαѼѡ¡«⌐ »á¼∩Γ¿ ½¿í«  ¬á¬  π¬áºáΓÑ½ε  (Γ¿»á
  3064.         ßÑú¼Ñ¡Γ:ß¼ÑΘÑ¡¿Ñ)  αẼÑα«¼  ó  ñó«⌐¡«Ñ ß½«ó«,  ½¿í« ¬á¬ »ÑαѼѡ-
  3065.         ¡«⌐-ß¼ÑΘÑ¡¿ε αẼÑα«¼ ó ß½«ó« ¿  »ÑαѼѡ¡«⌐-ßÑú¼Ñ¡Γπ  αẼÑα«¼  ó
  3066.         ß½«ó«:
  3067.  
  3068.                 .
  3069.                 .
  3070.                 .
  3071.         SEG_OFF         STRUC
  3072.         POFF    DW      ?
  3073.         PSEG    DW      ?
  3074.         SEG_OFF         ENDS
  3075.                 .
  3076.                 .
  3077.                 .
  3078.         PUNION          UNION
  3079.         DPTR    DD      ?
  3080.         XPTR    SEG_OFF <>
  3081.         PUNION          ENDS
  3082.                 .
  3083.                 .
  3084.                 .
  3085.                 .CODE
  3086.                 .
  3087.                 .
  3088.                 .
  3089.  
  3090.         TASM2 #3-5/䫬               = 70 =
  3091.  
  3092.                 mov     [bx.XPTR.POFF],si
  3093.                 mov     [bx.XPTR.PSEG],ds
  3094.                 .
  3095.                 .
  3096.                 .
  3097.                 les     di,[bx.DPTR]
  3098.                 .
  3099.                 .
  3100.                 .
  3101.  
  3102.  
  3103.              èᬠ¿  »α¿ ¿ß»«½∞º«óá¡¿¿ ñ¿αÑ¬Γ¿ó STRUC ¿ RECORD,  ¿¼Ñ¡á »«-
  3104.         ½Ñ⌐,  «»αÑñѽ∩Ѽδσ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ UNION,  »αÑñßΓáó½∩εΓ ß«í«⌐
  3105.         «íδτ¡δÑ  ¼ÑΓ¬¿.  é  π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ñ¿αÑ¬Γ¿óá UNION º¡áτ¿Γѽ∞¡«
  3106.         í«½ÑÑ ¼«Θ¡á∩ ¿ »αÑñ«ßΓáó½∩ÑΓ ¼¡«ªÑßΓó« ßαÑñßΓó,  ¬«Γ«αδÑ ñ«ßΓπ»¡δ
  3107.         ó  ∩ºδ¬áσ  óδß«¬«ú« πα«ó¡∩ («í π½πτΦÑ¡¡«¼ αѪ¿¼Ñ αáß߬áºδóáÑΓß∩ ó
  3108.         â½áóÑ 11).
  3109.  
  3110.  
  3111.  
  3112.  
  3113.         TASM2 #3-5/䫬               = 71 =
  3114.  
  3115.                                                                                
  3116.         ä¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó
  3117.         -----------------------------------------------------------------
  3118.  
  3119.               é â½áóÑ 5 ¼δ πªÑ αáß߬áºδó὿ « Γ«¼, ¬á¬ ¿ß»«½∞º«óáΓ∞ π»α«-
  3120.         ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó.  éδ πªÑ ΓᬪѠº¡áÑΓÑ ñ«ß-
  3121.         ΓáΓ«τ¡«  «  ßΓá¡ñáαΓ¡δσ  ñ¿αÑ¬Γ¿óáσ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  τΓ«íδ
  3122.         ß«ºñáΓ∞ αáí«τπε »α«úαá¼¼π.  ÆÑ»Ñα∞ ¼δ «íßπñ¿¼ ¬áªñπε ¿º ßΓá¡ñáαΓ-
  3123.         ¡δσ  ñ¿αÑ¬Γ¿ó  «»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó  »«ñα«í¡« ¿ ñáñ¿¼ óá¼ í«½ÑÑ
  3124.         »«ñα«í¡πε ¿¡Σ«α¼áµ¿ε « Γ«¼, τΓ« »αÑñßΓáó½∩εΓ ß«í«⌐ π»α«ΘÑ¡¡δÑ ñ¿-
  3125.         αÑ¬Γ¿óδ  «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó.  îδ αáßß¼«Γα¿¼ ΓᬪѠ»α¿¼Ñα »α«ú-
  3126.         αá¼¼δ, ó ¬«Γ«α«⌐ ¿ß»«½∞ºπεΓß∩ ¡Ñ߬«½∞¬« ñ¿αÑ¬Γ¿ó «»αÑñѽѡ¿∩ ¬«ñá
  3127.         ¿  ñá¡¡δσ,  τΓ«íδ  óδ »«½πτ¿½¿ »αÑñßΓáó½Ñ¡¿Ñ « Γ«¼,  ¬á¬ αáí«ΓáÑΓ
  3128.         »α«úαá¼¼á, ß«ßΓ«∩Θá∩ ¿º ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó.
  3129.  
  3130.              éß»«¼¡¿¼, τΓ«  π»α«ΘÑ¡¡δÑ  ñ¿αÑ¬Γ¿óδ  «»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó
  3131.         ½ÑúτÑ ¿ß»«½∞º«óáΓ∞, ¡« «¡¿ ¼Ñ¡ÑÑ ¼«Θ¡δÑ, τѼ ßΓá¡ñáαΓ¡δÑ (»«½¡δÑ)
  3132.         ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó. é ß½ÑñπεΘ¿σ αáºñѽáσ ¼δ αáßß¼«Γ-
  3133.         α¿¼   ΓᬿѠ ßΓá¡ñáαΓ¡δÑ  ñ¿αÑ¬Γ¿óδ  «»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó,  ¬á¬
  3134.         SEGMENT, GROUP ¿ ASSUME.
  3135.  
  3136.  
  3137.  
  3138.  
  3139.         TASM2 #3-5/䫬               = 72 =
  3140.  
  3141.                                                                                
  3142.         ä¿αÑ¬Γ¿óá SEGMENT
  3143.         -----------------------------------------------------------------
  3144.  
  3145.              ä¿αÑ¬Γ¿óá SEGMENT  ¿ß»«½∞ºπÑΓß∩ ñ½∩ Γ«ú«,  τΓ«íδ ¡áτáΓ∞ ßÑú-
  3146.         ¼Ñ¡Γ.  èáªñ«⌐ ñ¿αÑ¬Γ¿óÑ SEGMENT ñ«½ª¡á ß««ΓóÑΓßΓó«óáΓ∞  ñ¿αÑ¬Γ¿óá
  3147.         ENDS, ºáóÑαΦáεΘá∩ ßÑú¼Ñ¡Γ. é «Γ½¿τ¿Ñ «Γ π»α«ΘÑ¡¡δσ ñ¿αÑ¬Γ¿ó «»αÑ-
  3148.         ñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  ñ¿αÑ¬Γ¿óá SEGMENT »«ºó«½∩ÑΓ óá¼ »«½¡«ßΓ∞ε π»-
  3149.         αáó½∩Γ∞ áΓα¿íπΓἿ ¬áªñ«ú« ßÑú¼Ñ¡Γá.
  3150.  
  3151.              Å«½¡á∩ Σ«α¼á ñ¿αÑ¬Γ¿óδ SEGMENT ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  3152.  
  3153.              ¿¼∩ SEGMENT óδαáó¡¿óá¡¿Ñ ¬«¼í¿¡¿α«óá¡¿Ñ ¿ß»«½∞º«óá¡¿Ñ '¬½áßß'
  3154.  
  3155.         úñÑ »«½∩  óδαáó¡¿óá¡¿Ñ",  "¬«¼í¿¡¿α«óá¡¿Ñ",   "¿ß»«½∞º«óá¡¿Ñ"   ¿
  3156.         "¬½áßß" ¡Ñ«í∩ºáΓѽ∞¡δ.  èáªñ«Ñ ¿º φΓ¿σ »«½Ñ⌐ ¼δ «íßπñ¿¼ »««τÑαÑñ-
  3157.         ¡«.
  3158.  
  3159.                               Å«½∩ "¿¼∩" ¿ "óδαáó¡¿óá¡¿Ñ"                      
  3160.         -----------------------------------------------------------------
  3161.  
  3162.              Å«½Ñ "¿¼∩"  ºáñáÑΓ  ¿¼∩  ßÑú¼Ñ¡Γá.  ê¼Ñ¡á ßÑú¼Ñ¡Γ«ó ∩ó½∩εΓß∩
  3163.         ¼ÑΓ¬á¼¿,  »«φΓ«¼π ó ßó«¿σ ¿ßσ«ñ¡δσ ¼«ñπ½∩σ «¡¿ ñ«½ª¡δ  íδΓ∞  π¡¿-
  3164.         ¬á½∞¡δ. Åα¿ ºáóÑαΦÑ¡¿¿ ßÑú¼Ñ¡Γá Γ« ªÑ ¿¼∩ ñ«½ª¡« ¿ß»«½∞º«óáΓ∞ß∩ ó
  3165.         ñ¿αÑ¬Γ¿óÑ ENDS.
  3166.  
  3167.              Å«½Ñ "óδαáó¡¿óá¡¿Ñ" ºáñáÑΓ úαá¡¿µπ »á¼∩Γ¿,  ß ¬«Γ«α«⌐ ñ«½ªÑ¡
  3168.         ¡áτ¿¡áΓ∞ß∩ ßÑú¼Ñ¡Γ. ä«»πßΓ¿¼δ ß½ÑñπεΘ¿Ñ úαá¡¿µδ óδαáó¡¿óá¡¿∩:
  3169.  
  3170.          BYTE  -  ¿ß»«½∞ºπÑΓß∩ ß½ÑñπεΘ¿⌐ ñ«ßΓπ»¡δ⌐ áñαÑß íá⌐Γá.
  3171.          DWORD -  ¿ß»«½∞ºπÑΓß∩ ß½ÑñπεΘ¿⌐  áñαÑß, óδα«ó¡Ñ¡¡δ⌐  ¡á  úαá¡¿µπ
  3172.                   ñó«⌐¡«ú«  ß½«óá.
  3173.          PAGE  -  ¿ß»«½∞ºπÑΓß∩ áñαÑß ß½ÑñπεΘÑ⌐ ßΓαá¡¿µδ (óδαáó¡¿óáÑΓß∩ ¡á
  3174.                   úαá¡¿µπ, ¬αáΓ¡πε 256 íá⌐Γá¼).
  3175.          PARA  -  ¿ß»«½∞ºπÑΓß∩ ß½ÑñπεΘ¿⌐  áñαÑß  »áαáúαáΣá (óδαáó¡¿óáÑΓß∩
  3176.                   áñαÑßπ, ¬αáΓ¡«¼π 16 íá⌐Γá¼.
  3177.          WORD  -  ¿ß»«½∞ºπÑΓß∩ ß½ÑñπεΘ¿⌐ áñαÑß,  óδα«ó¡Ñ¡¡δ⌐  ¡á  úαá¡¿µπ
  3178.                   ß½«óá.
  3179.  
  3180.              ä½∩ í«½∞Φ¿¡ßΓóá ¬«¼»á¬Γ¡δσ »α«úαá¼¼ »«ñσ«ñ¿Γ óδαáó¡¿óá¡¿Ñ ¡á
  3181.         úαá¡¿µπ íá⌐Γá. é í«½∞Φ¿¡ßΓóÑ 16-αáºα∩ñ¡δ󠬫¼»∞εΓÑα«ó (Γᬿσ, ¬á¬
  3182.         AT) í«½ÑÑ »αÑñ»«τΓ¿Γѽ∞¡« óδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá,  Γᬠ¬á¬
  3183.         16-αáºα∩ñ¡δÑ »α«µÑßß«αδ í«½ÑÑ φΣΣÑ¬Γ¿ó¡« αáí«ΓáεΓ ß ñá¡¡δ¼¿,  óδ-
  3184.         α«ó¡Ñ¡¡δ¼¿  ¡á  úαá¡¿µπ ß½«óá.  Å« ΓѼ ªÑ »α¿τ¿¡á¼ ó 32-αáºα∩ñ¡δσ
  3185.         ¬«¼»∞εΓÑαáσ »αÑñ»«τΓ¿Γѽ∞¡ÑÑ  óδαáó¡¿óá¡¿Ñ  ¡á  úαá¡¿µπ  ñó«⌐¡«ú«
  3186.         ß½«óá.  éδαáó¡¿óá¡¿Ñ  ¡á úαá¡¿µπ »áαáúαáΣá ¡Ñ«íσ«ñ¿¼« ñ½∩ ßÑú¼Ñ¡-
  3187.  
  3188.         TASM2 #3-5/䫬               = 73 =
  3189.  
  3190.         Γ«ó, ¬«Γ«αδÑ íπñπΓ »«½¡«ßΓ∞ε ºá¡¿¼áΓ∞ «íΩѼ 64è.
  3191.  
  3192.                                  Å«½Ñ "¬«¼í¿¡¿α«óá¡¿Ñ"                         
  3193.         -----------------------------------------------------------------
  3194.  
  3195.              Å«½Ñ "¬«¼í¿¡¿α«óá¡¿Ñ" π»αáó½∩ÑΓ ΓѼ ß»«ß«í«¼,  ß »«¼«Θ∞ε ¬«-
  3196.         Γ«α«ú« ßÑú¼Ñ¡Γδ ß ΓѼ¿ ªÑ ¿¼Ñ¡á¼¿ ó ñαπú¿σ  ¼«ñπ½∩σ  íπñπΓ  ß«τÑ-
  3197.         ΓáΓ∞ß∩ ß ñá¡¡δ¼ ¼«ñπ½Ñ¼ »α¿ ¿σ ¬«¼»«¡«ó¬Ñ.  ¥Γ« »«½Ñ ¼«ªÑΓ »α¿¡¿-
  3198.         ¼áΓ∞ ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
  3199.  
  3200.                         AT                 PRIVATE
  3201.                         COMMON             PUBLIC
  3202.                         MEMORY             STACK
  3203.                         VIRTUAL
  3204.  
  3205.              éδ ¼«ªÑΓÑ ΓᬪѠ»α«ß¼«ΓαÑΓ∞  »«ß½Ññ¡¿⌐  αáºñѽ  ("ô»α«ΘÑ¡¡δÑ
  3206.         ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó"), úñÑ »«¬áºá¡δ Γ¿»δ ¬«¼í¿¡¿α«óá-
  3207.         ¡¿∩, ¿ß»«½∞ºπѼδÑ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩.
  3208.  
  3209.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ AT »α¿ó«ñ¿Γ ¬ Γ«¼π,  τΓ« ¡áτὫ  ßÑú¼Ñ¡Γá
  3210.         íπñÑΓ αẼÑΘáΓ∞ß∩ »« π¬áºá¡¡«¼π áñαÑßπ ó »á¼∩Γ¿.  ÉÑá½∞¡δ⌐ ¬«ñ ¡Ñ
  3211.         úÑ¡Ñα¿απÑΓß∩, ó¼ÑßΓ« φΓ«ú« ßÑú¼Ñ¡Γδ ß Γ¿»«¼ ¬«¼í¿¡¿α«óá¡¿∩ (ß«τÑ-
  3212.         Γá¡¿∩) AT ¿ß»«½∞ºπεΓß∩, ¬á¬ ΓαáΣáαÑΓ ñ½∩ ñ«ßΓπ»á ¬ «í½áßΓ∩¼ »á¼∩-
  3213.         Γ¿,  Γᬿ¼, ¬á¬ ßÑú¼Ñ¡Γ ñá¡¡δσ Åçô íẫó«⌐ ß¿ßΓѼδ óó«ñá-óδó«ñá ¿
  3214.         ñ¿ß»½Ñ⌐¡á∩ »á¼∩Γ∞. ìá»α¿¼Ñα:
  3215.  
  3216.                 .
  3217.                 .
  3218.                 .
  3219.         VGA_GRAPHICS_MEMORY SEGMENT AT 0A000h
  3220.         BitMapStart     LABEL   BYTE
  3221.         VGA_GRAPHICS_MEMORY ENDS
  3222.                 .
  3223.                 .
  3224.                 .
  3225.                 mov     ax,VGA_GRAPHICS_MEMORY
  3226.                 mov     es,ax
  3227.                 ASSUME  ES:VGA_GRAPHICS_MEMORY
  3228.                 mov     cx,08000h
  3229.                 sub     ax,ax
  3230.                 cld
  3231.                 rep     stosw
  3232.                 .
  3233.                 .
  3234.                 .
  3235.  
  3236.         TASM2 #3-5/䫬               = 74 =
  3237.  
  3238.  
  3239.         «τ¿ΘáÑΓ úαáΣ¿τÑ߬¿⌐ φ¬αá¡ áñá»ΓÑαá VGA.
  3240.  
  3241.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ COMMON ºáñáÑΓ, τΓ« ¡áτὫ ñá¡¡«ú« ßÑú¼Ñ¡-
  3242.         Γá ¿ ¡áτὫ ñαπú¿σ ßÑú¼Ñ¡Γ«ó  ß ΓѼ  ªÑ  ¿¼Ñ¡Ñ¼  ñ«½ª¡«  óδαáó¡¿-
  3243.         óáΓ∞ß∩ Γᬿ¼ «íαẫ¼,  τΓ« ßÑú¼Ñ¡Γδ íπñπΓ »ÑαѬαδóáΓ∞ ñαπú ñαπúá.
  3244.         ÄíΘ¿⌐ αẼÑα ßÑú¼Ñ¡Γá »αÑñßΓáó½∩ÑΓ ß«í«⌐ αẼÑα ¡á¿í«½∞ΦÑú«  ßÑú-
  3245.         ¼Ñ¡Γá ß ñá¡¡δ¼  ¿¼Ñ¡Ñ¼.  Äñ¿¡ ¿º ß»«ß«í«ó ¿ß»«½∞º«óá¡¿∩ Γ¿»á ¬«¼-
  3246.         í¿¡¿α«óá¡¿∩ COMMON ß«ßΓ«¿Γ ó« ó¬½ετÑ¡¿¿ Σá⌐½á,  ó ¬«Γ«α«¼ «»αÑñÑ-
  3247.         ½∩ÑΓß∩  ßÑú¼Ñ¡Γ  COMMON,  ó ¬áªñ«¼ ¼«ñπ½Ñ,  úñÑ ¿¼ÑÑΓß∩ ßßδ½¬á ¡á
  3248.         ñá¡¡δ⌐ ßÑú¼Ñ¡Γ, í½áú«ñáα∩ τѼπ óßÑ ¼«ñπ½¿ ¼«úπΓ ß«ó¼ÑßΓ¡« ¿ß»«½∞-
  3249.         º«óáΓ∞ «ñ¿¡ ¿ Γ«Γ ªÑ ßÑú¼Ñ¡Γ.
  3250.  
  3251.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ PUBLIC π¬áºδóáÑΓ ¬«¼»«¡«óΘ¿¬π,  τΓ« ¡πª¡«
  3252.         óδ»«½¡¿Γ∞ ¬«¡¬áΓѡᵿε ñá¡¡«ú« ßÑú¼Ñ¡Γá ß  ñαπú¿¼¿  ßÑú¼Ñ¡ΓἿ  ß
  3253.         ΓѼ  ªÑ  ¿¼Ñ¡Ñ¼,  í½áú«ñáα∩ τѼπ ßÑú¼Ñ¡Γδ ß«ßΓáó½∩εΓ «ñ¿¡ í«½∞Φ«⌐
  3254.         ßÑú¼Ñ¡Γ.  ÄíΘ¿⌐ αẼÑα ßÑú¼Ñ¡Γá »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßπ¼¼π αẼÑα«ó
  3255.         óßÑσ  ßÑú¼Ñ¡Γ«ó  ß φΓ¿¼ ¿¼Ñ¡Ñ¼.  ÄíΘ¿⌐ αẼÑα ßÑú¼Ñ¡Γ«ó PUBLIC ¡Ñ
  3256.         ñ«½ªÑ¡ »αÑóδΦáΓ∞ 64è (¬á¬ ¿ αẼÑα óßÑσ  ñαπú¿σ  ßÑú¼Ñ¡Γ«ó).  Æ¿»
  3257.         PUBLIC ¿ß»«½∞ºπÑΓß∩, ¬«úñá ¡Ñ߬«½∞¬« ¼«ñπ½Ñ⌐ ß«ó¼ÑßΓ¡« ¿ß»«½∞ºπεΓ
  3258.         «ñ¿¡ ¿ Γ«Γ ªÑ ßÑú¼Ñ¡Γ, ¡« ¬áªñδ⌐ ¼«ñπ½∞ «»αÑñѽ∩ÑΓ ßó«¿ ß«íßΓóÑ¡-
  3259.         ¡δÑ »ÑαѼѡ¡δÑ. ÅÑαѼѡ¡δÑ ó ßÑú¼Ñ¡Γáσ PUBLIC ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ
  3260.         GLOBAL τáßΓ« ¿ß»«½∞ºπεΓß∩ ¼«ñπ½∩¼¿ ß«ó¼ÑßΓ¡«.
  3261.  
  3262.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ MEMORY - φΓ« Γ«ªÑ ßἫÑ,  τΓ« Γ¿» PUBLIC.
  3263.  
  3264.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ STACK π¬áºδóáÑΓ ¬«¼»«¡«óΘ¿¬π,  τΓ«  ¡πª¡«
  3265.         óδ»«½¡¿Γ∞ ¬«¡¬áΓѡᵿε óßÑσ ßÑú¼Ñ¡Γ«ó ß ñá¡¡δ¼ ¿¼Ñ¡Ñ¼ ó «ñ¿¡ ßÑú-
  3266.         ¼Ñ¡Γ, ¿  »«ßΓα«¿Γ∞ Σá⌐½ .àòà,  τΓ«íδ »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ αÑ-
  3267.         ú¿ßΓαδ SS:SP π¬áºδó὿ ¡á ¬«¡Ñµ φΓ«ú« ßÑú¼Ñ¡Γá.  ¥Γ«  ß»Ñµ¿á½∞¡δ⌐
  3268.         Γ¿» ¬«¼í¿¡¿α«óá¡¿∩, ¬«Γ«αδ⌐ ñ«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« ñ½∩ ßΓÑ-
  3269.         ¬á ¿ ¡¿ ñ½∩ τÑú« í«½ÑÑ.
  3270.  
  3271.              Æ¿» ¬«¼í¿¡¿α«óá¡¿∩ VIRTUAL «»αÑñѽ∩ÑΓ  ßÑú¼Ñ¡Γ  ß»Ñµ¿á½∞¡«ú«
  3272.         ó¿ñá, ¬«Γ«αδ⌐ íπñÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩, ¬á¬ «íΘá∩ «í½áßΓ∞, ¿ »α¿-
  3273.         ß«Ññ¿¡∩Γ∞ß∩ ó« óαѼ∩ ¬«¼»«¡«ó¬¿ ¬ ñαπú«¼π ßÑú¼Ñ¡Γπ. ÅαÑñ»«½áúáÑΓ-
  3274.         ß∩, τΓ«  ßÑú¼Ñ¡Γ VIRTUAL »α¿ß«Ññ¿¡∩ÑΓß∩ ¬ ßÑú¼Ñ¡Γπ,  ó ¬«Γ«αδ⌐ «¡
  3275.         ó½«ªÑ¡. ÄΓ φΓ«ú« ßÑú¼Ñ¡Γá ßÑú¼Ñ¡Γ VIRTUAL ¡áß½ÑñπÑΓ áΓα¿íπΓδ. ä¿-
  3276.         αÑ¬Γ¿óá ASSUME αáßß¼áΓα¿óáÑΓ ßÑú¼Ñ¡Γ VIRTUAL, ¬á¬ τáßΓ∞ Ñú« α«ñ¿-
  3277.         Γѽ∞߬«ú« ßÑú¼Ñ¡Γá, ñαπú¿¼¿ ß½«óἿ, ßÑú¼Ñ¡ΓÑ VIRTUAL ¿¡ΓÑα»αÑΓ¿-
  3278.         απÑΓß∩, ¬á¬  «íδτ¡δ⌐ ßÑú¼Ñ¡Γ.  è«¼»«¡«óΘ¿¬ αáßß¼áΓα¿óáÑΓ ßÑú¼Ñ¡Γδ
  3279.         VIRTUAL, ¬á¬ «íΘπε «í½áßΓ∞,  ¬«Γ«αá∩ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ αáº¡δ¼¿
  3280.         ¼«ñπ½∩¼¿. ¥Γ«  »«ºó«½∩ÑΓ  ß«ó¼ÑßΓ¡« ¿ß»«½∞º«óáΓ∞ ó αạδσ ¼«ñπ½∩σ
  3281.         ßΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ, ß«ñÑαªáΘ¿Ñß∩ ó« ó¬½ετáѼδσ Σá⌐½áσ.
  3282.  
  3283.              ìᬫ¡Ñµ, Γ¿»  ¬«¼í¿¡¿α«óá¡¿∩ PRIVATE π¬áºδóáÑΓ ¬«¼»«¡«óΘ¿¬π,
  3284.  
  3285.         TASM2 #3-5/䫬               = 75 =
  3286.  
  3287.         τΓ« ñá¡¡δ⌐ ßÑú¼Ñ¡Γ ¡Ñ ß½ÑñπÑΓ ß«τÑΓáΓ∞ ¡¿ ß ¬á¬¿¼¿  ñαπú¿¼¿  ßÑú-
  3288.         ¼Ñ¡ΓἿ.  ¥Γ« »«ºó«½∩ÑΓ óá¼ «»αÑñѽ∩Γ∞ ßÑú¼Ñ¡Γδ, ¬«Γ«αδÑ ∩ó½∩εΓß∩
  3289.         ½«¬á½∞¡δ¼¿ »« «Γ¡«ΦÑ¡¿ε ¬ ñá¡¡«¼π ¼«ñπ½ε (»α¿ φΓ«¼ ¡Ñ ¡πª¡«  íÑß-
  3290.         »«¬«¿Γ∞ß∩  « ó«º¼«ª¡δ󠬫¡Σ½¿¬Γáσ ß ßÑú¼Ñ¡ΓἿ ß ΓѼ¿ ªÑ ¿¼Ñ¡á¼¿,
  3291.         ¿ß»«½∞ºπεΘ¿¼¿ß∩ ó ñαπú¿σ ¼«ñπ½∩σ. àß½¿ Γ¿» ¬«¼í¿¡¿α«óá¡¿∩ ¡Ñ π¬á-
  3292.         ºδóáÑΓß∩, Γ« ñ½∩ ßÑú¼Ñ¡Γ«ó »« π¼«½τá¡¿ε ºáñáÑΓß∩ Γ¿» ¬«¼í¿¡¿α«óá-
  3293.         ¡¿∩ PRIVATE.
  3294.  
  3295.                                                                                
  3296.         ìạáτÑ¡¿Ñ »«½Ñ⌐ "¿ß»«½∞º«óá¡¿Ñ" ¿ "¬½áßß"
  3297.         -----------------------------------------------------------------
  3298.  
  3299.              Å«½Ñ "¿ß»«½∞º«óá¡¿Ñ"  ñ¿αÑ¬Γ¿óδ SEGMENT »αÑñ¡áº¡áτÑ¡« Γ«½∞¬«
  3300.         ñ½∩ αáí«Γδ ß »α«µÑßß«α«¼ 80386. ü«½ÑÑ »«ñα«í¡« «í φΓ«¼ »«½Ñ αáßß-
  3301.         ¬áºδóáÑΓß∩ ó â½áóÑ 10.
  3302.  
  3303.              Å«½Ñ "¬½áßß" ¿ß»«½∞ºπÑΓß∩ ñ½∩ π»αáó½Ñ¡¿∩ »«α∩ñ¬«¼, ó ¬«Γ«α«¼
  3304.         ¬«¼»«¡«óΘ¿¬ αẼÑΘáÑΓ ßÑú¼Ñ¡Γδ.  éßÑ ßÑú¼Ñ¡Γδ ñá¡¡«ú« ¬½áßßá αáº-
  3305.         ¼ÑΘáεΓß∩  ó ¡Ñ»αÑαδó¡«¼ í½«¬Ñ »á¼∩Γ¿,  ¡Ñºáó¿ß¿¼« «Γ ¿σ »«α∩ñ¬á ó
  3306.         ¿ßσ«ñ¡«¼ ¬«ñÑ.  é αáºñѽѠ"ô»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩  ßÑú-
  3307.         ¼Ñ¡Γ«ó  »«¬áºá¡δ  ¬½áßßδ,  ¿ß»«½∞ºπѼδÑ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩.
  3308.         ä½∩ »α«ßΓ«Γδ óδ ¼«ªÑΓÑ ß«í½εñáΓ∞ φΓ¿ ß«ú½áΦÑ¡¿∩.  (ü«½ÑÑ »«ñα«í¡«
  3309.         «í  π»«α∩ñ«τ¿óá¡¿¿ ßÑú¼Ñ¡Γ«ó αáß߬áºδóáÑΓß∩ ó ß½ÑñπεΘѼ αáºñѽÑ.)
  3310.  
  3311.                     ÉẼÑα, Γ¿», ¿¼∩ ¿ πα«óÑ¡∞ ó½«ªÑ¡¡«ßΓ¿ ßÑú¼Ñ¡Γá            
  3312.         -----------------------------------------------------------------
  3313.  
  3314.              ÄíΘ¿⌐ αẼÑα ßÑú¼Ñ¡Γ«ó ó ¬½áßßÑ «úαá¡¿τÑ¡  Γ«½∞¬«  ñ«ßΓπ»¡«⌐
  3315.         ó«  óαѼ∩  óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ »á¼∩Γ∞ε.  Äñ¡á¬« αẼÑα «Γñѽ∞¡δσ
  3316.         ßÑú¼Ñ¡Γ«ó ¡Ñ ¼«ªÑΓ »αÑóδΦáΓ∞ 64è.
  3317.  
  3318.              çá¼ÑΓ¿¼, τΓ« Γ¿» ¬½áßßá (Ñß½¿ «¡ »α¿ßπΓßΓóπÑΓ) ñ«½ªÑ¡ ºá¬½ε-
  3319.         τáΓ∞ß∩ ó ¬áóδτ¬¿. Æ¿» ¬½áßßá ñ«½ªÑ¡ íδΓ∞ π¡¿¬á½Ñ¡ ó ñá¡¡«¼ ¿ßσ«ñ-
  3320.         ¡«¼ ¼«ñπ½Ñ, Γ« ÑßΓ∞ ¡¿¬á¬á∩ ¿ß»«½∞ºπѼá∩ ó ñá¡¡«¼ ¼«ñπ½Ñ ¼ÑΓ¬á ¡Ñ
  3321.         ¼«ªÑΓ Γ«ªÑ ¿¼∩,  τΓ« ¿ ¿¼∩ ¬½áßßá, π¬áºá¡¡«Ñ ó φΓ«¼ ¼«ñπ½Ñ. Äñ¡á-
  3322.         ¬«,  óδ ñ«½ª¡δ πíÑñ¿Γ∞ß∩,  τΓ« óßÑ «»αÑñѽѡ¿∩ ñá¡¡«ú« ßÑú¼Ñ¡Γá ó
  3323.         ¿ßσ«ñ¡«¼  ¼«ñπ½Ñ ¿¼ÑεΓ «ñ¡¿ ¿ ΓÑ ªÑ áΓα¿íπΓδ,  ó »α«Γ¿ó¡«¼ ß½πτáÑ
  3324.         Æπαí« ÇßßѼí½Ñα íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ «Φ¿í¬π.
  3325.  
  3326.              ôñ«í¡δ⌐ ß»«ß«í ¿ºíѪáΓ∞ Γᬿσ «Φ¿í«¬ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ«-
  3327.         íδ ºáñáΓ∞ áΓα¿íπΓδ Γ«½∞¬« «ñ¿¡ αẠ»α¿ «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá ó ¿ß-
  3328.         σ«ñ¡«¼ ¼«ñπ½Ñ.  àß½¿ »α¿ »«óΓ«α¡«¼ «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá  áΓα¿íπΓδ
  3329.         «í¡áαπªÑ¡δ ¡Ñ íπñπΓ,  Γ« Æπαí« ÇßßѼí½Ñα áóΓ«¼áΓ¿τÑ߬¿ ¿ß»«½∞ºπÑΓ
  3330.         áΓα¿íπΓδ, ºáñá¡¡δÑ »α¿ »Ñαó«¼ «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá.
  3331.  
  3332.  
  3333.         TASM2 #3-5/䫬               = 76 =
  3334.  
  3335.              ìᬫ¡Ñµ, ßÑú¼Ñ¡Γδ ¼«úπΓ íδΓ∞ ó½«ªÑ¡¡δ¼¿,  τΓ« «º¡áτáÑΓ,  τΓ«
  3336.         óδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ßÑú¼Ñ¡Γ ñ« Γ«ú«, ¬á¬ óδ ºá¬«¡τ¿ΓÑ »αÑñδñπΘ¿⌐
  3337.         ßÑú¼Ñ¡Γ, ¡á»α¿¼Ñα:
  3338.  
  3339.                 .
  3340.                 .
  3341.                 .
  3342.         DataSeg    SEGMENT PARA PUBLIC 'DATA'
  3343.                 .
  3344.                 .
  3345.                 .
  3346.         DataSeg2   SEGMENT PARA PRIVATE 'FAR_DATA'
  3347.                 .
  3348.                 .
  3349.                 .
  3350.         DataSeg2   ENDS
  3351.                 .
  3352.                 .
  3353.                 .
  3354.         DataSeg    ENDS
  3355.                 .
  3356.                 .
  3357.                 .
  3358.  
  3359.              é «íΘѼ ß½πτáѠ󽫪ѡ¡«ßΓ∞ ¡Ñ ∩ó½∩ÑΓß∩ »«½Ñº¡«⌐, «ñ¡á¬« ÑßΓ∞
  3360.         »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ ß½πτá⌐, ¬«úñá «¡á ¼«ªÑΓ «¬áºáΓ∞ß∩ »«½Ñº¡«⌐ -
  3361.         φΓ« ¼á¬α«¬«¼á¡ñá.  ùΓ«íδ «»αÑñѽ¿Γ∞ ßÑú¼Ñ¡Γ ó  ¼á¬α«¬«¼á¡ñÑ,  óá¼
  3362.         «íδτ¡«  »α¿σ«ñ¿Γß∩  ºáóÑαΦáΓ∞,  á ºáΓѼ ó«º«í¡«ó½∩Γ∞ ΓѬπΘ¿⌐ ßÑú-
  3363.         ¼Ñ¡Γ,  á τΓ«íδ φΓ« ßñѽáΓ∞,  óá¼ ΓαÑíπÑΓß∩ º¡áΓ∞ ΓѬπΘÑÑ ¿¼∩ ßÑú-
  3364.         ¼Ñ¡Γá,  τΓ« ó ¬«¡ΓѬßΓÑ ¼á¬α«¬«¼á¡ñδ ¡Ñ óßÑúñá «τÑó¿ñ¡«.  é½«ªÑ¡-
  3365.         ¡«ßΓ∞ ßÑú¼Ñ¡Γ«ó »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞ ßÑú¼Ñ¡Γ,  ñáªÑ  ¡Ñ  º¡á∩
  3366.         ¿¼Ñ¡¿ ΓѬπΘÑú« ßÑú¼Ñ¡Γá, ¡á»α¿¼Ñα:
  3367.  
  3368.                 .
  3369.                 .
  3370.                 .
  3371.         TEST    MACRO
  3372.                 .
  3373.                 .
  3374.                 .
  3375.         TestSeg         SEGMENT WORD PRIVATE 'FAR_DATA'
  3376.                 .
  3377.                 .
  3378.                 .
  3379.         TestSeg         ENDS
  3380.                 .
  3381.  
  3382.         TASM2 #3-5/䫬               = 77 =
  3383.  
  3384.                 .
  3385.                 .
  3386.                 ENDM
  3387.                 .
  3388.                 .
  3389.                 .
  3390.  
  3391.              Å«ß½Ñ ºáóÑαΦÑ¡¿∩  ó½«ªÑ¡¡«ú« ßÑú¼Ñ¡Γá Æπαí« ÇßßѼí½Ñα »α«ßΓ«
  3392.         ó«º«í¡«ó½∩ÑΓ áßßÑ¼í½¿α«óá¡¿Ñ ó ßÑú¼Ñ¡ΓÑ,  ¬«Γ«αδ⌐ íδ½ á¬Γ¿ó¡δ¼ ñ«
  3393.         ¡áτá½á ó½«ªÑ¡¡«ú« ßÑú¼Ñ¡Γá.
  3394.  
  3395.  
  3396.  
  3397.  
  3398.         TASM2 #3-5/䫬               = 78 =
  3399.  
  3400.                                    Å«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó                           
  3401.         -----------------------------------------------------------------
  3402.  
  3403.              é «ß¡«ó¡«¼ óá¼ ¡Ñ »α¿σ«ñ¿Γß∩ íÑß»«¬«¿Γ∞ß∩ « Γ«¼, ¬á¬«ó »«α∩-
  3404.         ñ«¬ ßÑú¼Ñ¡Γ«ó ó »«½πτáѼ«¼ Σá⌐½Ñ .àòà.  é«-»Ñαóδσ, »«α∩ñ«¬, ó ¬«-
  3405.         Γ«α«¼ ßÑú¼Ñ¡Γδ ß½ÑñπεΓ ó óδ»«½¡∩Ѽ«¼ Σá⌐½Ñ, τáßΓ« ¡Ñ ¿¼ÑÑΓ º¡áτÑ-
  3406.         ¡¿∩.  é«-óΓ«αδσ, ó í«½∞Φ¿¡ßΓóÑ ß½πτáѼ, ¬«úñá óá¼ ¡πª¡« ß«í½εñáΓ∞
  3407.         »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó,  ½Ñú¬« ¼«ª¡« «í«⌐Γ¿ß∞ ¬«¼»¿½∩Γ«α«¼ ∩ºδ¬á óδß«-
  3408.         ¬«ú« πα«ó¡∩ ¿½¿ ñ¿αÑ¬Γ¿ó«⌐ DOSSEG.  àß½¿ óδ óδ»«½¡∩ÑΓÑ ¬«¼»«¡«ó¬π
  3409.         ß ∩ºδ¬«¼ óδß«¬«ú« πα«ó¡∩,  Γ« »«α∩ñ¬«¼ ßÑú¼Ñ¡Γ«ó «íδτ¡« π»αáó½∩ÑΓ
  3410.         ¬«¼»¿½∩Γ«α φΓ«ú« ∩ºδ¬á.  àß½¿ óδ »¿ΦÑΓÑ »α«úαá¼¼π Γ«½∞¬« ¡á ∩ºδ¬Ñ
  3411.         ÇßßѼí½Ñαá ¿ π¬áºδóáÑΓÑ ñ¿αÑ¬Γ¿óπ DOSSEG,  Γ« »α¿  π»«α∩ñ«τ¿óá¡¿¿
  3412.         ßÑú¼Ñ¡Γ«ó  íπñπΓ ß«í½εñáΓ∞ß∩ ß«ú½áΦÑ¡¿∩ Σ¿α¼δ Microsoft,  Γ« ÑßΓ∞
  3413.         »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó íπñÑΓ ß½ÑñπεΘ¿¼:
  3414.  
  3415.          - ßÑú¼Ñ¡Γδ ¬½áßßá CODE;
  3416.          - ßÑú¼Ñ¡Γδ  ß  ¬½áßß«¼,  «Γ½¿τ¡δ¼ «Γ CODE,  ¡Ñ ∩ó½∩εΘ¿Ñß∩ τáßΓ∞ε
  3417.            DGROUP;
  3418.          - ßÑú¼Ñ¡Γδ, ∩ó½∩εΘ¿Ñß∩ τáßΓ∞ε DGROUP:
  3419.  
  3420.                á) ßÑú¼Ñ¡Γδ ß ¬½áßß«¼, «Γ½¿τ¡δ¼ «Γ STACK ¿ BSS;
  3421.                í) ßÑú¼Ñ¡Γδ ¬½áßßá BSS;
  3422.                ó) ßÑú¼Ñ¡Γδ ¬½áßßá STACK.
  3423.  
  3424.              àß½¿ óá¼ σ«τÑΓß∩ πº¡áΓ∞ « »«α∩ñ¬Ñ,  ó ¬á¬«¼ ¬«¼»«¡«óΘ¿¬ αáº-
  3425.         ¼ÑΘáÑΓ óáΦ¿ ßÑú¼Ñ¡Γδ, ¼«ªÑΓÑ »α«ßΓ« ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓα ¬«¼á¡ñ-
  3426.         ¡«⌐ ßΓ᫬¿ /s,  ¬«Γ«αδ⌐ π¬áªÑΓ πΓ¿½¿ΓÑ TLINK, τΓ« ¡πª¡« úÑ¡Ñα¿α«-
  3427.         óáΓ∞ »«ñα«í¡δ⌐ Σá⌐½ ßσѼδ ßÑú¼Ñ¡Γ«ó, ¿ »α«ß¼«Γα¿ΓÑ φëàΣá⌐½.
  3428.  
  3429.              ÄßΓáÑΓß∩ ó«»α«ß, ¬á¬¿¼ «íαẫ¼ π»«α∩ñ«τ¿óáεΓß∩ ßÑú¼Ñ¡Γδ, Ñß-
  3430.         ½¿  óδ ¡Ñ óδ»«½¡∩ÑΓÑ ¬«¼»«¡«ó¬π ß ∩ºδ¬«¼ óδß«¬«ú« πα«ó¡∩ ¿ ¡Ñ ¿ß-
  3431.         »«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿óπ DOSSEG?  ùáΘÑ óßÑú« óá¼ ¡Ñ »«ΓαÑíπÑΓß∩  º¡áΓ∞
  3432.         «ΓóÑΓ ¡á φëàó«»α«ß, ¡« ñ½∩ Γ«ú« ß½πτá∩, ¬«úñá φΓ« ¿¼ÑÑΓ ñ½∩ óáß
  3433.         º¡áτÑ¡¿Ñ,  ¼δ ßñѽáѼ ¡Ñ¬«Γ«α«Ñ »«∩ߡѡ¿Ñ (φΓ« ¡Ñ߬«½∞¬« ß½«ª¡ÑÑ,
  3434.         τѼ ¼«ªÑΓ »«¬áºáΓ∞ß∩).
  3435.  
  3436.              Åα¿ «ΓßπΓßΓó¿¿ ∩ó¡«ú« ºáñá¡¿∩ »«α∩ñ¬á ßÑú¼Ñ¡Γ«ó (¡á»α¿¼Ñα, ß
  3437.         »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ DOSSEG) ¬«¼»«¡«óΘ¿¬Ñ úαπ»»¿απÑΓ ó¼ÑßΓÑ óßÑ ßÑú-
  3438.         ¼Ñ¡Γδ  ñá¡¡«ú«  ¬½áßßá  (úñÑ  ¬½áßß  ßÑú¼Ñ¡Γá  «»αÑñѽ∩ÑΓß∩ »«½Ñ¼
  3439.         "¬½áßß" ó ñ¿αÑ¬Γ¿óÑ SEGMENT).  æá¼¿ úαπ»»δ ßÑú¼Ñ¡Γ«ó »«¼ÑΘáεΓß∩ ó
  3440.         Σá⌐½ .EXE »α«ßΓ« ó Γ«¼ »«α∩ñ¬Ñ,  ó ¬á¬«¼ ¬«¼»«¡«óΘ¿¬ ¿σ «í¡áαπª¿-
  3441.         óáÑΓ.  ¥Γ« «º¡áτáÑΓ, τΓ« »«α∩ñ«¬, ó ¬«Γ«α«¼ ¬«¼»«¡πεΓß∩ «íΩÑ¬Γ¡δÑ
  3442.         Σá⌐½δ, ó½¿∩ÑΓ ¡á ¬«¡Ñτ¡δ⌐ »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó ó Σá⌐½Ñ .EXE.
  3443.  
  3444.              ÆÑ»Ñα∞ ¼δ  »«½πτ¿½¿ ßÑú¼Ñ¡Γδ,  ßΓα«ú« π»«α∩ñ«τÑ¡¡δÑ »« ¬½áß-
  3445.         ßá¼.  Ç ¬á¬ π»«α∩ñ«τ¿óáεΓß∩ ßÑú¼Ñ¡Γδ ó¡πΓα¿ ¬áªñ«ú«  ¬½áßßá?  Ä¡¿
  3446.  
  3447.         TASM2 #3-5/䫬               = 79 =
  3448.  
  3449.         ΓᬪѠ »«¼ÑΘáεΓß∩ ó Σá⌐½ .EXE ó Γ«¼ »«α∩ñ¬Ñ,  ó ¬á¬«¼ ¬«¼»«¡«óΘ¿¬
  3450.         ¿σ «í¡áαπª¿óáÑΓ. Äñ¡¿¼ ¿º Σá¬Γ«α«ó ºñÑß∞ íπñÑΓ »«α∩ñ«¬, ó ¬«Γ«α«¼
  3451.         ¬«¼»«¡πεΓß∩  Σá⌐½δ .OBJ.  äαπú«⌐ Σá¬Γ«α - φΓ« »«α∩ñ«¬,  ó ¬«Γ«α«¼
  3452.         ßÑú¼Ñ¡Γδ αẼÑΘÑ¡δ ó ¬áªñ«¼ Σá⌐½Ñ .OBJ.
  3453.  
  3454.              ä¿αÑ¬Γ¿óá .SEQ π¬áºδóáÑΓ Æπαí« ÇßßѼí½Ñαπ,  τΓ«  ßÑú¼Ñ¡Γδ  ó
  3455.         Σá⌐½Ñ .OBJ ¡πª¡« αẼÑßΓ¿Γ∞ ó Γ«¼ »«α∩ñ¬Ñ,  ó ¬á¬«¼ «¡¿ ß½ÑñπεΓ ó
  3456.         ¿ßσ«ñ¡«¼ Σá⌐½Ñ. Åα¿ »«ß½Ññ«óáΓѽ∞¡«¼ π»«α∩ñ«τ¿óá¡¿¿ ßÑú¼Ñ¡Γ«ó »«-
  3457.         α∩ñ«¬  ßÑú¼Ñ¡Γ«ó ó ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ ¼«ªÑΓ »«ó½¿∩Γ∞ ¡á »«α∩ñ«¬ ßÑú-
  3458.         ¼Ñ¡Γ«ó ó Σá⌐½Ñ .EXE. ¥Γ« αѪ¿¼ αáí«Γδ, »α¿¡∩Γδ⌐ ó Æπαí« ÇßßѼí½Ñ-
  3459.         αÑ   »«   π¼«½τá¡¿ε,   »«φΓ«¼π   ßÑú¼Ñ¡Γδ  íπñπΓ  π»«α∩ñ«τ¿óáΓ∞ß∩
  3460.         »«ß½Ññ«óáΓѽ∞¡«, ñáªÑ Ñß½¿ óδ «»πßΓ¿ΓÑ ñ¿αÑ¬Γ¿óπ .SEQ (¡« Ñß½¿ ¡Ñ
  3461.         ¿ß»«½∞ºπÑΓß∩ ñ¿αÑ¬Γ¿óá .ALPHA).
  3462.  
  3463.              ä¿αÑ¬Γ¿óá .ALPHA π¬áºδóáÑΓ Æπαí« ÇßßѼí½Ñαπ,  τΓ« ßÑú¼Ñ¡Γδ ó
  3464.         «íΩÑ¬Γ¡«¼ Σá⌐½Ñ ¡πª¡« αẼÑΘáΓ∞ ó á½Σáó¿Γ¡«¼ »«α∩ñ¬Ñ.  Åα¿ π»«α∩-
  3465.         ñ«τ¿óá¡¿¿  »« á½Σáó¿Γπ »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó ó ñá¡¡«¼ ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ
  3466.         ¡Ñ ó½¿∩ÑΓ ¡á »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó ó Σá⌐½Ñ .EXE.  é ¡Ñ¬«Γ«αδσ  ßΓáαδσ
  3467.         áßßѼí½Ñαáσ φëàαѪ¿¼ αáí«Γδ ¿ß»«½∞ºπÑΓß∩ »« π¼«½τá¡¿ε, »«φΓ«¼π,
  3468.         τΓ«íδ τΓ«íδ »α«úαá¼¼δ »αáó¿½∞¡« αáí«Γ὿,  óá¼ ¿¡«úñá ¼«ªÑΓ »«¡á-
  3469.         ñ«í¿Γ∞ß∩ ¿ß»«½∞º«óá¡¿Ñ ñá¡¡«⌐ ñ¿αÑ¬Γ¿óδ.
  3470.  
  3471.              êΓá¬, ΓÑ»Ñα∞  óδ ¿¼ÑÑΓÑ ßÑú¼Ñ¡Γδ,  ßó«í«ñ¡« π»«α∩ñ«τÑ¡¡δÑ »«
  3472.         ¬½áßßá¼,  ¿ π»«α∩ñ«τÑ¡¡δÑ ó¡πΓα¿ ¬½áßßá ó ß««ΓóÑΓßΓó¿¿ ß »«α∩ñ¬«¼
  3473.         ¿σ  ß½Ññ«óá¡¿∩.  éδ  ¼«ªÑΓÑ π»αáó½∩Γ∞ π»«α∩ñ«τ¿ó᡿Ѽ ßÑú¼Ñ¡Γ«ó ó
  3474.         ¬½áßßÑ ¬á¬ ó ß««ΓóÑΓßΓó¿¿ ß ΓѼ »«α∩ñ¬«¼,  ó ¬«Γ«α«¼  ¬«¼»«¡πεΓß∩
  3475.         «íΩÑ¬Γ¡δÑ  Σá⌐½δ,  Γᬠ ¿ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿ó .SEQ ¿ .ALPHA.  àß½¿
  3476.         óδíαá¡á ñ¿αÑ¬Γ¿óá .SEQ,  Γ« ¡á »«α∩ñ«¬ ß½Ññ«óá¡¿∩ ßÑú¼Ñ¡Γ«ó ó óδ-
  3477.         »«½¡∩Ѽ«¼ Σá⌐½Ñ .EXE »«α∩ñ«¬ ß½Ññ«óá¡¿∩ ßÑú¼Ñ¡Γ«ó ó ñá¡¡«¼ ¿ßσ«ñ-
  3478.         ¡«¼ ¼«ñπ½Ñ.
  3479.  
  3480.              èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞,  π»«α∩ñ«τ¿óá¡¿Ñ ßÑú¼Ñ¡Γ«ó  -  ñѽ«  ¡Ñ
  3481.         »α«ßΓ«Ñ.  Äñ¡á¬«,  ¬á¬ ¡¿ ßΓαá¡¡«, óá¼ ¡Ñ »α¿ñÑΓß∩ íÑß»«¬«¿Γ∞ß∩ «
  3482.         »«α∩ñ¬Ñ ßÑú¼Ñ¡Γ«ó: «íδτ¡« «¡ ¡Ñ ¿¼ÑÑΓ º¡áτÑ¡¿∩, á ¬«úñá «¡ óáªÑ¡,
  3483.         Γ«  «í  π»«α∩ñ«τ¿óá¡¿¿ ßÑú¼Ñ¡Γ«ó ºá óáß,  ¬á¬ »αá󿽫,  ºáí«Γ¿Γß∩
  3484.         ¬«¼»¿½∩Γ«α ∩ºδ¬á óδß«¬«ú« πα«ó¡∩ ¿½¿ ñ¿αÑ¬Γ¿óá DOSSEG.
  3485.  
  3486.  
  3487.  
  3488.  
  3489.         TASM2 #3-5/䫬               = 80 =
  3490.  
  3491.                                     ä¿αÑ¬Γ¿óá GROUP                            
  3492.         -----------------------------------------------------------------
  3493.  
  3494.              ä¿αÑ¬Γ¿óá GROUP ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¬«¼í¿¡¿α«óá¡¿∩ ñóπσ ¿½¿ í«-
  3495.         ½ÑÑ ßÑú¼Ñ¡Γ«ó ó «ñ¡π ½«ú¿τÑ߬πε ºá»¿ß∞,  »«ß½Ñ τÑú« ¬« óßѼ  φΓ¿¼
  3496.         ßÑú¼Ñ¡Γá¼  ¼«ª¡« áñαÑß«óáΓ∞ß∩ «Γ¡«ß¿Γѽ∞¡« «ñ¡«ú« ßÑú¼Ñ¡Γ¡«ú« αÑ-
  3497.         ú¿ßΓαá.
  3498.  
  3499.              ÅαÑñ»«½«ª¿¼, π óáß ÑßΓ∞ »α«úαá¼¼á, ¬«Γ«αá∩ «íαáΘáÑΓß∩ ¬ ñá¡-
  3500.         ¡δ¼ ó ñóπσ ßÑú¼Ñ¡Γáσ.  Äíδτ¡« óá¼ »α¿σ«ñ¿Γß∩ ºáúαπªáΓ∞ ßÑú¼Ñ¡Γ¡δ⌐
  3501.         αÑú¿ßΓα ¿ π¬áºδóáΓ∞ ñ¿αÑ¬Γ¿óπ ASSUME ¬áªñδ⌐ αáº,  ¬«úñá óδ σ«Γ¿ΓÑ
  3502.         ß¡áτá½á «íαáΓ¿Γ∞ß∩ ¬ «ñ¡«¼π ßÑú¼Ñ¡Γπ,  á ºáΓѼ ¬ ñαπú«¼π. ¥Γ« ñ«-
  3503.         ó«½∞¡« «íαѼѡ¿Γѽ∞¡« ¿ ΓαÑíπÑΓ ½¿Φ¡Ñú«  óαѼѡ¿.  ìἡ«ú«  »α«ΘÑ
  3504.         ß¬«¼í¿¡¿α«óáΓ∞ ßÑú¼Ñ¡Γδ ó «ñ¡π úαπ»»π ß ¿¼Ñ¡Ñ¼ DataGroup,  ºáúαπ-
  3505.         º¿Γ∞ ó αÑú¿ßΓα DS ¡áτὫ DataGroup, ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ ASSUME
  3506.         DS ñ½∩ úαπ»»δ DataGroup, á ºáΓѼ ó ½εí«⌐ ¼«¼Ñ¡Γ «íαáΘáΓ∞ß∩ ¬ Γ«¼π
  3507.         ¿½¿ ¿¡«¼π ¿º φΓ¿σ ßÑú¼Ñ¡Γ«ó. Åα¿óÑñѼ »α¿¼Ñα »α«úαá¼¼δ:
  3508.  
  3509.                 .
  3510.                 .
  3511.                 .
  3512.         DataGroup       GROUP   DataSeg1,DataSeg2
  3513.                 .
  3514.                 .
  3515.                 .
  3516.         DataSeg1        SEGMENT PARA PUBLIC 'DATA'
  3517.         MemVar1   DW    0
  3518.         DataSeg1        ENDS
  3519.                 .
  3520.                 .
  3521.                 .
  3522.                 mov     ax,DataGroup
  3523.                 mov     ds,ax
  3524.                 ASSUME  DS:DataGroup
  3525.                 .
  3526.                 .
  3527.                 .
  3528.                 mov     ax,[MemVar1]
  3529.                 mov     [MemVar2],ax
  3530.                 .
  3531.                 .
  3532.                 .
  3533.  
  3534.              ä½∩ τÑú« ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ ¿ß»«½∞º«óáΓ∞ úαπ»»δ, σ«Γ∩ »α«ΘÑ
  3535.         »«½πτ¿Γ∞ Γ«Γ ªÑ αѺπ½∞ΓáΓ ß »«¼«Θ∞ε «ñ¡«ú« ¿¼Ñ¡¿ ßÑú¼Ñ¡Γá  ¿ Γ¿»á
  3536.         ¬«¼í¿¡¿α«óá¡¿∩ PUBLIC?  äÑ⌐ßΓó¿Γѽ∞¡«,  ó »α«úαá¼¼áσ, ¬«Γ«αδÑ »¿-
  3537.  
  3538.         TASM2 #3-5/䫬               = 81 =
  3539.  
  3540.         ΦπΓß∩ Γ«½∞¬« ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá,  ¡ÑΓ  í«½∞Φ«⌐  ¡Ñ«íσ«ñ¿¼«ßΓ¿  ó
  3541.         úαπ»»áσ,  σ«Γ∩ Ñß½¿ óδ σ«Γ¿ΓÑ, óδ ¬«¡Ñτ¡« ¼«ªÑΓÑ ¿σ ¿ß»«½∞º«óáΓ∞.
  3542.         âαπ»»δ ¿ß»«½∞ºπεΓß∩ ó «ß¡«ó¡«¼,  ¬«úñá «αúá¡¿ºπÑΓß∩ ¿¡ΓÑαΣÑ⌐ß Çß-
  3543.         ßѼí½Ñαá  ß  ¬«ñ«¼  ∩ºδ¬«ó óδß«¬«ú« πα«ó¡∩.  é τáßΓ¡«ßΓ¿,  úαπ»»á
  3544.         DGROUP ¿ß»«½∞ºπÑΓß∩ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩,  τΓ«íδ  ¼«ª¡«  í佫
  3545.         «íαáΘáΓ∞ß∩  ¬ ßΓѬπ,  ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δ¼ ñá¡¡δ¼ í½¿ª¡Ñú« Γ¿»á ¿
  3546.         ¬«¡ßΓá¡Γá¼ «Γ¡«ß¿Γѽ∞¡« «ñ¡«ú« ßÑú¼Ñ¡Γ¡«ú« αÑú¿ßΓαá.
  3547.  
  3548.              Åα¿ ¿ß»«½∞º«óá¡¿¿  úαπ»» ßÑú¼Ñ¡Γ«ó ¡πª¡« ß«í½εñáΓ∞ «ñ¡« ¬½ε-
  3549.         τÑó«Ñ »αá󿽫:  óßÑ ßÑú¼Ñ¡Γδ ó úαπ»»Ñ ñ«½ª¡δ ½ÑªáΓ∞ ó «ñ¡«¼  ßÑú-
  3550.         ¼Ñ¡ΓÑ  αẼÑα«ó  64è,  Γᬠ¬á¬ óßÑ «¡¿ ñ«½ª¡δ íδΓ∞ ñ«ßΓπ»¡δ ß »«-
  3551.         ¼«Θ∞ε «ñ¡«ú« ßÑú¼Ñ¡Γ¡«ú«  αÑú¿ßΓαá.  ìπª¡«  »«¼¡¿Γ∞  «  Γ«¼,  τΓ«
  3552.         »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó ºáó¿ß¿Γ «Γ ¼¡«ú¿σ Σá¬Γ«α«ó («í φΓ«¼ πªÑ αáß߬á-
  3553.         ºδóὫß∞ ó »αÑñδñπΘѼ αáºñѽÑ),  »«φΓ«¼π, Ñß½¿ óδ ¡Ñ íπñÑΓѠᬬπ-
  3554.         αáΓ¡δ,  ßÑú¼Ñ¡Γδ  ¼«úπΓ  «ΓßΓ«∩Γ∞  ñαπú  «Γ ñαπúá ¡á º¡áτ¿Γѽ∞¡«Ñ
  3555.         αáßßΓ«∩¡¿Ñ.  æá¼δ⌐ ¡áñѪ¡δ⌐ »«ñσ«ñ ºñÑß∞ - φΓ« «íΩ∩ó¿Γ∞ óßÑ  ßÑú-
  3556.         ¼Ñ¡Γδ úαπ»»δ,  ¬á¬ ßÑú¼Ñ¡Γδ «ñ¡«ú« ¬½áßßá ¿ «»αÑñѽ¿Γ∞ ¿σ «ñ¿¡ ºá
  3557.         ñαπú¿¼ ó ¡áτá½Ñ óßÑσ ¼«ñπ½Ñ⌐, ó ¬«Γ«αδσ «¡¿ «»αÑñѽ∩εΓß∩.
  3558.  
  3559.              Äñ¡á¬«, Ñß½¿  óδ  óδ»«½¡∩ÑΓÑ  ¬«¼»«¡«ó¬π  ß  ∩ºδ¬«¼ óδß«¬«ú«
  3560.         πα«ó¡∩ ¿½¿ úñÑ-½¿í« ó »α«úαἼѠ¿ß»«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿óπ  DOSSEG, Γ«
  3561.         ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ íÑß»«¬«¿Γ∞ß∩ « Γ«¼,  τΓ«íδ ß«íαáΓ∞ óßÑ ßÑú¼Ñ¡Γδ
  3562.         DGROUP ó¼ÑßΓÑ. é «í«¿σ ß½πτá∩󠬫¼»«¡«óΘ¿¬ áóΓ«¼áΓ¿τÑ߬¿ ¡áßΓα«¿Γ
  3563.         óßÑ ßÑú¼Ñ¡Γδ DGROUP.
  3564.  
  3565.              ò«Γ∩ ßÑú¼Ñ¡Γδ ó úαπ»»Ñ ¡Ñ ñ«½ª¡δ »αÑóδΦáΓ∞ αẼÑα ó 64è, »α¿
  3566.         ¬«¼»«¡«ó¬Ñ «¡¿ ¡Ñ «í∩ºáΓѽ∞¡«  ñ«½ª¡δ  íδΓ∞  ¡Ñ»αÑαδó¡δ¼¿.  îѪñπ
  3567.         ßÑú¼Ñ¡ΓἿ, óσ«ñ∩Θ¿¼¿ ó úαπ»»π, ¼«úπΓ ½ÑªáΓ∞ ñαπú¿Ñ ßÑú¼Ñ¡Γδ.
  3568.  
  3569.                    Åα¿¼Ñτá¡¿Ñ: àß½¿ óδ ¿ß»«½∞ºπÑΓÑ úαπ»»π  ßÑú¼Ñ¡Γ«ó,  Γ«
  3570.               ¡πª¡«  »α¿  ºáúαπº¬Ñ ßÑú¼Ñ¡Γá (ñ½∩ ßß佬¿ ¡á úαπ»»π) óßÑúñá
  3571.               á¬¬παáΓ¡« ¿ß»«½∞º«óáΓ∞ ó ñ¿αÑ¬Γ¿óÑ  ASSUME  ¿¼∩  úαπ»»δ.  é
  3572.               »α«Γ¿ó¡«¼  ß½πτáÑ Æπαí« ÇßßѼí½Ñα íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ ß¼ÑΘÑ-
  3573.               ¡¿∩ «Γ¡«ß¿Γѽ∞¡« ¡áτá½á ßÑú¼Ñ¡Γá,  á ¡Ñ ¡áτá½á úαπ»»δ, ñáªÑ
  3574.               Ñß½¿ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα π¬áºδóáÑΓ ¡á ¡áτὫ úαπ»»δ.  ìá»α¿-
  3575.               ¼Ñα,  ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ß πτÑΓ«¼  »αÑñδñπΘÑú«
  3576.               «»αÑñѽѡ¿∩ DGROUP ó«º¡¿¬¡ÑΓ «Φ¿í¬á:
  3577.  
  3578.                 .
  3579.                 .
  3580.                 .
  3581.                 mov     ax,DGROUP
  3582.                 mov     ds,ax
  3583.                 ASSUME  DS:Stack        ; íπñÑΓ »«½πτÑ¡« ¡Ñ¬«ααÑ¬Γ¡«Ñ
  3584.                                         ; ß¼ÑΘÑ¡¿Ñ!
  3585.                 .
  3586.  
  3587.         TASM2 #3-5/䫬               = 82 =
  3588.  
  3589.                 .
  3590.                 .
  3591.  
  3592.                é¼ÑßΓ« φΓ«ú« ¡πª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘÑÑ:
  3593.  
  3594.                 .
  3595.                 .
  3596.                 .
  3597.                 mov     ax,DGROUP
  3598.                 mov     ds,ax
  3599.                 ASSUME  DS:DGROUP
  3600.                 .
  3601.                 .
  3602.                 .
  3603.  
  3604.                    è«α«τÑ ú«ó«α∩,  Ñß½¿ óδ ºáúαπªáÑΓÑ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα,
  3605.               τΓ«íδ «¡ π¬áºδóá½ ¡á úαπ»»π DGROUP, ¡πª¡« πíÑñ¿Γ∞ß∩, τΓ« óδ
  3606.               ¿ß»«½∞ºπÑΓÑ ó ñ¿αÑ¬Γ¿óÑ ASSUME φΓπ úαπ»»π,  á ¡Ñ ¬á¬«⌐-½¿í«
  3607.               ¿º ß«ßΓáó½∩εΘ¿σ ÑÑ ßÑú¼Ñ¡Γ«ó.
  3608.  
  3609.              é ¼á¬α«áßßѼí½ÑαÑ Σ¿α¼δ Microsoft  MASM  ß«ñÑনΓß∩  «Φ¿í¬á,
  3610.         «Γ¡«ß∩Θá∩ß∩ ¬ ¿ß»«½∞º«óá¡¿ε ß úαπ»»á¼¿ «»Ñαᵿ¿ OFFSET. ¥Γá «Φ¿í-
  3611.         ¬á ¼«ªÑΓ ΓᬪѠ󫺡¿¬áΓ∞ »α¿  ¿¡¿µ¿á½¿ºáµ¿¿  ñá¡¡δσ  áñαÑß«¼  ¿½¿
  3612.         ¼ÑΓ¬á¼¿ ó úαπ»»Ñ. é µÑ½∩σ ß«ó¼ÑßΓ¿¼«ßΓ¿ Æπαí« ÇßßѼí½Ñα ó«ß»α«¿º-
  3613.         ó«ñ¿Γ φΓπ «Φ¿í¬π.  ùΓ«íδ «í«⌐Γ¿ ÑÑ,  ¡πª¡« ó ¼ÑΓ¬áσ (¬«úñá óδ  ¿σ
  3614.         ¿ß»«½∞ºπÑΓÑ  ó «»Ñαᵿ¿ OFFSET ¿½¿ ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ñá¡¡δσ) π¬á-
  3615.         ºδóáΓ∞ »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó.  (Å«ñα«í¡ÑÑ  «í  φΓ«¼
  3616.         αáß߬áºδóáÑΓß∩  ó  â½áóÑ 6 ó αáºñѽѠ"ìÑ ºáíδóá⌐ΓÑ ¿ß»«½∞º«óáΓ∞ ó
  3617.         «»Ñαá¡ñáσ ¿ Γáí½¿µáσ ñá¡¡δσ »ÑαÑ«»αÑñѽѡ¿∩ úαπ»»δ").
  3618.  
  3619.  
  3620.  
  3621.  
  3622.         TASM2 #3-5/䫬               = 83 =
  3623.  
  3624.                                    ä¿αÑ¬Γ¿óá ASSUME                            
  3625.         -----------------------------------------------------------------
  3626.  
  3627.              ä¿αÑ¬Γ¿óá ASSUME (»«ñαáºπ¼ÑóáΓ∞, »αÑñ»«½áúáΓ∞) »«ºó«½∩ÑΓ óá¼
  3628.         ß««íΘ¿Γ∞ Æπαí« ÇßßѼí½Ñαπ,  ¡á ¬á¬«⌐ ßÑú¼Ñ¡Γ ¿½¿ úαπ»»π π¬áºδóáÑΓ
  3629.         ñá¡¡δ⌐ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα.  çá¼ÑΓ¿¼,  τΓ« φΓ« ¡Ñ Γ« ªÑ ßἫÑ, τΓ«
  3630.         ñÑ⌐ßΓó¿Γѽ∞¡á∩ ºáúαπº¬á ßÑú¼Ñ¡Γ¡«ú« αÑú¿ßΓαá ñ½∩ ßß佬¿ ¡á ñá¡¡δ⌐
  3631.         ßÑú¼Ñ¡Γ (óδ ñ«½ª¡δ φΓ« ñѽáΓ∞ «Γñѽ∞¡« ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ MOV).
  3632.         ìạáτÑ¡¿Ñ ñ¿αÑ¬Γ¿óδ ASSUME ß«ßΓ«¿Γ ó Γ«¼,  τΓ«íδ ñáΓ∞ Æπαí«  Çß-
  3633.         ßѼí½Ñαπ  ó«º¼«ª¡«ßΓ∞  »α«óÑα¿Γ∞ ñ«»πßΓ¿¼«ßΓ∞ óáΦ¿σ ßß佫¬ ¡á »á-
  3634.         ¼∩Γ∞ ¿ »α¿ «íαáΘÑ¡¿¿ ¬ »á¼∩Γ¿ áóΓ«¼áΓ¿τÑ߬¿ ó¬½ετ¿Γ∞ »αÑΣ¿¬ßδ »Ñ-
  3635.         αÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó (Ñß½¿ φΓ« ΓαÑíπÑΓß∩).
  3636.  
  3637.              ä¿αÑ¬Γ¿óá ASSUME  ñ½∩ αÑú¿ßΓαá CS ñ«½ª¡á ß½Ññ«óáΓ∞ »ÑαÑñ ½ε-
  3638.         íδ¼ ¬«ñ«¼ ó ¬áªñ«¼ ¿ßσ«ñ¡«¼ ¼«ñπ½Ñ. ü½áú«ñáα∩ φΓ«¼π Æπαí« ÇßßѼí-
  3639.         ½Ñα º¡áÑΓ, ó ¬á¬«¼ ßÑú¼Ñ¡ΓÑ »«ñαáºπ¼ÑóáÑΓß∩ αẼÑΘÑ¡¿Ñ ¿¡ßΓαπ¬µ¿⌐
  3640.         (φΓ« ¡πª¡« ñ½∩ óδ»«½¡Ñ¡¿∩ »ÑαÑσ«ñ«ó,  ó맮ó«ó ¿ πßΓᡫ󬿠¡áτá½∞-
  3641.         ¡«ú« áñαÑßá »α«úαá¼¼δ).
  3642.  
  3643.              Å« ¼ÑαÑ  ¡Ñ«íσ«ñ¿¼«ßΓ¿  ó  ½εí«⌐ ¿ßσ«ñ¡δ⌐ ¼«ñπ½∞ ¼«úπΓ ó¬½ε-
  3644.         τáΓ∞ß∩ ñαπú¿Ñ ñ¿αÑ¬Γ¿óδ ASSUME (ß π¬áºá¡¿Ñ¼  αẽ¿τ¡δσ ßÑú¼Ñ¡Γ¡δσ
  3645.         αÑú¿ßΓα«ó).  Å«ñαáºπ¼ÑóáѼδ⌐  ßÑú¼Ñ¡Γ  ñ½∩ ½εí«ú« ßÑú¼Ñ¡Γ¡«ú« αÑ-
  3646.         ú¿ßΓαá ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡,  ¬«úñá óδ φΓ«ú« »«ªÑ½áÑΓÑ. é «ñ¡«⌐ ñ¿-
  3647.         αÑ¬Γ¿óÑ ASSUME ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ½εí«⌐ ¿½¿ óßÑ  »αÑñ»«½áúáѼδÑ  ßÑú-
  3648.         ¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ.
  3649.  
  3650.              éδ ¼«ªÑΓÑ ºáñáΓ∞ »αÑñ»«½áúáѼδ⌐ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα  »« ¿¼Ñ¡¿
  3651.         ßÑú¼Ñ¡Γá,  ¿¼Ñ¡¿ úαπ»»δ,  ¿½¿ óδñѽ¿Γ∞ ßÑú¼Ñ¡Γ ¿º ¼ÑΓ¬¿ ß »«¼«Θ∞ε
  3652.         «»Ñαᵿ¿ SEG.  èα«¼Ñ Γ«ú«, ñ½∩ π¬áºá¡¿ε Æπαí« ÇßßѼí½Ñαπ, τΓ« ½ε-
  3653.         í«⌐ ¿½¿ óßÑ ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ ¡Ñ π¬áºδóáεΓ ¡¿ ¡á ¬á¬«⌐ ßÑú¼Ñ¡Γ,
  3654.         ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¬½ετÑó«Ñ ß½«ó« NOTHING.
  3655.  
  3656.              Åα¿óÑñѼ »α¿¼Ñα ñ¿αÑ¬Γ¿óδ ASSUME:
  3657.  
  3658.         Stack    SEGMENT    PARA STACK 'STACK'
  3659.              DB  512 DUP (0)
  3660.         Stack    ENDS
  3661.         TGROUP   GROUP      DataSeg1,DataSeg2
  3662.         DataSeg1 SEGMENT   PARA PUBLIC 'DATA'
  3663.                 .
  3664.                 .
  3665.                 .
  3666.         DataSeg1 ENDS
  3667.         DataSeg2 SEGMENT   PARA PUBLIC 'DATA'
  3668.                 .
  3669.                 .
  3670.  
  3671.         TASM2 #3-5/䫬               = 84 =
  3672.  
  3673.                 .
  3674.         DataSeg2 ENDS
  3675.                 .
  3676.                 .
  3677.                 .
  3678.         DataSeg3 SEGMENT   PARA PUBLIC 'CODE'
  3679.         MemVar   DW  0
  3680.                 .
  3681.                 .
  3682.                 .
  3683.         CodeSeg  SEGMENT   PARA PUBLIC 'CODE'
  3684.                 ASSUME  CS:CodeSeg,DS:TGROUP,SS:Stack,ES:NOTHING
  3685.         ProgramStart:
  3686.                 mov     ax,TGROUP
  3687.                 mov     ds,ax
  3688.                 ASSUME  DS:TGROUP
  3689.                 .
  3690.                 .
  3691.                 .
  3692.                 mov     ax,SEG MemVar       ; á¡á½«ú¿τ¡« DataSeg3
  3693.                 mov     es,ax
  3694.                 ASSUME  ES:SEG MemVar
  3695.                 .
  3696.                 .
  3697.                 .
  3698.         CodeSeg ENDS
  3699.                 END     ProgramStart
  3700.  
  3701.  
  3702.              àß½¿ ó ñ¿αÑ¬Γ¿óÑ ASSUME π¬áºδóáÑΓß∩ úαπ»»á, Γ« »αÑñ»«½áúáÑΓ-
  3703.         ß∩,  τΓ« ºáñá¡¡δ⌐ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα π¬áºδóáÑΓ ¡á  ¡áτὫ  ñá¡¡«⌐
  3704.         úαπ»»δ ßÑú¼Ñ¡Γ«ó.  Äñ¡á¬«,  Ñß½¿ ó ñ¿αÑ¬Γ¿óÑ  ASSUME  π¬áºδóáÑΓß∩
  3705.         ßÑú¼Ñ¡Γ,  ∩ó½∩εΘ¿⌐ß∩ τáßΓ∞ε úαπ»»δ,  Γ« »«ñαáºπ¼ÑóáÑΓß∩, τΓ« ßÑú-
  3706.         ¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα π¬áºδóáÑΓ ¡á ¡áτὫ φΓ«ú« αÑú¿ßΓαá,  á ¡Ñ úαπ»»δ.
  3707.         ¥Γ« ¼«ªÑΓ óδºóáΓ∞ »α«í½Ñ¼δ,  »«ß¬«½∞¬π «íδτ¡« ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ
  3708.         πßΓá¡áó½¿óáεΓß∩ Γᬿ¼ «íαẫ¼,  τΓ«íδ π¬áºδóáΓ∞ ¡á ¡áτὫ úαπ»»δ,
  3709.         á ¡Ñ óσ«ñ∩Θ¿σ ó ¡ÑÑ ßÑú¼Ñ¡Γ«ó.  ìá»α¿¼Ñα,  ñá½ÑÑ αÑú¿ßΓα AX íπñÑΓ
  3710.         ºáúαπªÑ¡ ¿º ¡ÑóÑα¡«⌐ ∩τÑ⌐¬¿ »á¼∩Γ¿, Γᬠ¬á¬ DS π¬áºδóáÑΓ ¡á ¡áτá-
  3711.         ½« DGROUP, á ñ¿αÑ¬Γ¿óá ASSUME ¡Ñ¬«ααÑ¬Γ¡« »«¬áºδóáÑΓ, τΓ« αÑú¿ßΓα
  3712.         DS π¬áºδóáÑΓ ¡á ¡áτὫ DataSeg2:
  3713.  
  3714.                 .
  3715.                 .
  3716.                 .
  3717.         TGROUP   GROUP   DataSeg1,DataSeg2
  3718.         DataSeg1 SEGMENT PARA PUBLIC 'DATA'
  3719.  
  3720.         TASM2 #3-5/䫬               = 85 =
  3721.  
  3722.                 .
  3723.                 .
  3724.                 .
  3725.         DataSeg1 ENDS
  3726.         DataSeg2 SEGMENT PARA PUBLIC 'DATA'
  3727.         MemVar  DW      0
  3728.         DataSeg2 ENDS
  3729.                 .
  3730.                 .
  3731.                 .
  3732.         CodeSeg  SEGMENT PARA PUBLIC 'CODE'
  3733.                 ASSUME  CS:CodeSeg
  3734.                 .
  3735.                 .
  3736.                 .
  3737.                 mov     ax,TGROUP
  3738.                 mov     ds,ax
  3739.                 ASSUME  DS:DataSeg2     ; ¡Ñ»αáó¿½∞¡«!
  3740.                                         ; (¡πª¡« TGROUP)
  3741.                 mov     ax,[MemVar]     ; íπñÑΓ ºáúαπªÑ¡« ¿º
  3742.                                         ; ¡Ñ»αáó¿½∞¡«ú« ß¼ÑΘÑ¡¿∩
  3743.                                         ; («Γ¡«ß¿Γѽ∞¡« DataSeg2 á ¡Ñ
  3744.                                         ; «Γ¡«ß¿Γѽ∞¡« úαπ»»δ TGROUP)
  3745.                 .
  3746.                 .
  3747.                 .
  3748.  
  3749.              àß½¿ óδ ¿ß»«½∞ºπÑΓÑ π»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡-
  3750.         Γ«ó,  Γ« ó «íΘѼ ß½πτáÑ  ¡ÑΓ  ¡Ñ«íσ«ñ¿¼«ßΓ¿  π¬áºδóáΓ∞  ñ¿αÑ¬Γ¿óπ
  3751.         ASSUME,  Γᬠ¬á¬ Æπαí« ÇßßѼí½Ñα úÑ¡Ñα¿απÑΓ ß««ΓóÑΓßΓóπεΘ¿Ñ »αÑñ-
  3752.         »«½«ªÑ¡¿∩ «í ¿ß»«½∞ºπѼδσ ßÑú¼Ñ¡Γáσ áóΓ«¼áΓ¿τÑ߬¿.  Äñ¡á¬«,  Ñß½¿
  3753.         »α¿  ¿ß»«½∞º«óá¡¿¿  π»α«ΘÑ¡¡δσ  ñ¿αÑ¬Γ¿ó «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó óδ
  3754.         ¿º¼Ñ¡¿½¿ «ñ¿¡ ¿º ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓα«ó, Γ« ¡πª¡« π¬áºáΓ∞ ß««ΓóÑΓß-
  3755.         ΓóπεΘπε ñ¿αÑ¬Γ¿óπ ASSUME. ìá»α¿¼Ñα, ñá½ÑÑ ºáñáÑΓß∩, τΓ«íδ αÑú¿ßΓα
  3756.         DS π¬áºδóá½ ¡á ßÑú¼Ñ¡Γ .DATA,  ßÑú¼Ñ¡Γ .CODE, ßÑú¼Ñ¡Γ .FARDATA ¿,
  3757.         ¡á¬«¡Ñµ, ß¡«óá ¡á ßÑú¼Ñ¡Γ .DATA:
  3758.  
  3759.                 .
  3760.                 .
  3761.                 .
  3762.                 .DATA
  3763.                 .
  3764.                 .
  3765.                 .
  3766.                 .FARDATA
  3767.                 .
  3768.  
  3769.         TASM2 #3-5/䫬               = 86 =
  3770.  
  3771.                 .
  3772.                 .
  3773.                 .CODE
  3774.                 mov     ax,@Data
  3775.                 mov     ds,ax
  3776.                 ASSUME  DS:@Data
  3777.                 .
  3778.                 .
  3779.                 .
  3780.                 mov     ax,@Code
  3781.                 mov     ds,ax
  3782.                 ASSUME  DS:@Code
  3783.                 .
  3784.                 .
  3785.                 .
  3786.                 mov     ax,@FarData
  3787.                 mov     ds,ax
  3788.                 ASSUME  DS:@FarData
  3789.                 .
  3790.                 .
  3791.                 .
  3792.                 mov     ax,@Data
  3793.                 mov     ds,ax
  3794.                 ASSUME  DS:@Data
  3795.                 .
  3796.                 .
  3797.                 .
  3798.  
  3799.              èᬠ¼δ πªÑ «Γ¼Ñτ὿,  í½áú«ñáα∩ ñ¿αÑ¬Γ¿óÑ ASSUME  Æπαí«  Çß-
  3800.         ßѼí½Ñα  ¼«ªÑΓ »α¿ ßß佬áσ ¡á »á¼∩Γ∞ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ó¬½ε-
  3801.         τáΓ∞ »αÑΣ¿¬ßδ »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó.  ìá»α¿¼Ñα,  ó  ß½ÑñπεΘѼ
  3802.         Σαáú¼Ñ¡ΓÑ  »α«úαá¼¼δ ó ¿¡ßΓαπ¬µ¿¿,  úñÑ ¿¼ÑÑΓß∩ ßßδ½¬á ¡á MemVar,
  3803.         íπñÑΓ »«¼ÑΘÑ¡ »αÑΣ¿¬ß ES: (»«ß¬«½∞¬π ñ¿αÑ¬Γ¿óÑ ASSUME ¡Ñ¬«ααÑ¬Γ¡«
  3804.         π¬áºδóáÑΓ, τΓ« τÑαѺ αÑú¿ßΓα DS ¡Ñ½∞º∩ ñ«ßΓ¿τ∞ ßÑú¼Ñ¡Γá,  úñÑ ¡á-
  3805.         σ«ñ¿Γß∩ »ÑαѼѡ¡á∩ MemVar):
  3806.  
  3807.                 .
  3808.                 .
  3809.                 .
  3810.         DataSeg SEGMENT PARA PUBLIC 'DATA'
  3811.         MemVar  DB  ?
  3812.                 .
  3813.                 .
  3814.                 .
  3815.         DataSeg ENDS
  3816.                 .
  3817.  
  3818.         TASM2 #3-5/䫬               = 87 =
  3819.  
  3820.                 .
  3821.                 .
  3822.         CodeSeg SEGMENT PARA PUBLIC 'CODE'
  3823.                 ASSUME  CS:CodeSeg,DS:NOTHING,ES:DataSeg
  3824.                 .
  3825.                 .
  3826.                 .
  3827.                 mov     ax,DataSeg
  3828.                 mov     ds,ax
  3829.                 mov     es,ax
  3830.                 mov     [MemVar],1
  3831.                 .
  3832.                 .
  3833.                 .
  3834.  
  3835.              ÄΓßεñá ¼«ª¡« ºá¬½ετ¿Γ∞, τΓ« ñ¿αÑ¬Γ¿óδ ASSUME ¡πª¡« ¿ß»«½∞º«-
  3836.         óáΓ∞ á¬¬παáΓ¡«,  τΓ«íδ «¡¿ óßÑ óαѼ∩ ß««ΓóÑΓßΓó«ó὿ ñÑ⌐ßΓó¿Γѽ∞-
  3837.         ¡δ¼ º¡áτÑ¡¿∩¼ ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓα«ó.
  3838.  
  3839.                       ô»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó               
  3840.         -----------------------------------------------------------------
  3841.  
  3842.              ìѬ«Γ«αδÑ ñÑΓ὿ π»α«ΘÑ¡¡δσ ñ¿αÑ¬Γ¿ó  «»αÑñѽѡ¿∩  ßÑú¼Ñ¡Γ«ó
  3843.         ¼δ πªÑ «íßπñ¿½¿ ó â½áóÑ 5.  Äñ¡á¬« «ß¡«ó¡«⌐ áß»Ñ¬Γ π»α«ΘÑ¡¡δσ ñ¿-
  3844.         αÑ¬Γ¿ó «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  ¬«Γ«αδ⌐ ¼δ ÑΘÑ ¡Ñ  «íßπªñ὿,  φΓ«
  3845.         ¬á¬¿Ñ ¿¼Ñ¡¡« ßÑú¼Ñ¡Γδ ß«ºñáεΓß∩ π»α«ΘÑ¡¡δ¼¿ ñ¿αÑ¬Γ¿óἿ «»αÑñѽÑ-
  3846.         ¡¿∩ ßÑú¼Ñ¡Γ«ó.  ¥Γ« ¡Ñ Γá ¿¡Σ«α¼áµ¿∩,  ¬«Γ«αá∩ »«ΓαÑíπÑΓß∩ óá¼  ó
  3847.         »«óßÑñ¡Ñó¡«⌐  αáí«ΓÑ,  ¡«  Ñß½¿ óδ ¿ß»«½∞ºπÑΓÑ ß¼Ñß∞ π»α«ΘÑ¡¡δσ ¿
  3848.         ßΓá¡ñáαΓ¡δσ ñ¿αÑ¬Γ¿ó «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó, º¡áΓ∞ φΓ« ¡Ñ«íσ«ñ¿¼«.
  3849.  
  3850.              æÑú¼Ñ¡Γδ ¿  úαπ»»δ  ßÑú¼Ñ¡Γ«ó,  ß«ºñáóáѼδÑ  »«   ñ¿αÑ¬Γ¿óá¼
  3851.         .CODE,  .DATA, .DATA?, .STACK, .CONST, .FARDATA ¿ .FARDATA? ºáó¿-
  3852.         ß∩Γ «Γ ¼«ñѽ¿ »á¼∩Γ¿,  óδí¿αáѼ«⌐ »« ñ¿αÑ¬Γ¿óÑ .MODEL.  (àß½¿  óδ
  3853.         »«¼¡¿ΓÑ,  «  ¼«ñѽ∩σ »á¼∩Γ¿ ¼δ αáß߬áºδó὿ ó â½áóÑ 4.) æ««ΓóÑΓß-
  3854.         Γó¿Ñ ¼Ñªñπ ¼«ñѽ∩¼¿ »á¼∩Γ¿ ¿ ßÑú¼Ñ¡ΓἿ, ß«ºñáóáÑ¼δ¼¿ »« π»α«ΘÑ¡-
  3855.         ¡δ¼ ñ¿αÑ¬Γ¿óá¼ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó, »«¬áºá¡δ ó ß½ÑñπεΘ¿σ Γáí½¿-
  3856.         µáσ:
  3857.  
  3858.  
  3859.         TASM2 #3-5/䫬               = 88 =
  3860.  
  3861.  
  3862.                   Æáí½¿µá 9.1. êß»«½∞ºπѼδÑ »« π¼«½τá¡¿ε
  3863.                ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ßóÑασ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿
  3864.         -----------------------------------------------------------------
  3865.         ä¿αÑ¬Γ¿óá    ê¼∩   éδαáó¡¿óá¡¿Ñ  è«¼í¿¡¿α«óá¡¿Ñ  è½áßß     âαπ»»á
  3866.         -----------------------------------------------------------------
  3867.         .CODE       _TEXT      WORD         PUBLIC      'CODE'     DGROUP
  3868.         .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
  3869.         .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
  3870.         .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
  3871.         .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
  3872.         .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
  3873.         .STACK      STACK      PARA         STACK       'STACK'    DGROUP
  3874.         -----------------------------------------------------------------
  3875.  
  3876.                   Æáí½¿µá 9.2. êß»«½∞ºπѼδÑ »« π¼«½τá¡¿ε
  3877.                   ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿
  3878.         -----------------------------------------------------------------
  3879.         ä¿αÑ¬Γ¿óá    ê¼∩   éδαáó¡¿óá¡¿Ñ  è«¼í¿¡¿α«óá¡¿Ñ  è½áßß     âαπ»»á
  3880.         -----------------------------------------------------------------
  3881.         .CODE       _TEXT      WORD         PUBLIC      'CODE'
  3882.         .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
  3883.         .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
  3884.         .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
  3885.         .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
  3886.         .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
  3887.         .STACK      STACK      PARA         STACK       'STACK'    DGROUP
  3888.         -----------------------------------------------------------------
  3889.  
  3890.                   Æáí½¿µá 9.3. êß»«½∞ºπѼδÑ »« π¼«½τá¡¿ε
  3891.                  ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿
  3892.         -----------------------------------------------------------------
  3893.         ä¿αÑ¬Γ¿óá    ê¼∩   éδαáó¡¿óá¡¿Ñ  è«¼í¿¡¿α«óá¡¿Ñ  è½áßß     âαπ»»á
  3894.         -----------------------------------------------------------------
  3895.         .CODE       ¿¼∩ _TEXT  WORD         PUBLIC      'CODE'
  3896.         .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
  3897.         .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
  3898.         .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
  3899.         .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
  3900.         .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
  3901.         .STACK      STACK      PARA         STACK       'STACK'    DGROUP
  3902.         -----------------------------------------------------------------
  3903.  
  3904.  
  3905.         TASM2 #3-5/䫬               = 89 =
  3906.  
  3907.  
  3908.                   Æáí½¿µá 9.4. êß»«½∞ºπѼδÑ »« π¼«½τá¡¿ε
  3909.                ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿
  3910.         -----------------------------------------------------------------
  3911.         ä¿αÑ¬Γ¿óá    ê¼∩   éδαáó¡¿óá¡¿Ñ  è«¼í¿¡¿α«óá¡¿Ñ  è½áßß     âαπ»»á
  3912.         -----------------------------------------------------------------
  3913.         .CODE       _TEXT      WORD         PUBLIC      'CODE'
  3914.         .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
  3915.         .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
  3916.         .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
  3917.         .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
  3918.         .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
  3919.         .STACK      STACK      PARA         STACK       'STACK'    DGROUP
  3920.         -----------------------------------------------------------------
  3921.  
  3922.                   Æáí½¿µá 9.5. êß»«½∞ºπѼδÑ »« π¼«½τá¡¿ε
  3923.            ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ í«½∞Φ«⌐ ¿½¿ ßóÑασí«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿
  3924.         -----------------------------------------------------------------
  3925.         ä¿αÑ¬Γ¿óá    ê¼∩   éδαáó¡¿óá¡¿Ñ  è«¼í¿¡¿α«óá¡¿Ñ  è½áßß     âαπ»»á
  3926.         -----------------------------------------------------------------
  3927.         .CODE       _TEXT      WORD         PUBLIC      'CODE'
  3928.         .FARDATA    FAR_DATA   PARA         private     'FAR_DATA'
  3929.         .FARDATA?   FAR_BSS    PARA         private     'FAR_BSS'
  3930.         .DATA       _DATA      WORD         PUBLIC      'DATA'     DGROUP
  3931.         .CONST      CONST      WORD         PUBLIC      'CONST'    DGROUP
  3932.         .DATA?      _BSS       WORD         PUBLIC      'BSS'      DGROUP
  3933.         .STACK      STACK      PARA         STACK       'STACK'    DGROUP
  3934.         -----------------------------------------------------------------
  3935.  
  3936.              ù¿Γá∩ »«ß½Ññ¡¿Ñ ú½áóδ, óδ ¬«¡Ñτ¡« ºá¼ÑΓ¿½¿, τΓ«  ó  »α«úαá¼-
  3937.         ¼áσ, ¿ß»«½∞ºπεΘ¿σ π»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  ¡Ñ
  3938.         ΓαÑíπÑΓß∩ π¬áºδóáΓ∞ ñ¿αÑ¬Γ¿óδ ASSUME, GROUP ¿½¿  ENDS.  ä¿αÑ¬Γ¿óá
  3939.         .MODEL  áóΓ«¼áΓ¿τÑ߬¿  óδ»«½¡∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿Ñ ñ¿αÑ¬Γ¿óδ ASSUME
  3940.         ñ½∩ óδíαá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿ (»α¿ φΓ«¼ ¿ß»«½∞ºπεΓß∩ ßÑú¼Ñ¡Γδ,  »«-
  3941.         ¬áºá¡¡δÑ ó »α¿óÑñÑ¡¡δσ óδΦÑ Γáí½¿µáσ). ä¿αÑ¬Γ¿óá .MODEL óδ»«½¡∩ÑΓ
  3942.         ΓᬪѠ«»αÑñѽѡ¿Ñ úαπ»»δ ñ½∩ DGROUP (ó ß««ΓóÑΓßΓó¿¿ ß Γáí½¿µá¼¿).
  3943.  
  3944.              ùΓ« ¬áßáÑΓß∩ ñ¿αÑ¬Γ¿óδ ENDS, Γ« ¡áτὫ ¡«ó«ú« ßÑú¼Ñ¡Γá ß »«-
  3945.         ¼«Θ∞ε π»α«ΘÑ¡¡«⌐ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá áóΓ«¼áΓ¿τÑ߬¿ ºá-
  3946.         óÑαΦáÑΓ ΓѬπΘ¿⌐ ßÑú¼Ñ¡Γ (Ñß½¿ «¡ ¿¼ÑÑΓß∩).
  3947.  
  3948.              äáóá⌐ΓÑ ΓÑ»Ñα∞ αáßß¼«Γα¿¼  ¡Ñ¬«Γ«αδÑ  ¡á¿í«½ÑÑ  ßπΘÑßΓóÑ¡¡δÑ
  3949.         π»α«ΘÑ¡¡δÑ   ñ¿αÑ¬Γ¿óδ:  ñ¿αÑ¬Γ¿óδ  .DATA?,  .CONST,  .FARDATA  ¿
  3950.         .FARDATA? ìá ßἫ¼ ñѽѠñ¿αÑ¬Γ¿óá .FARDATA - φΓ« Ññ¿¡ßΓóÑ¡¡á∩ ñ¿-
  3951.         αÑ¬Γ¿óá, ¬«Γ«απε ¡πª¡« ¿ß»«½∞º«óáΓ∞ ó »α«úαá¼¼Ñ, ¡á»¿ßá¡¡«⌐ Γ«½∞-
  3952.         ¬« ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá.  ÄßΓá½∞¡δÑ ñ¿αÑ¬Γ¿óδ ß½πªáΓ ñ½∩ ß««ΓóÑΓß-
  3953.  
  3954.         TASM2 #3-5/䫬               = 90 =
  3955.  
  3956.         Γó¿∩ ¿ß»«½∞ºπѼδσ ßÑú¼Ñ¡Γ«ó ∩ºδ¬á¼ óδß«¬«ú« πα«ó¡∩.
  3957.  
  3958.              ä¿αÑ¬Γ¿óá .DATA? ¡áτ¿¡áÑΓ ßÑú¼Ñ¡Γ, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ó DGROUP
  3959.         ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ í½¿ª¡Ñú« Γ¿»á. Æá¬ ¬á¬ ßÑú¼Ñ¡Γδ .DATA
  3960.         ¿ .DATA?  ¡áσ«ñ∩Γß∩ ó «ñ¡«⌐ ¿ Γ«⌐ ªÑ úαπ»»Ñ,  Γ« ñ¿αÑ¬Γ¿óπ .DATA?
  3961.         »« ¿ñÑÑ ß«óßѼ ¼«ª¡« «»πßΓ¿Γ∞,  ¿ ¿ß»«½∞º«óáΓ∞  Γ«½∞¬«  ñ¿αÑ¬Γ¿óπ
  3962.         .DATA  ¿ ó«»α«ß¿Γѽ∞¡δ⌐ º¡á¬ ñ½∩ «»αÑñѽѡ¿∩ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δσ
  3963.         ñá¡¡δσ ó ßÑú¼Ñ¡ΓÑ .DATA (¬α«¼Ñ ΓÑσ ß½πτáÑó,  ¬«úñá óδ  ß«í½εñáÑΓÑ
  3964.         ß«ú½áΦÑ¡¿∩ ∩ºδ¬«ó óδß«¬«ú« πα«ó¡∩).
  3965.  
  3966.              é Γπ ªÑ ¬áΓÑú«α¿ε, τΓ« ¿ ñ¿αÑ¬Γ¿óá .DATA?, »«»áñáÑΓ ñ¿αÑ¬Γ¿-
  3967.         óá .CONST,  ¬«Γ«αá∩ ¡áτ¿¡áÑΓ ßÑú¼Ñ¡Γ, ß«ñÑαªáΘ¿⌐ ñá¡¡δÑ-¬«¡ßΓá¡Γδ
  3968.         í½¿ª¡Ñú«  Γ¿»á.  éδ  ΓᬪѠ¼«ªÑΓÑ αẼÑßΓ¿Γ∞ ¬«¡ßΓá¡Γδ ó ßÑú¼Ñ¡ΓÑ
  3969.         .DATA ¿ «»πßΓ¿Γ∞ ñ¿αÑ¬Γ¿óπ .CONST,  Ñß½¿ óá¼ ¡Ñ  ¡πª¡«  ß«í½εñáΓ∞
  3970.         ß«ú½áΦÑ¡¿∩, »α¿¡∩ΓδÑ ó ∩ºδ¬áσ óδß«¬«ú« πα«ó¡∩.
  3971.  
  3972.              ä¿αÑ¬Γ¿óá .FARDATA ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß«ºñá¡¿∩ ßÑú¼Ñ¡Γá ñá¡¡δσ
  3973.         ñá½∞¡Ñú« Γ¿»á,  π¡¿¬á½∞¡«ú« ñ½∩ ñá¡¡«ú« ¿ßσ«ñ¡«ú« ¼«ñπ½∩ (Γ« ÑßΓ∞
  3974.         φëàßÑú¼Ñ¡Γ ¡Ñ ¿ß»«½∞ºπÑΓß∩ ß«ó¼ÑßΓ¡« ß ñαπú¿¼¿ ¼«ñπ½∩¼¿).
  3975.  
  3976.              ¥Γ«Γ ßÑú¼Ñ¡Γ ¡áºδóáÑΓß∩  FAR_DATA, ¡« ¿¼ÑÑΓ Γ¿» ¬«¼í¿¡¿α«óá-
  3977.         ¡¿∩ PRIVATE,  »«φΓ«¼π «¡ ¡Ñ ¬«¼í¿¡¿απÑΓß∩ ß  ñαπú¿¼¿  ßÑú¼Ñ¡ΓἿ.
  3978.         ä¿αÑ¬Γ¿óá .FARDATA »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞ ñ« 64è »á¼∩Γ¿ ½«¬á½∞-
  3979.         ¡δσ ñá¡¡δσ ó ¬áªñ«¼ ¼«ñπ½Ñ. è«¡Ñτ¡«, Ñß½¿ óδ ¿ß»«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿-
  3980.         óπ .FARDATA,  óδ ñ«½ª¡δ πßΓá¡«ó¿Γ∞ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα Γá¬,  τΓ«íδ
  3981.         «¡ π¬áºδóá½ ¡á ñá¡¡δ⌐ ßÑú¼Ñ¡Γ, ¡á»α¿¼Ñα:
  3982.  
  3983.                 .MODEL  SMALL
  3984.                 .DATA
  3985.         InitValue       DW  0
  3986.                 .FARDATA
  3987.         MemArray        DW  100 DUP (?)
  3988.                 .CODE
  3989.                 .
  3990.                 .
  3991.                 .
  3992.                 mov     ax,@Data
  3993.                 mov     ds,ax
  3994.                 mov     ax,[InitValue]
  3995.                 mov     ax,@FarData
  3996.                 mov     di,OFFSET MemArray
  3997.                 mov     cx,100
  3998.                 cld
  3999.                 rep     stosw
  4000.                 .
  4001.                 .
  4002.  
  4003.         TASM2 #3-5/䫬               = 91 =
  4004.  
  4005.                 .
  4006.  
  4007.              çá¼ÑΓ¿¼, τΓ«  »αÑñ«»αÑñѽѡ¡á∩  ¼ÑΓ¬á  @FarData ß«ñÑαª¿Γ ¿¼∩
  4008.         ßÑú¼Ñ¡Γá, «»αÑñѽѡ¡«ú« »« ñ¿αÑ¬Γ¿óÑ .FARDATA.
  4009.  
  4010.              ò«Γ∩ ßÑú¼Ñ¡Γ,  «»αÑñѽѡ¡δ⌐ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ .FARDATA, ¡Ñ
  4011.         ¿ß»«½∞ºπÑΓß∩ ß«ó¼ÑßΓ¡« ß ñαπú¿¼¿ ¼«ñπ½∩¼¿, ñ½∩ ß«ó¼ÑßΓ¡«ú« ß ñαπ-
  4012.         ú¿¼¿  ¼«ñπ½∩¼¿  ¿ß»«½∞º«óá¡¿∩  «Γñѽ∞¡δσ  »ÑαѼѡ¡δσ  ó  ßÑú¼Ñ¡ΓÑ
  4013.         .FARDATA óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ GLOBAL.  ìá»α¿¼Ñα,  ¿ß-
  4014.         »«½∞ºπѼá∩ ñá½ÑÑ »ÑαѼѡ¡á∩ MemVar íπñÑΓ ñ«ßΓπ»¡á ó ñαπú¿σ  ¼«ñπ-
  4015.         ½∩σ.
  4016.  
  4017.                 .MODEL  SMALL
  4018.                 .FARDATA
  4019.                 GLOBAL  MemVar:WORD
  4020.         MemVar  DW      0
  4021.                 .
  4022.                 .
  4023.                 .
  4024.  
  4025.              Æ«úñá ¡á  φΓπ  »ÑαѼѡ¡πε  ¼«ª¡«  ßßδ½áΓ∞ß∩ ó ñαπú«¼ ¼«ñπ½Ñ,
  4026.         ¡á»α¿¼Ñα:
  4027.  
  4028.                 .MODEL   SMALL
  4029.                 GLOBAL   MemVar:WORD
  4030.                 .DATA
  4031.                 .
  4032.                 .
  4033.                 .
  4034.                 .CODE
  4035.                 .
  4036.                 .
  4037.                 .
  4038.                 mov     ax,SEG MemVar
  4039.                 mov     ds,ax
  4040.                 ASSUME  DS:SEG MemVar
  4041.                 mov     ax,[MemVar]
  4042.                 .
  4043.                 .
  4044.                 .
  4045.  
  4046.              ÄΓ¼ÑΓ¿¼, τΓ« «íΩ∩ó½Ñ¡¿Ñ MemVar,  ¬á¬  ú½«íá½∞¡«⌐  »ÑαѼѡ¡«⌐
  4047.         (GLOBAL),  ß½ÑñπÑΓ  ñ« Γ«ú«,  ¬á¬ «»¿ßδóáÑΓß∩ ¬á¬«⌐-½¿í« ßÑú¼Ñ¡Γ.
  4048.         ¥Γ« ¡Ñ«íσ«ñ¿¼«,  Γᬠ¬á¬ ú½«íá½∞¡«Ñ  «»¿ßá¡¿Ñ  ñá¡¡«⌐  »ÑαѼѡ¡«⌐
  4049.         ñ«½ª¡« óδ»«½¡∩Γ∞ß∩ ½¿í« ó ßÑú¼Ñ¡ΓÑ φΓ«⌐ »ÑαѼѡ¡«⌐, ½¿í« óßÑ óßÑσ
  4050.         ßÑú¼Ñ¡Γ«ó.
  4051.  
  4052.         TASM2 #3-5/䫬               = 92 =
  4053.  
  4054.  
  4055.              ä¿αÑ¬Γ¿óá .FARDATA?  á¡á½«ú¿τ¡á ñ¿αÑ¬Γ¿óÑ .FARDATA,  ¡«  «¡á
  4056.         ß«ºñáÑΓ ßÑú¼Ñ¡Γ Γ¿»á PRIVATE ß ¿¼Ñ¡Ñ¼  FAR_BSS.  æÑú¼Ñ¡Γδ FAR_BSS
  4057.         ¿ß»«½∞ºπεΓß∩ ó ∩ºδ¬áσ óδß«¬«ú«  πα«ó¡∩  ñ½∩  ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δσ
  4058.         ñá¡¡δσ  ñá½∞¡Ñú« Γ¿»á.  àß½¿ óδ ¡Ñ «αúá¡¿ºπÑΓÑ ¿¡ΓÑαΣÑ⌐ß ß ∩ºδ¬«¼
  4059.         óδß«¬«ú« πα«ó¡∩,  Γ« óá¼ ß½ÑñπÑΓ «»αÑñѽ¿Γ∞  ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ
  4060.         ñá¡¡δÑ  ñá½∞¡Ñú«  Γ¿»á  ó ßÑú¼Ñ¡ΓÑ .FARDATA ¿ ºáíδΓ∞ « .FARDATA?.
  4061.         æÑú¼Ñ¡Γ .FARDATA ñáÑΓ óá¼ ñ«»«½¡¿Γѽ∞¡δÑ 64è »á¼∩Γ¿ ß ñá½∞¡¿¼ Γ¿-
  4062.         »«¼  «íαáΘÑ¡¿∩,  ¡«  Ñß½¿ óá¼ ΓαÑíπÑΓß∩ í«½ÑÑ 64è »á¼∩Γ¿ ñá½∞¡Ñú«
  4063.         Γ¿»á,  Γ« óÑα«∩Γ¡« »«ΓαÑíπÑΓß∩ ¿ß»«½∞º«óáΓ∞ ßΓá¡ñáαΓ¡δÑ ñ¿αÑ¬Γ¿óδ
  4064.         «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó.
  4065.  
  4066.              àß½¿ óδ  ¿ß»«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿óπ  .FARDATA?,  »αÑñ«»αÑñѽѡ¡á∩
  4067.         ¼ÑΓ¬á @FarData? ß«ñÑαª¿Γ ¿¼∩ ßÑú¼Ñ¡Γá, «»αÑñѽѡ¡«ú« »« ñ¿αÑ¬Γ¿óÑ
  4068.         .FARDATA,  ¬«Γ«α«Ñ  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞ ó ñ¿αÑ¬Γ¿óáσ ASSUME ¿ »α¿
  4069.         ºáúαπº¬Ñ ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓα«ó.
  4070.  
  4071.  
  4072.  
  4073.  
  4074.         TASM2 #3-5/䫬               = 93 =
  4075.  
  4076.                   Åα¿¼Ñα »α«úαá¼¼δ, ß«ßΓ«∩ΘÑ⌐ ¿º ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó          
  4077.         -----------------------------------------------------------------
  4078.  
  4079.              æ½ÑñπεΘá∩ »α«úαá¼¼á ß«ñÑαª¿Γ ñóá ßÑú¼Ñ¡Γá ¬«ñá ¿ ñóá ßÑú¼Ñ¡-
  4080.         Γá ñá¡¡δσ.  ¥Γ«,  óÑα«∩Γ¡«, ¡Ñ½∞º∩ ßτ¿ΓáΓ∞ ¿ßτÑα»δóáεΘ¿¼ »α¿¼Ñα«¼
  4081.         »α«úαá¼¼¿α«óá¡¿∩ ß ¿ß»«½∞º«ó᡿Ѽ ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó, «ñ¡á¬« ¼δ
  4082.         ¡Ñ αáß»«½áúáѼ ¼ÑßΓ«¼ ñ½∩ »α«úαá¼¼δ,  ß«ñÑαªáΘÑ⌐ ß«Γ¡¿ ¿½¿ Γδß∩τ¿
  4083.         ßΓ᫬.  ¥Γá »α«úαá¼¼á ñáßΓ óá¼ »αÑñßΓáó½Ñ¡¿Ñ « »ÑαѬ½ετÑ¡¿¿ ¼Ñªñπ
  4084.         ßÑú¼Ñ¡ΓἿ,  ºáúαπº¬¿ π¬áºáΓѽÑ⌐ Γ¿»á "ßÑú¼Ñ¡Γ:ß¼ÑΘÑ¡¿Ñ" ¿ ó맮óÑ
  4085.         ¬«ñá ¿º ñαπú¿σ ßÑú¼Ñ¡Γ«ó.
  4086.  
  4087.         ;
  4088.         ; Åα«úαá¼¼á ñ½∩ ñѼ«¡ßΓαᵿ¿ ¿ß»«½∞º«óá¡¿∩ ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γ«ó
  4089.         ; ¬«ñá ¿ ñá¡¡δσ
  4090.         ;
  4091.         ; æΓ᫬á ßτ¿ΓδóáÑΓß∩ ß ¬«¡ß«½¿, ß«σαá¡∩ÑΓß∩ ó «ñ¡«¼ ßÑú¼Ñ¡ΓÑ
  4092.         ; ñá¡¡δσ, ¬«»¿απÑΓß∩ ó ßΓ᫬π ó ñαπú«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ (»α¿
  4093.         ; φΓ«¼ óδ»«½¡∩ÑΓß∩ »α«µÑßß ÑÑ »αÑ«íαẫóá¡¿∩ ó ¡¿ª¡¿⌐ αÑú¿ßΓα),
  4094.         ; á ºáΓѼ ßΓ᫬á óδó«ñ¿Γß∩ ¡á ¬«¡ß«½∞. ä½∩ τΓÑ¡¿∩, óδó«ñá ¿
  4095.         ; ¬«»¿α«óá¡¿∩ ßΓ᫬¿ ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿ ó ñαπú«¼ ßÑú¼Ñ¡ΓÑ
  4096.         ; ¬«ñá.
  4097.         ;
  4098.         STACK           SEGMENT PARA STACK 'STACK'
  4099.                         DB      512 DUP (?)
  4100.         Stack           ENDS
  4101.  
  4102.         MAX_STRING_LENGTH   EQU 1000
  4103.  
  4104.         SourceDataSeg   SEGMENT PARA PRIVATE 'DATA'
  4105.         InputBuffer     DB      MAX_STRING_LENGTH DUP (?)
  4106.         SourceDataSeg   ENDS
  4107.  
  4108.         DestDataSeg     SEGMENT PARA PRIVATE 'DATA'
  4109.         OutputBuffer    DB      MAX_STRING_LENGTH DUP (?)
  4110.         DestDataSeg     ENDS
  4111.  
  4112.         SubCode         SEGMENT PARA PRIVATE 'DATA'
  4113.                 ASSUME  CS:SubCOde
  4114.         ;
  4115.         ; Å«ñ»α«úαá¼¼á ñ½∩ ßτ¿Γδóá¡¿∩ ßΓ᫬¿ ß ¬«¡ß«½¿. è«¡Ñµ ßΓ᫬¿
  4116.         ; «Γ¼ÑτáÑΓß∩ ß¿¼ó«½«¼ ó«ºóαáΓá ¬áαÑΓ¬¿, ¬«Γ«αδ⌐ »αÑ«íαáºπÑΓß∩
  4117.         ; ó »áαπ ß¿¼ó«½«ó ó«ºóαáΓ ¬áαÑΓ¬¿/»ÑαÑó«ñ ßΓ᫬¿ (í½áú«ñáα∩
  4118.         ; τѼπ »α¿ óδó«ñÑ »α«¿ßσ«ñ¿Γ »ÑαÑó«ñ ¡á ß½ÑñπεΘπε ßΓ᫬π).
  4119.         ; ä½∩ ºáóÑαΦÑ¡¿∩ ßΓ᫬¿ ñ«íáó½∩ÑΓß∩ 0.
  4120.         ;
  4121.         ; éó«ñ:
  4122.  
  4123.         TASM2 #3-5/䫬               = 94 =
  4124.  
  4125.         ;    ES:DI - áñαÑß αáß»«½«ªÑ¡¿∩ ßΓ᫬¿
  4126.         ;
  4127.         ; éδó«ñ: «ΓßπΓßΓóπÑΓ
  4128.         ;
  4129.         ; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ: AX, DI
  4130.         ;
  4131.         GetString       PROC FAR
  4132.         GetStringLoop:
  4133.                 mov     ah,1
  4134.                 int     21h     ; »«½πτ¿Γ∞ ß½ÑñπεΘ¿⌐ ß¿¼ó«½
  4135.                 stosb           ; ß«σαá¡¿Γ∞ Ñú«
  4136.                 cmp     al,13   ; φΓ« ó«ºóαáΓ ¬áαÑΓ¬¿?
  4137.                 jnz     GetStringLoop ; ¡ÑΓ, »«¬á ¡Ñ óδ»«½¡Ñ¡«
  4138.                 mov     BYTE PTR es:[di],10
  4139.                 mov     BYTE PTR es:[di+1],0 ; ºáóÑαΦ¿Γ∞ ßΓ᫬π
  4140.                                 ; ß¿¼ó«½«¼ »ÑαÑó«ñá ßΓ᫬¿ ¿ 0
  4141.                 ret
  4142.         GetString       ENDP
  4143.         ;
  4144.         ; Å«ñ»α«úαá¼¼á ñ½∩ ¬«»¿α«óá¡¿∩ ßΓ᫬¿ ¿ »αÑ«íαẫóá¡¿∩ ÑÑ
  4145.         ; ó ¡¿ª¡¿⌐ αÑú¿ßΓα.
  4146.         ;
  4147.         ; éó«ñ:
  4148.         ;    DS:SI - ßΓ᫬á ñ½∩ ¬«»¿α«óá¡¿∩
  4149.         ;    ES:DI - ¼ÑßΓ«, ¬πñá ¡πª¡« »«¼ÑßΓ¿Γ∞ ßΓ᫬π
  4150.         ;
  4151.         ; éδó«ñ: «ΓßπΓßΓóπÑΓ
  4152.         ;
  4153.         ; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ: AX, DI, SI
  4154.         ;
  4155.         CopyLowerCase   PROC FAR
  4156.         CopyLoop:
  4157.                 lodsb
  4158.                 cmp     al,'A'
  4159.                 jb      NotUpper
  4160.                 cmp     al,'Z'
  4161.                 ja      NotUpper
  4162.                 add     al,20h          ; »αÑ«íαẫóáΓ∞ ó ¡¿ª¡¿⌐
  4163.                                         ; αÑú¿ßΓα (Ñß½¿ φΓ« óÑασ¡¿⌐
  4164.                                         ; αÑú¿ßΓα)
  4165.         NotUpper:
  4166.                 stosb
  4167.                 and     al,al           ; cΓα«¬á ºáóÑαΦáÑΓß∩ 0?
  4168.                 jnz     CopyLoop        ; ¡ÑΓ, ß¬«»¿α«óáΓ∞ ñαπú«⌐
  4169.                                         ; ß¿¼ó«½
  4170.                 ret
  4171.  
  4172.         TASM2 #3-5/䫬               = 95 =
  4173.  
  4174.         CopyLowerCase   ENDP
  4175.         ;
  4176.         ; Å«ñ»α«úαá¼¼á ñ½∩ óδó«ñá ßΓ᫬¿ ¡á ¬«¡ß«½∞.
  4177.         ;
  4178.         ; éó«ñ:
  4179.         ;    ES:DI - áñαÑß ¬«»¿απѼ«⌐ ßΓ᫬¿
  4180.         ;
  4181.         ; éδó«ñ: «ΓßπΓßΓóπÑΓ
  4182.         ;
  4183.         ; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ: AH, DL, SI
  4184.         ;
  4185.         DispleyString   PROC    FAR
  4186.         DisplayStringLoop:
  4187.                 mov     dl,[si]         ; »«½πτ¿Γ∞ ß½ÑñπεΘ¿⌐ ß¿¼ó«½
  4188.                 and     dl,dl           ; φΓ« 0, ºáóÑαΦáεΘ¿⌐ ßΓ᫬π?
  4189.                 jz      DisplayStringDone ; ñá, óδ»«½¡Ñ¡«
  4190.                 inc     si              ; ßßδ½¬á ¡á ß½ÑñπεΘ¿⌐ ß¿¼ó«½
  4191.                 mov     ah,2
  4192.                 int     21h             ; óδóÑßΓ¿ ß¿¼ó«½
  4193.                 jmp     DisplayStringLoop
  4194.         DisplayStringDone:
  4195.                 ret
  4196.         DisplayString   ENDP
  4197.         SubCode         ENDS
  4198.  
  4199.         Code    SEGMENT PARA PRIVATE 'CODE'
  4200.                 ASSUME  CS:Code,DS:NOTHING,ES:NOTHING,SS:Stack
  4201.         ProgramStart:
  4202.                 cld                     ; πóѽ¿τÑ¡¿Ñ ó ßΓ᫬«óδσ
  4203.                                         ; ¿¡ßΓαπ¬µ¿∩σ αÑú¿ßΓα«ó-
  4204.                                         ; π¬áºáΓѽÑ⌐
  4205.         ;
  4206.         ; æτ¿ΓáΓ∞ ßΓ᫬π ß ¬«¡ß«½¿ ó InputBuffer.
  4207.         ;
  4208.                 mov     ax,SourceDataSeg
  4209.                 mov     es,ax
  4210.                 ASSUME  ES:SourceDataSeg
  4211.                 mov     di,OFFSET InputBuffer
  4212.                 call    GetString       ; ßτ¿ΓáΓ∞ ßΓ᫬π ß ¬«¡ß«½¿
  4213.                                         ; ¿ ß«σαá¡¿Γ∞ ÑÑ »« áñαÑßπ
  4214.                                         ; ES:DI
  4215.         ;
  4216.         ; éδóÑßΓ¿ ß¿¼ó«½ »ÑαÑó«ñá ßΓ᫬¿, τΓ«íδ »α«ñó¿¡πΓ∞ß∩ ¡á
  4217.         ; ß½ÑñπεΘπε ßΓ᫬π.
  4218.         ;
  4219.                 mov     ah,2
  4220.  
  4221.         TASM2 #3-5/䫬               = 96 =
  4222.  
  4223.                 mov     dl,10
  4224.                 int     21h
  4225.         ;
  4226.         ; æ¬«»¿α«óáΓ∞ ßΓα«¬π ¿º InputBuffer (óσ«ñ¡«⌐ íπΣÑα) ó
  4227.         ; OutputBuffer (óδσ«ñ¡«⌐ íπΣÑα), »αÑ«íαáºπ∩ ÑÑ ó ¡¿ª¡¿⌐
  4228.         ; αÑú¿ßΓα.
  4229.         ;
  4230.                 push    es
  4231.                 pop     ds
  4232.                 ASSUME  DS:SourceDataSeg
  4233.                 mov     ax,DestDataSeg
  4234.                 mov     es,ax
  4235.                 ASSUME  ES:DestDataSeg
  4236.                 mov     si,OFFSET InputBuffer   ; ß¬«»¿α«óáΓ∞ ¿º DS:DI
  4237.                 mov     di,OFFSET OutputBuffer  ; ó ES:DI,
  4238.                 call    CopyLowerCase           ; »αÑ«íαáºπ∩ ó ¡¿º¬¿⌐
  4239.                                                 ; αÑú¿ßΓα
  4240.         ;
  4241.         ; éδóÑßΓ¿ ßΓ᫬π (ßΓα«τ¡δÑ íπ¬óδ).
  4242.         ;
  4243.                 push    es
  4244.                 pop     ds
  4245.                 ASSUME  DS:DestDataSeg
  4246.                 mov     si,OFFSET OutputBuffer
  4247.                 call    DisplayString           ; óδóÑßΓ¿ ßΓ᫬π, αáß»«-
  4248.                                                 ; ½«ªÑ¡¡πε »« áñαÑßπ
  4249.                                                 ; DS:SI, ¡á ¬«¡ß«½∞
  4250.         ;
  4251.         ; éδ»«½¡Ñ¡«.
  4252.         ;
  4253.                 mov     ah,4ch
  4254.                 int     21h
  4255.         Code    ENDS
  4256.                 END     ProgramStart
  4257.  
  4258.              çá¼ÑΓ¿¼, τΓ« ó ñá¡¡«¼ »α¿¼ÑαÑ »ÑαÑñ «ß¡«ó¡«⌐ »α«úαá¼¼«⌐ ß½Ñ-
  4259.         ñπÑΓ »«ñ»α«úαá¼¼á. ¥Γ« ñѽáÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞ «»ÑαѪá-
  4260.         εΘ¿σ ßß佫¬,  Γᬠ¬á¬ »«ñ»α«úαἼᠿ «ß¡«ó¡á∩ »α«úαἼᠡáσ«ñ∩Γß∩
  4261.         ó αẽ¿τ¡δσ ßÑú¼Ñ¡Γáσ ñá¡¡δσ.  àß½¿  «ß¡«ó¡á∩  »α«úαἼᠠ߽ÑñπÑΓ
  4262.         »Ñαó«⌐,  Γ«  »α¿  ¬áªñ«¼ ó맮óÑ »«ñ»α«úαá¼¼δ óá¼ »α¿ñÑΓß∩ π¬áºáΓ∞
  4263.         »ÑαÑ«»αÑñѽѡ¿Ñ FAR PTR,  Γᬠ¬á¬ Æπαí« ÇßßѼí½Ñα ¡Ñ ¼«ªÑΓ óδ»«½-
  4264.         ¡∩Γ∞  áóΓ«¼áΓ¿τÑ߬«Ñ  áßßÑ¼í½¿α«óá¡¿Ñ «»ÑαѪáεΘ¿σ ßß佫¬ ñá½∞¡Ñú«
  4265.         Γ¿»á.  Äñ¡á¬« »α¿ ¿ß»«½∞º«óá¡¡«⌐ ó »α¿¼ÑαÑ «αúá¡¿ºáµ¿¿  »α«úαá¼¼δ
  4266.         »α¿ óßÑσ ó맮óáσ »«ñ»α«úαá¼¼ ¿ß»«½∞ºπεΓß∩ «íαáΓ¡δÑ ßß佬¿, »«φΓ«-
  4267.         ¼π Æπαí« ÇßßѼí½Ñα ¼«ªÑΓ áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿α«óáΓ∞ ñá½∞¡¿Ñ ó맮-
  4268.         óδ ñ½∩ Γá¬¿σ »«ñ»α«úαá¼¼.
  4269.  
  4270.         TASM2 #3-5/䫬               = 97 =
  4271.  
  4272.  
  4273.              é« óßÑσ  ñαπú¿σ «Γ¡«ΦÑ¡¿∩σ φΓá »α«úαá¼¼á óÑß∞¼á »α«ßΓá.  Åα¿
  4274.         ßßδ½¬Ñ ¡á ñá¡¡δÑ ó »«ñ»α«úαá¼¼áσ  ¿ß»«½∞ºπεΓß∩  »«½¡δÑ  π¬áºáΓѽ¿
  4275.         (ßÑú¼Ñ¡Γ:ß¼ÑΘÑ¡¿Ñ),  ¿, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«, ó «ß¡«ó¡«⌐ »α«úαá¼¼Ñ
  4276.         º¡áτÑ¡¿∩ αÑú¿ßΓα«ó ES ¿ DS πßΓá¡áó½¿óáεΓß∩ ó  αẽ¿τ¡δÑ  ßÑú¼Ñ¡Γδ
  4277.         ñá¡¡δσ. ÄíαáΓ¿ΓѠ󡿼᡿Ѡ¡á ¿ß»«½∞º«óá¡¿Ñ ñ½∩ ¬«»¿α«óá¡¿∩ ßΓ᫬¿
  4278.         ¿ »αÑ«íαẫóá¡¿∩ ÑÑ ó ¡¿ª¡¿⌐ αÑú¿ßΓα ßΓ᫬«óδσ  ¿¡ßΓαπ¬µ¿⌐.  Å«ß-
  4279.         ¬«½∞¬π  ó ¿¡ßΓαπ¬µ¿¿ LODS »« π¼«½τá¡¿ε ¿ß»«½∞ºπÑΓß∩ αÑú¿ßΓα DS, á
  4280.         ó STOSW - ES, Γ« φΓ¿ ¿¡ßΓαπ¬µ¿¿ ¿ñÑá½∞¡« »«ñσ«ñ∩Γ ñ½∩ ¿ß»«½∞º«óá-
  4281.         ¡¿∩  ¿º  ó  »α«úαá¼¼Ñ,  úñÑ ΓαÑíπÑΓß∩ «íαáΘáΓ∞ß∩ ¬ ñóπ¼ ßÑú¼Ñ¡Γá¼
  4282.         ßαáºπ.
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.         TASM2 #3-5/䫬               = 98 =
  4290.  
  4291.                      â½áóá 10. Åα«µÑßß«α 80386 ¿ ñαπú¿Ñ »α«µÑßß«αδ             
  4292.         -----------------------------------------------------------------
  4293.  
  4294.              ä«  ß¿σ  »«α  ¼δ αáßß¼áΓα¿ó὿ »α«úαá¼¼¿α«óá¡¿Ñ ¡á ∩ºδ¬Ñ Çß-
  4295.         ßѼí½Ñαá ñ½∩ »α«µÑßß«αá 8086.  (è«ßóÑ¡¡« ¼δ »α¿ φΓ«¼  αáßß¼«Γαѽ¿
  4296.         ΓᬪѠ»α«µÑßß«α 8088, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó ¬«¼»∞εΓÑαáσ IBM PC ¿
  4297.         XT,  »«ß¬«½∞¬π «¡ ó «ß¡«ó¡«¼ φ¬ó¿óá½Ñ¡ΓÑ¡ »α«µÑßß«απ 8086, ¡« «ß-
  4298.         ¡áΘÑ¡  8-αáºα∩ñ¡«⌐  Φ¿¡«⌐ ñá¡¡δσ.) Åα«µÑßß«α 8086 - φΓ« ¡Ñ Ññ¿¡ß-
  4299.         ΓóÑ¡¡δ⌐ »α«µÑßß«α,  »«ññÑনóáѼδ⌐ Æπαí« ÇßßѼí½Ñα«¼. ê¼ÑÑΓß∩ µÑ-
  4300.         ½«Ñ  ßѼÑ⌐ßΓó«  αáºó¿Γδσ »α«µÑßß«α«ó 8086,  ¿ºóÑßΓ¡δσ,  ¬á¬ ßÑα¿∩
  4301.         iAPx86, ¿ ßѼÑ⌐ßΓó« ¼áΓѼáΓ¿τÑ߬¿σ ß«»α«µÑßß«α«ó, ∩ó½∩εΘ¿σß∩ αáº-
  4302.         ó¿Γ¿Ñ¼ ß«»α«µÑßß«αá 8087.
  4303.  
  4304.              ìá¿í«½ÑÑ αáºó¿Γδ¼ »α«µÑßß«α«¼  ßÑα¿¿  iAPx86  ∩ó½∩ÑΓß∩,  íѺ
  4305.         ß«¼¡Ñ¡¿∩, »α«µÑßß«α 80386, í½áú«ñáα∩ ¬«Γ«α«¼π »Ñαß«¡á½∞¡δÑ ¬«¼»∞-
  4306.         εΓÑαδ ßΓ὿ ßΓ«½∞ ªÑ ¼«Θ¡δ¼¿,  ¬á¬ ¼¿¡¿-¥éî. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, ¬áªñδ⌐
  4307.         »α«µÑßß«α  ßÑα¿¿ iAPx86 ¿¼ÑÑΓ ¿¡ΓÑαÑß¡δÑ π½πτΦÑ¡¿∩ »« ßαáó¡Ñ¡¿ε ß
  4308.         ó«º¼«ª¡«ßΓ∩¼¿ »α«µÑßß«αá 8086. äá½ÑÑ ¼δ αáßß¼«Γα¿¼ »α«úαá¼¼¿α«óá-
  4309.         ¡¿Ñ ñ½∩ »α«µÑßß«αá 80386: πó¿ñ¿¼, ¬á¬ ¼«ª¡« αáºαÑΦ¿Γ∞ ó Æπαí« Çß-
  4310.         ßѼí½ÑαÑ ¿ß»«½∞º«óá¡¿Ñ ßαÑñßΓó« »α«µÑßß«αá 80386,  »«º¡á¬«¼¿¼ß∩ ß
  4311.         ¡«ó묨  αÑú¿ßΓαἿ,  αѪ¿¼á¼¿ áñαÑßᵿ¿ ¿ ¿¡ßΓαπ¬µ¿∩¼¿ »α«µÑßß«αá
  4312.         80386. Å«ß½Ñ φΓ«ú« ¼δ αáßß¼«Γα¿¼ ¼«Θ¡«Ñ ßó«⌐ßΓó« Æπαí« ÇßßѼí½Ñαá
  4313.         -  ó«º¼«ª¡«ßΓ∞ τÑαÑñ«óá¡¿∩ 16-αáºα∩ñ¡δσ ¿ 32-αáºα∩ñ¡δσ ¿¡ßΓαπ¬µ¿⌐
  4314.         ¿ ßÑú¼Ñ¡Γ«ó,  á ΓᬪѠ¡Ñ¬«Γ«αδÑ »α¿¼Ñαδ »α«úαá¼¼  ñ½∩  »α«µÑßß«αá
  4315.         80386.  ìᬫ¡Ñµ,  ¼δ ¬αáΓ¬« »α«á¡á½¿º¿απѼ, ¬á¬¿¼ «íαẫ¼ ó«º¼«ª-
  4316.         ¡«ßΓ¿ »α«µÑßß«αá 80386 ¼«ª¡« αáßΦ¿α¿Γ∞ ºá ßτÑΓ ¿ß»«½∞º«óá¡¿∩ ß«»-
  4317.         α«µÑßß«α«¼ 80287 ¿ 80387.
  4318.  
  4319.                     éδí«α ó »α«úαἼѠ¡á ÇßßѼí½ÑαÑ Γ¿»á »α«µÑßß«αá            
  4320.         -----------------------------------------------------------------
  4321.  
  4322.             Å«  π¼«½τá¡¿ε  Æπαí«  ÇßßѼí½Ñα  áßßÑ¼í½¿απÑΓ ¬«ñ  Γ«½∞¬« ñ½∩
  4323.         »α«µÑßß«αá 8086.  ùΓ«íδ Æπαí« ÇßßѼí½Ñα ¼«ú  »«ññÑনóáΓ∞  ñαπú¿Ñ
  4324.         »α«µÑßß«αδ  ßÑα¿¿ iAPx86,  ¿½¿ ß«»α«µÑßß«αδ,  óδ ñ«½ª¡δ π¬áºδóáΓ∞
  4325.         ß««ΓóÑΓßΓóπεΘ¿Ñ ñ¿αÑ¬Γ¿óδ. æ½ÑñπεΘ¿Ñ ñ¿αÑ¬Γ¿óδ ß««íΘáεΓ Æπαí« Çß-
  4326.         ßѼí½Ñαπ, ¬á¬«⌐ Γ¿» »α«µÑßß«αá ¡πª¡« »«ññÑনóáΓ∞ »α¿ áßßÑ¼í½¿α«-
  4327.         óá¡¿¿ ¬«ñá:
  4328.  
  4329.           .186       .286C       .287      .386C       .387       .8087
  4330.           .286       .286P       .386      .386P       .8086
  4331.  
  4332.              ¥Γ¿  ñ¿αÑ¬Γ¿óδ  ¼«ª¡« π¬áºδóáΓ∞ ó ½εí«¼ ¼ÑßΓÑ ¿ßσ«ñ¡«ú« Σá⌐-
  4333.         ½á,  »«ß½Ñ τÑú« «¡¿ ßαáºπ óßΓπ»áεΓ ó ñÑ⌐ßΓó¿Ñ.  é «ñ¡«¼  ¿ßσ«ñ¡«¼
  4334.         Σá⌐½Ñ ¼«ª¡« αẼÑßΓ¿Γ∞ ¡Ñ߬«½∞¬« ñ¿αÑ¬Γ¿ó óδí«αá Γ¿»á »α«µÑßß«αá,
  4335.         »α¿ φΓ«¼ ΓѬπΘ¿¼ »α«µÑßß«α«¼ ßτ¿ΓáÑΓß∩  »α«µÑßß«α,  óδíαá¡¡δ⌐  »«
  4336.  
  4337.         TASM2 #3-5/䫬               = 99 =
  4338.  
  4339.         »«ß½Ññ¡Ñ⌐ π¬áºá¡¡«⌐ ñ¿αÑ¬Γ¿óÑ.
  4340.  
  4341.              é  ½εí«⌐  ¼«¼Ñ¡Γ  ¼«ª¡« π¬áºáΓ∞ ñ¿αÑ¬Γ¿óπ .8086,  »« ¬«Γ«α«⌐
  4342.         Æπαí« ÇßßѼí½Ñα íπñÑΓ ß¡«óá »«ññÑনóáΓ∞ Γ«½∞¬«  »α«µÑßß«α  8086.
  4343.         (é  «ßΓá½∞¡«⌐ τáßΓ¿ ñá¡¡«⌐ ú½áóδ óßÑ ßß佬¿ ¡á »α«µÑßß«α 8086 «Γ-
  4344.         ¡«ß∩Γß∩ ó αáó¡«⌐ ßΓѻѡ¿ ¿ ¬ »α«µÑßß«απ 8088.)
  4345.  
  4346.              é  ¬áτÑßΓóÑ  »α¿¼Ñαá  »α¿óÑñѼ  ß½ÑñπεΘπε  Σπ¡¬µ¿ε,  ¬«Γ«αá∩
  4347.         ß¬½áñδóáÑΓ  ñóá 32-αáºα∩ñ¡δσ º¡áτÑ¡¿∩,  ¿ß»«½∞ºπ∩ »α«µÑßß«α 8086,
  4348.         ºáΓѼ 80386, ¿ ¡á¬«¡Ñµ ß¡«óá 8086:
  4349.  
  4350.                 DOSSEG
  4351.                 .MODEL  SMALL
  4352.                 .CODE
  4353.         Add32           PROC
  4354.                 mov     ax,[bp+4]       ; »«½πτ¿Γ∞ ¼½áñΦπε »«½«ó¿¡π
  4355.                                         ; ¿ßΓ«τ¡¿¬á 1
  4356.                 mov     dx,[bp+6]       ; »«½πτ¿Γ∞ ßΓáαΦπε »«½«ó¿¡π
  4357.                                         ; ¿ßΓ«τ¡¿¬á 1
  4358.                 mov     bx,[bp+8]       ; »«½πτ¿Γ∞ ¼½áñΦπε »«½«ó¿¡π
  4359.                                         ; ¿ßΓ«τ¡¿¬á 2
  4360.                 mov     cx,[bp+10]      ; »«½πτ¿Γ∞ ßΓáαΦπε »«½«ó¿¡π
  4361.                                         ; ¿ßΓ«τ¡¿¬á 2
  4362.                 .386                    ; ¿ß»«½∞º«óáΓ∞ ñ½∩ ß½«ªÑ¡¿∩
  4363.                                         ; αÑú¿ßΓαδ »α«µÑßß«αá 80386
  4364.                 shl     eax,16
  4365.                 mov     ax,dx
  4366.                 rol     eax,16          ; ºá¡ÑßΓ¿ 32 í¿Γá ¿ßΓ«τ¡¿¬á 1
  4367.                                         ; ó αÑú¿ßΓα EAX
  4368.                 mov     dx,cx
  4369.                 mov     edx,16          ; »«¼ÑßΓ¿Γ∞ 32 í¿Γá ¿ßΓ«τ¡¿¬á 2
  4370.                                         ; ó EDX
  4371.                 mov     dx,bx
  4372.                 add     eax,adx         ; ß½«ª¿Γ∞ ¿ßΓ«τ¡¿¬ 1 ¿ ¿ßΓ«τ¡¿¬ 2
  4373.                 rol     eax,16
  4374.                 mov     dx,ax           ; »«¼ÑßΓ¿Γ∞ ßΓáαΦπε »«½«ó¿¡π
  4375.                                         ; αѺπ½∞ΓáΓá ó αÑú¿ßΓα AX
  4376.                 .8086
  4377.                 ret
  4378.         Add32           ENDP
  4379.                 END
  4380.  
  4381.                                                                                
  4382.         Åα«µÑßß«αδ 80186 ¿ 80188
  4383.         -----------------------------------------------------------------
  4384.  
  4385.  
  4386.         TASM2 #3-5/䫬              = 100 =
  4387.  
  4388.              Åα«µÑßß«α  80186 (¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩ »α«µÑßß«α«¼ ßÑα¿¿ iAPx86)
  4389.         ó «ß¡«ó¡«¼ á¡á½«ú¿τÑ¡ »α«µÑßß«απ 8086.  Åα«µÑßß«α 80186 »«ññÑন-
  4390.         óáÑΓ óßÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 8086, á ΓᬪѠ¡Ñ߬«½∞¬« ¡«óδσ ¿¡ß-
  4391.         Γαπ¬µ¿⌐ ¿ αáßΦ¿αÑ¡¡δÑ Σ«α¼δ ¡Ñ¬«Γ«αδσ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086.
  4392.         èα«¼Ñ Γ«ú«, »α¿ óδ»«½¡Ñ¡¿¿ ¼¡«ú¿σ «»Ñαᵿ⌐ («ß«íÑ¡¡« »α¿ óδτ¿ß½Ñ-
  4393.         ¡¿¿  áñαÑß«ó »á¼∩Γ¿) »α«µÑßß«α 80186 αáí«ΓáÑΓ ßπΘÑßΓóÑ¡¡« íδßΓαÑÑ
  4394.         »α«µÑßß«αá 8086, »«φΓ«¼π »α«úαá¼¼δ, ¡á»¿ßá¡¡δÑ ñ½∩ αáí«Γδ ¡á »α«-
  4395.         µÑßß«αÑ  8086,  ¡á »α«µÑßß«αÑ 80186 óδ»«½¡∩εΓß∩ º¡áτ¿Γѽ∞¡« íδßΓ-
  4396.         αÑÑ.
  4397.  
  4398.              Åα«µÑßß«α  80188 «í½áñáÑΓ »α«úαá¼¼¡«⌐ ß«ó¼ÑßΓ¿¼«ßΓ∞ε ß  »α«-
  4399.         µÑßß«α«¼  80186.  àñ¿¡ßΓóÑ¡¡«Ñ  «Γ½¿τ¿Ñ  ¼Ñªñπ ¡¿¼¿ ºá¬½ετáÑΓß∩ ó
  4400.         Γ«¼,  τΓ« »α«µÑßß«α 80186 ¿¼ÑÑΓ 16-αáºα∩ñ¡πε Φ¿¡π ñá¡¡δσ,  á »α«-
  4401.         µÑßß«α 80188 - 8-αáºα∩ñ¡πε.
  4402.  
  4403.  
  4404.  
  4405.  
  4406.         TASM2 #3-5/䫬              = 101 =
  4407.  
  4408.                                                                                
  4409.         ÉáºαÑΦÑ¡¿Ñ áßßÑ¼í½¿α«óá¡¿∩ ñ½∩ »α«µÑßß«αá 80186
  4410.         -----------------------------------------------------------------
  4411.  
  4412.              Å«ññÑαª¬á  Æπαí« ÇßßѼí½Ñαá ñ½∩ áßßÑ¼í½¿α«óá¡¿∩ ¬«ñá »α«µÑß-
  4413.         ß«αá 80186 αáºαÑΦáÑΓß∩ »« ñ¿αÑ¬Γ¿óÑ .186.
  4414.  
  4415.              äá½ÑÑ ¼δ  αáßß¼«Γα¿¼  ¡«óδÑ ¿ αáßΦ¿αÑ¡¡δÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑß-
  4416.         ß«αá 80186.  Å«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ »« ¿¡ßΓαπ¬µ¿∩¼ »α«µÑßß«αá 80186
  4417.         ß«ñÑনΓß∩ ó â½áóÑ 3 "æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá".
  4418.  
  4419.              ÅÑαÑñ  ¡áτὫ¼  αáßß¼«ΓαÑ¡¿∩ «Γ¼ÑΓ¿¼,  τΓ« »α«µÑßß«α 8086 ¡Ñ
  4420.         αáß»«º¡áÑΓ ¡¿ «ñ¡π ¿º ΓÑσ ¿¡ßΓαπ¬µ¿⌐, ¬«Γ«αδÑ ¼δ íπñѼ «íßπªñáΓ∞.
  4421.         é  ¿Γ«úÑ óßÑ »α«úαá¼¼δ,  ¬«Γ«αδÑ ß«ñÑαªáΓ σ«Γ∩ íδ «ñ¡π ¿¡ßΓαπ¬µ¿ε
  4422.         (¡«óπε ¿½¿ αáßΦ¿αÑ¡¡πε) »α«µÑßß«αá 80186,  ¡á »α«µÑßß«αÑ 8086 αá-
  4423.         í«ΓáΓ∞ ¡Ñ íπñπΓ.
  4424.  
  4425.                                                                                
  4426.         ì«óδÑ ¿¡ßΓαπ¬µ¿¿
  4427.         -----------------------------------------------------------------
  4428.  
  4429.              ìáí«α  ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80186 ß«ñÑαª¿Γ  ß½ÑñπεΘ¿Ñ ¡«óδÑ
  4430.         ¿¡ßΓαπ¬µ¿¿:
  4431.  
  4432.            BOUND      INS       OUTS      PUSHA
  4433.            ENTER      LEAVE     POPA
  4434.  
  4435.                                 ê¡ßΓαπ¬µ¿¿ PUSHA ¿ POPA                        
  4436.         -----------------------------------------------------------------
  4437.  
  4438.              ê¡ßΓαπ¬µ¿¿ PUSHA ¿  POPA »αÑñ«ßΓáó½∩εΓ φΣΣÑ¬Γ¿ó¡«Ñ ßαÑñßΓó«,
  4439.         ß »«¼«Θ∞ε ¬«Γ«α«ú« ¼«ª¡« ºá¡«ß¿Γ∞ ¿ ¿ºó½Ñ¬áΓ∞ ¿º ßΓѬá óßÑ ó«ßѼ∞
  4440.         «íΘ¿σ αÑú¿ßΓα«ó. ê¡ßΓαπ¬µ¿⌐ PUSHA ºá¡«ß¿Γ ó ßΓѬ ó«ßѼ∞ «íΘ¿σ αÑ-
  4441.         ú¿ßΓα«ó ó ß½ÑñπεΘѼ »«α∩ñ¬Ñ: AX, CX, DX, BX, SP, BP, SI, DI. ê¡ß-
  4442.         Γαπ¬µ¿∩ POPA ¿ºó½Ñ¬áÑΓ αÑú¿ßΓαδ DI,  SI,  BP, BS, DX, CX ¿ AX (Γ«
  4443.         ÑßΓ∞ óδ»«½¡∩ÑΓ ñÑ⌐ßΓó¿Ñ, «íαáΓ¡«Ñ ñÑ⌐ßΓó¿ε ¿¡ßΓαπ¬µ¿¿ PUSHA). ÉÑ-
  4444.         ú¿ßΓα SP ¿¡ßΓαπ¬µ¿Ñ⌐ POPA ¡Ñ ¿ºó½Ñ¬áÑΓß∩,  ó¼ÑßΓ« φΓ«ú«  º¡áτÑ¡¿Ñ
  4445.         SP πóѽ¿τ¿óáÑΓß∩ ¡á 16 - ñ½¿¡π í½«¬á αÑú¿ßΓα«ó, ºá¡ÑßÑ¡¡δσ ó ßΓѬ
  4446.         »« ¿¡ßΓαπ¬µ¿¿ PUSHA, á º¡áτÑ¡¿Ñ SP, ºá¡ÑßÑ¡¡«Ñ ó ßΓѬ »« ¿¡ßΓαπ¬-
  4447.         µ¿¿  PUSHA,  «τ¿ΘáÑΓß∩ ¿¡ßΓαπ¬µ¿Ñ⌐ POPA ¿ «ΓíαáßδóáÑΓß∩.  ìá ßÑú-
  4448.         ¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ,  Σ½áú¿ ¿ π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐ PUSHA ¿  POPA  ¡Ñ
  4449.         ó½¿∩εΓ.
  4450.  
  4451.               ìá»α¿¼Ñα, ¬«ñ:
  4452.  
  4453.                 .186
  4454.  
  4455.         TASM2 #3-5/䫬              = 102 =
  4456.  
  4457.                 .
  4458.                 .
  4459.                 .
  4460.         SampleFunction  PROC
  4461.                 pusha
  4462.                 .
  4463.                 .
  4464.                 .
  4465.                 popa
  4466.                 ret
  4467.         SampleFunction  ENDP
  4468.                 .
  4469.                 .
  4470.                 .
  4471.  
  4472.         ß«σαá¡∩ÑΓ óßÑ 8 «íΘ¿σ αÑú¿ßΓα«ó ß »«¼«Θ∞ε ñóπσ ¿¡ßΓαπ¬µ¿⌐, ó¼ÑßΓ«
  4473.         16 ¿¡ßΓαπ¬µ¿⌐,  ¬«Γ«αδÑ »«ΓαÑí«ó὿ß∞ íδ ñ½∩ αáºñѽ∞¡«ú« ß«σαá¡Ñ-
  4474.         ¡¿∩ ¿ ¿ºó½ÑτÑ¡¿∩ αÑú¿ßΓα«ó.  (ìÑ ºáíδóá⌐ΓÑ ñ½∩ αáºαÑΦÑ¡¿∩ ¿ß»«½∞-
  4475.         º«óá¡¿∩ ß»Ñµ¿á½∞¡δσ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80186 π¬áºδóáΓ∞  ñ¿αѬ-
  4476.         Γ¿óπ .186.)
  4477.  
  4478.              ôτΓ¿ΓÑ, τΓ«  ¿¡ßΓαπ¬µ¿∩  PUSHA óδ»«½¡∩ÑΓß∩ íδßΓαÑÑ,  τѼ ó«-
  4479.         ßѼ∞ «Γñѽ∞¡δσ ¿¡ßΓαπ¬µ¿⌐ PUSH,  ¡« ¼Ññ½Ñ¡¡ÑÑ, τѼ Γα¿ ¿½¿ τÑΓδαÑ
  4480.         ¿¡ßΓαπ¬µ¿¿  PUSH.  àß½¿  óδ σ«Γ¿ΓÑ ß«σαá¡¿Γ∞ Γ«½∞¬« ¡Ñ߬«½∞¬« αÑ-
  4481.         ú¿ßΓα«ó, Γ« ½πτΦÑ ßñѽáΓ∞ φΓ« ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ PUSH. Æá¬«Ñ ªÑ
  4482.         ºá¼Ñτá¡¿Ñ ¼«ª¡« ßñѽáΓ∞ «Γ¡«ß¿Γѽ∞¡« ¿¡ßΓαπ¬µ¿⌐ POPA ¿ POP.
  4483.  
  4484.              ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ ß»Ñµ¿Σ¿τÑ߬¿σ ñ½∩ »α«µÑßß«αá 80186 ¿¡ß-
  4485.         Γαπ¬µ¿⌐ (Γᬿσ,  ¬á¬ PUSHA ¿ POPA) ¡Ñ ºáíπñ∞ΓÑ αáºαÑΦ¿Γ∞  ¿σ  áß-
  4486.         ßÑ¼í½¿α«óá¡¿Ñ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ .186.
  4487.  
  4488.  
  4489.  
  4490.  
  4491.         TASM2 #3-5/䫬              = 103 =
  4492.  
  4493.                                ê¡ßΓαπ¬µ¿¿ ENTER ¿ LEAVE                        
  4494.         -----------------------------------------------------------------
  4495.  
  4496.              ê¡ßΓαπ¬µ¿¿  ENTER ¿ LEAVE ¿ß»«½∞ºπεΓß∩ ñ½∩ Γ«ú«, τΓ«íδ πßΓá-
  4497.         ¡«ó¿Γ∞ ¿ «Γ¼Ñ¡¿Γ∞ úαá¡¿µδ ßΓѬá, ó ¬«Γ«αδσ »ÑαÑñáóáѼδÑ »áαá¼ÑΓαδ
  4498.         ¿ ½«¬á½∞¡δÑ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ ñ«ßΓπ»¡δ «Γ¡«ß¿Γѽ∞¡« αÑú¿ßΓ-
  4499.         αá BP. ¥Γ¿ ¿¡ßΓαπ¬µ¿¿ «ß«íÑ¡¡« »«½Ñº¡δ »α¿ «αúá¡¿ºáµ¿¿ ¿¡ΓÑαΣÑ⌐ßá
  4500.         ÇßßѼí½Ñαá ß ∩ºδ¬á¼¿,  «α¿Ñ¡Γ¿α«óá¡¡δ¼¿ ¡á αáí«Γπ ß« ßΓѬ«¼ (¡á»-
  4501.         α¿¼Ñα, ß ∩ºδ¬«¼ æ¿). (æ¼. ú½áóπ, úñÑ ß«ñÑনΓß∩ ¿¡Σ«α¼áµ¿∩ «í «α-
  4502.         úá¡¿ºáµ¿¿ ¿¡ΓÑαΣÑ⌐ßá Σπ¡¬µ¿⌐ ÇßßѼí½Ñαá ß Æπαí« æ¿, »α¿½«ªÑ¡¿Ñ, ó
  4503.         ¬«Γ«α«¼  ú«ó«α¿Γß∩ «í ¿¡ΓÑαΣÑ⌐ßÑ ß Æπαí« Åα«½«ú«¼,  ¿ ú½áóπ,  úñÑ
  4504.         «»¿ßδóáÑΓß∩ ¿¡ΓÑαΣÑ⌐ß ß Æπαí« Åá߬á½Ñ¼,  á ΓᬪѠ»α¿½«ªÑ¡¿Ñ, »«ß-
  4505.         ó∩ΘÑ¡¡πε ¿¡ΓÑαΣÑ⌐ßπ ß Æπαí« üÑ⌐ß¿¬«¼.)
  4506.  
  4507.              ê¡ßΓαπ¬µ¿∩  ENTER ß«σαá¡∩ÑΓ αÑú¿ßΓα BP óδºδóáεΘÑ⌐ »α«úαá¼¼δ,
  4508.         πßΓá¡áó½¿óáÑΓ Ñú« Γᬿ¼ «íαẫ¼,  τΓ«íδ «¡ π¬áºδóá½ ¡á ¡áτὫ »Ñ-
  4509.         αÑñáóáѼδσ  »áαá¼ÑΓα«ó (Ñß½¿ «¡¿ ¿¼ÑεΓß∩) ó ¡«óδσ úαá¡¿µáσ ßΓѬá,
  4510.         πßΓá¡áó½¿óáÑΓ,  ¬á¬ φΓ« ¡Ñ«íσ«ñ¿¼«, SP ñ½∩ óδñѽѡ¿∩ »α«ßΓαá¡ßΓóá
  4511.         ñ½∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ, ¿ ñáªÑ ¬«»¿απÑΓ í½«¬ π¬áºáΓѽÑ⌐ ¡á úαá-
  4512.         ¡¿µδ ßΓѬá ∩ºδ¬á óδß«¬«ú« πα«ó¡∩ ó ¡«óδÑ úαá¡¿µδ ßΓѬᠠ(Ñß½¿ φΓ«
  4513.         ¡Ñ«íσ«ñ¿¼«).
  4514.  
  4515.              ê¡ßΓαπ¬µ¿∩  LEAVE ¿¼ÑÑΓ ñÑ⌐ßΓó¿Ñ, «íαáΓ¡«Ñ ¿¡ßΓαπ¬µ¿¿ ENTER,
  4516.         ¿ ó«ßßΓá¡áó½¿óáÑΓ BP ¿ SP ó Γ« ß«ßΓ«∩¡¿Ñ, ¬«Γ«α«Ñ «¡¿ ¿¼Ñ½¿ »ÑαÑñ
  4517.         óδ»«½¡Ñ¡¿Ñ¼ ß««ΓóÑΓßΓóπεΘÑ⌐ ¿¡ßΓαπ¬µ¿¿ ENTER.
  4518.  
  4519.              ìá»α¿¼Ñα,  ß½ÑñπεΘá∩  ¿¡ßΓαπ¬µ¿∩  ¿ß»«½∞ºπÑΓ ENTER ñ½∩ πßΓá-
  4520.         ¡«ó¬¿ ß«ó¼ÑßΓ¿¼«⌐ ß æ¿ úαá¡¿µδ ßΓѬá (»α¿ φΓ«¼ 20 íá⌐Γ«ó αѺÑαó¿-
  4521.         απÑΓß∩ ñ½∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ),  á ¿¡ßΓαπ¬µ¿∩ LEAVE ¿ß»«½∞ºπÑΓ-
  4522.         ß∩,  τΓ«íδ «Γ¼Ñ¡¿Γ∞ úαá¡¿µπ ßΓѬᠿ  ó«ßßΓá¡«ó¿Γ∞  úαá¡¿µπ  ßΓѬá
  4523.         óδºδóáεΘÑú« ¬«ñá:
  4524.  
  4525.                 .
  4526.                 .
  4527.         SampleFunction  PROC
  4528.                 enter 10,1
  4529.                 .
  4530.                 .
  4531.                 .
  4532.                 leave
  4533.                 ret
  4534.         SampleFunction  ENDP
  4535.                 .
  4536.                 .
  4537.                 .
  4538.  
  4539.  
  4540.         TASM2 #3-5/䫬              = 104 =
  4541.  
  4542.              ÅÑαóδ⌐ «»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿  ENTER »αÑñßΓáó½∩ÑΓ ß«í«⌐ 16-í¿Γ«-
  4543.         ó«Ñ »α«¼ÑªπΓ«τ¡«Ñ º¡áτÑ¡¿Ñ,  ºáñáεΘÑÑ τ¿ß½« íá⌐Γ«ó,  ºáαѺÑαó¿α«-
  4544.         óá¡¡δσ  ñ½∩  ½«¬á½∞¡δσ  »ÑαѼѡ¡δσ ó ¡«ó«⌐ úαá¡¿µÑ ßΓѬá.  éΓ«α«⌐
  4545.         «»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿ ENTER - φΓ« 8-í¿Γ«ó«Ñ  »α«¼ÑªπΓ«τ¡«Ñ º¡áτÑ¡¿Ñ,
  4546.         ºáñáεΘÑÑ  πα«óÑ¡∞ ó½«ªÑ¡¡«ßΓ¿ Σπ¡¬µ¿¿,  ñ½∩ ¬«Γ«α«⌐ ñ«½ª¡á ß«ºñá-
  4547.         óáΓ∞ß∩ ¡«óá∩ úαá¡¿µá ßΓѬá. ¥Γ«Γ «»Ñαá¡ñ ºáñáÑΓ, ß¬«½∞¬« αẠ¡πª-
  4548.         ¡« ß¬«»¿α«óáΓ∞ π¬áºáΓѽ¿ úαá¡¿µδ ßΓѬᠿº úαá¡¿µ ßΓѬá óδºδóáεΘÑ-
  4549.         ú« ¬«ñá ó ¡«óδÑ úαá¡¿µδ ßΓѬá.
  4550.  
  4551.              ÄΓ¼ÑΓ¿¼,  τΓ« τΓ«íδ ó«ºóαáΓ¿Γ∞ π»αáó½Ñ¡¿Ñ ó  óδºδóáεΘ¿⌐ ¬«ñ,
  4552.         »«ß½Ñ  ¿¡ßΓαπ¬µ¿¿  LEAVE  ¡Ñ«íσ«ñ¿¼á  ¿¡ßΓαπ¬µ¿∩ RET.  ê¡ßΓαπ¬µ¿∩
  4553.         LEAVE «Γ¼Ñ¡∩ÑΓ ΓѬπΘπε úαá¡¿µπ ßΓѬá,  ¡« ¡Ñ  óδ»«½¡∩ÑΓ  ó«ºóαáΓá
  4554.         π»αáó½Ñ¡¿∩.
  4555.  
  4556.              ê¡ßΓαπ¬µ¿¿  ENTER ¿ LEAVE ¡Ñ ß«σαá¡∩εΓ ¡¿¬á¬¿σ αÑú¿ßΓα«ó óδ-
  4557.         ºδóáεΘÑú« ¬«ñá.  ä½∩ φΓ«⌐ µÑ½¿  ß½ÑñπÑΓ  ¿ß»«½∞º«óáΓ∞  ¿¡ßΓαπ¬µ¿¿
  4558.         PUSHA ¿ POPA (¿½¿ PUSH ¿ POP).
  4559.  
  4560.  
  4561.  
  4562.  
  4563.         TASM2 #3-5/䫬              = 105 =
  4564.  
  4565.                                    ê¡ßΓαπ¬µ¿∩ BOUND                            
  4566.         -----------------------------------------------------------------
  4567.  
  4568.              ê¡ßΓαπ¬µ¿∩ BOUND »α«óÑα∩ÑΓ, τΓ« 16-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ ¡áσ«ñ¿Γ-
  4569.         ß∩ ó ñ¿á»áº«¡Ñ ß« º¡á¬«¼, ºáñá¡¡«¼ ñóπ¼∩ ß¼Ñª¡δ¼¿ ß½«óἿ »á¼∩Γ¿,
  4570.         »α¿ φΓ«¼ óÑασ¡∩∩ úαá¡¿µá ºá»¿ßá¡á »« áñαÑßπ,  αáß»«½«ªÑ¡¡«¼π  ¡Ñ-
  4571.         »«ßαÑñßΓóÑ¡¡« ¡áñ ¡¿ª¡Ñ⌐ úαá¡¿µÑ⌐.  ÄíÑ úαá¡¿µδ ¿¡ΓÑα»αÑΓ¿απεΓß∩,
  4572.         ¬á¬ º¡áτÑ¡¿∩ ß« º¡á¬«¼,  »«φΓ«¼π ¼«ª¡« ºáñáΓ∞ ¼á¬ß¿¼á½∞¡δ⌐ ñ¿á»á-
  4573.         º«¡  «Γ  -32768 ñ« +32767 ó¬½ετ¿Γѽ∞¡«.  ç¡áτÑ¡¿∩,  ß«ó»áñáεΘ¿Ñ ß
  4574.         ¡¿ª¡Ñ⌐ ¿½¿ óÑασ¡Ñ⌐ úαá¡¿µÑ⌐,  αáßß¼áΓα¿óáεΓß∩,  ¬á¬ »α¿¡áñ½ÑªáΘ¿Ñ
  4575.         ºáñá¡¡«¼π ñ¿á»áº«¡π.
  4576.  
  4577.              ê¡ßΓαπ¬µ¿∩  BOUND  ¿ß»«½∞ºπÑΓß∩ «íδτ¡« ñ½∩ Γ«ú«,  τΓ«íδ »αÑ-
  4578.         ñ«ΓóαáΓ¿Γ∞ óδσ«ñ ºá úαá¡¿µδ ¼áßß¿óá.  ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú-
  4579.         ¼Ñ¡ΓÑ »α«úαá¼¼δ »α«óÑα∩ÑΓß∩,  ¡áσ«ñ¿Γß∩ ½¿ º¡áτÑ¡¿Ñ αÑú¿ßΓαá BX ó
  4580.         ñ¿á»áº«¡Ñ «Γ 0 ñ« 99 ó¬½ετ¿Γѽ∞¡« »ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ Ñú« ó  ¬á-
  4581.         τÑßΓóÑ ¿¡ñѬßá ó 100-íá⌐Γ«ó«¼ ¼áßß¿óÑ TestArray.
  4582.  
  4583.                 .
  4584.                 .
  4585.                 .
  4586.                 .DATA
  4587.         TestArrayBounds LABEL   DWORD
  4588.                 DW      0       ; ¡¿ª¡∩∩ úαá¡¿µá ¼áßß¿óá
  4589.                 DW      99      ; óÑασ¡∩∩ úαá¡¿µá ¼áßß¿óá
  4590.         TestArray       DB      100 DUP (?)
  4591.                 .
  4592.                 .
  4593.                 .
  4594.                 .CODE
  4595.                 .
  4596.                 .
  4597.                 .
  4598.                 mov     ax,@Data
  4599.                 mov     ds,ax
  4600.                 .
  4601.                 .
  4602.                 .
  4603.                 bound   bx,[TestArrayBounds]
  4604.                 mov     al,[TestArray+bx]
  4605.                 .
  4606.                 .
  4607.                 .
  4608.  
  4609.              àß½¿ º¡áτÑ¡¿Ñ αÑú¿ßΓαá BX ¡Ñ ¡áσ«ñ¿Γß∩ ó ºáñá¡¡«¼ ñ¿á»áº«¡Ñ,
  4610.         Γ« úÑ¡Ñα¿απÑΓß∩ »αÑαδóá¡¿Ñ INT 5. ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ ¿¡ßΓαπ¬µ¿¿
  4611.  
  4612.         TASM2 #3-5/䫬              = 106 =
  4613.  
  4614.         BOUND ñ«½ªÑ¡ íδΓ∞, ¬«¡Ñτ¡«, πßΓá¡«ó½Ñ¡ ñαá⌐óÑα »αÑαδóá¡¿⌐.
  4615.  
  4616.              ÅÑαóδ⌐  «»Ñαá¡ñ  ¿¡ßΓαπ¬µ¿¿ BOUND »αÑñßΓáó½∩ÑΓ ß«í«⌐ 16-αáº-
  4617.         α∩ñ¡δ⌐ αÑú¿ßΓα «íΘÑú« ¡áº¡áτÑ¡¿∩,  ß«ñÑαªáΘ¿⌐ »α«óÑα∩Ѽ«Ñ  º¡áτÑ-
  4618.         ¡¿Ñ.  éΓ«α«⌐ «»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿ BOUND - φΓ« ñó«⌐¡«Ñ ß½«ó«, ß«ñÑα-
  4619.         ªáΘÑÑ ñ¿á»áº«¡.  ¥Γ« ñó«⌐¡«Ñ  ß½«ó«  ß«ñÑαª¿Γ  16-í¿Γ«óπε  ¡¿ª¡εε
  4620.         úαá¡¿µπ  ó ¼½áñΦѼ ß½«óÑ ¿ 16-í¿Γ«óπε óÑασ¡εε úαá¡¿µπ ß« º¡á¬«¼ ó
  4621.         ¬áτÑßΓóÑ ßΓáαΦÑú« ß½«óá.
  4622.  
  4623.              ÄΓ¡«ß¿Γѽ∞¡« ¿¡ßΓαπ¬µ¿¿  BOUND ß½ÑñπÑΓ ßñѽáΓ∞ «ñ¡«  ºá¼Ñτá-
  4624.         ¡¿Ñ:  π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐, ºá¡«ß¿¼δ⌐ ó ßΓѬ »α¿ úÑ¡Ñαᵿ¿ »αÑαδ-
  4625.         óá¡¿∩ INT 5 »α¿ óδσ«ñÑ »α«óÑα∩Ѽ«ú« º¡áτÑ¡¿∩ ºá úαá¡¿µδ  ñ¿á»áº«-
  4626.         ¡á,  π¬áºδóáÑΓ  ¡á  ßá¼π  ¿¡ßΓαπ¬µ¿ε  BOUND,  á  ¡Ñ  ¡á ß½ÑñπεΘπε
  4627.         ¿¡ßΓαπ¬µ¿ε. àß½¿ φΓ« ¡Ñ íπñÑΓ ß¬«ααÑ¬Γ¿α«óá¡« «íαáí«Γτ¿¬«¼ »αÑαδ-
  4628.         óá¡¿∩ INT 5 »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ ¿¡ßΓαπ¬µ¿¿ IRET,  Γ« ΓᠪѠ¿¡ßΓαπ¬-
  4629.         µ¿∩ BOUND ß¡«óá ßúÑ¡Ñα¿απÑΓ »αÑαδóá¡¿Ñ INT 5,  ¿ Γᬠñ« íÑ߬«¡Ñτ-
  4630.         ¡«ßΓ¿.  Å«φΓ«¼π  «íαáí«Γτ¿¬ »αÑαδóá¡¿∩ INT 5 ñ½∩ ¿¡ßΓαπ¬µ¿⌐ BOUND
  4631.         ñ«½ªÑ¡ óδóÑßΓ¿ ß««íΘÑ¡¿Ñ ¿ ºáóÑαΦ¿Γ∞ »α«úαá¼¼π íѺ óδ»«½¡Ñ¡¿∩ ¿¡-
  4632.         ßΓαπ¬µ¿¿ IRET, ¿½¿ ß¬«ααÑ¬Γ¿α«óáΓ∞ πß½«ó¿Ñ óδσ«ñá ºá úαá¡¿µδ ñ¿á-
  4633.         »áº«¡á »ÑαÑñ óδ»«½¡Ñ¡¿Ñ¼ ¿¡ßΓαπ¬µ¿¿ IRET ¿ »α«ñ«½ªÑ¡¿Ñ¼ αáí«Γδ.
  4634.  
  4635.  
  4636.  
  4637.  
  4638.         TASM2 #3-5/䫬              = 107 =
  4639.  
  4640.                                  ê¡ßΓαπ¬µ¿¿ INS ¿ OUTS                         
  4641.         -----------------------------------------------------------------
  4642.  
  4643.               ê¡ßΓαπ¬µ¿¿ INS  ¿  OUTS  «íÑß»Ñτ¿óáεΓ  φΣΣÑ¬Γ¿ó¡πε »ÑαÑñáτπ
  4644.         ñá¡¡δσ ¼Ñªñπ »«αΓἿ óó«ñá-óδó«ñá ¿ »á¼∩Γ∞ε.
  4645.  
  4646.              ê¡ßΓαπ¬µ¿∩ MOVS »ÑαѼÑΘáÑΓ «ñ¿¡ ¿½¿ í«½ÑÑ íá⌐Γ (¿½¿ ß½«ó) ¿º
  4647.         »«αΓá óó«ñá-óδó«ñá,  ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DX,  ó ¼áßß¿ó ó
  4648.         »á¼∩Γ¿, ¡á ¬«Γ«αδ⌐ π¬áºδóáεΓ ES:DI, πóѽ¿τ¿óá∩ DI ¡á 1 (¿½¿ ¡á 2)
  4649.         »«ß½Ñ Γ«ú«, ¬á¬ ¬áªñδ⌐ íá⌐Γ (¿½¿ ß½«ó«) íπñÑΓ »ÑαÑñá¡ (¿½¿ π¼Ñ¡∞-
  4650.         Φá∩ SI, Ñß½¿ πßΓá¡«ó½Ñ¡ Σ½áú ¡á»αáó½Ñ¡¿∩). ìá αÑú¿ßΓα DX ¿¡ßΓαπ¬-
  4651.         µ¿∩ INS ¡Ñ ó½¿∩ÑΓ.  èᬠ¿ ó ß½πτáÑ óßÑσ ßΓ᫬«óδσ ¿¡ßΓαπ¬µ¿⌐, ¬«-
  4652.         Γ«αδÑ óδ»«½¡∩εΓ ºá»¿ß∞ ó  »á¼∩Γ∞,  ¿ß»«½∞º«óá¡¿Ñ  ES  ó  ¬áτÑßΓóÑ
  4653.         ßÑú¼Ñ¡Γ¡«ú« αÑú¿ßΓαᠵѽÑó«ú« ßÑú¼Ñ¡Γá »ÑαÑ«»αÑñѽ¿Γ∞ ¡Ñ½∞º∩.
  4654.  
  4655.              ê¡ßΓαπ¬µ¿∩ OUTS »ÑαѼÑΘáÑΓ «ñ¿¡ ¿½¿ í«½ÑÑ íá⌐Γ (¿½¿ ß½«ó) ¿º
  4656.         ¼áßß¿óá ó »á¼∩Γ¿,  ¡á ¬«Γ«αδ⌐ π¬áºδóáεΓ DS:SI, ó »«αΓ óó«ñá-óδó«-
  4657.         ñá, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DX,  πóѽ¿τ¿óá∩ º¡áτÑ¡¿Ñ SI ¡á 1
  4658.         (¿½¿ 2) »«ß½Ñ »ÑαÑß佬¿ ¬áªñ«ú« íá⌐Γá (¿½¿ ß½«óá), ½¿í«  π¼Ñ¡∞Φá∩
  4659.         αÑú¿ßΓα SI,  Ñß½¿ πßΓá¡«ó½Ñ¡ Σ½áú ¡á»αáó½Ñ¡¿∩. ìá αÑú¿ßΓα DX ¿¡ß-
  4660.         Γαπ¬µ¿∩ OUTS ¡Ñ ó½¿∩ÑΓ.  æ »«¼«Θ∞ε »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩  ßÑú-
  4661.         ¼Ñ¡Γá ¼«ª¡« óδíαáΓ∞ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα,  «Γ½¿τ¡δ⌐ «Γ αÑú¿ßΓαá DS.
  4662.         é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ¿¡ßΓαπ¬µ¿∩ INSB  (íá⌐Γ«óá∩ Σ«α¼á)
  4663.         ¿ß»«½∞ºπÑΓß∩ ñ½∩  ¬«»¿α«óá¡¿∩  300h  íá⌐Γ  ó »á¼∩Γ∞ ¿º »«αΓá óó«-
  4664.         ñá-óδó«ñá 3000h,  á ºáΓѼ ¿ß»«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ OUTSB ñ½∩ ¬«»¿-
  4665.         α«óá¡¿∩ ¬«»¿α«óá¡¿∩  φΓ«ú«  íá⌐Γ«ó«ú«  í½«¬á  ó »«αΓ óó«ñá-óδó«ñá
  4666.         3001h:
  4667.  
  4668.                 .
  4669.                 .
  4670.                 .
  4671.                 cld
  4672.                 mov     ax,@Data
  4673.                 mov     ds,ax
  4674.                 mov     es,ax
  4675.                 mov     dx,3000h
  4676.                 mov     di,OFFSET Buffer
  4677.                 mov     cx,300h
  4678.                 rep     insb            ; ß¬«»¿α«óáΓ∞ 300 íá⌐Γ ¿º
  4679.                                         ; »«αΓá ó íπΣÑα
  4680.                 mov     dx,3001h
  4681.                 mov     si,OFFSET Buffer
  4682.                 mov     cx,300h
  4683.                 rep     outsb           ; ß¬«»¿α«óáΓ∞ 300h íá⌐Γ ¿º
  4684.                                         ; íπΣÑαá ó »«αΓ
  4685.                 .
  4686.  
  4687.         TASM2 #3-5/䫬              = 108 =
  4688.  
  4689.                 .
  4690.                 .
  4691.  
  4692.  
  4693.  
  4694.  
  4695.         TASM2 #3-5/䫬              = 109 =
  4696.  
  4697.                                                                                
  4698.         ÉáßΦ¿αÑ¡¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086
  4699.         -----------------------------------------------------------------
  4700.  
  4701.              é  ¡áí«αÑ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80186 ¿¼ÑεΓß∩ ß½ÑñπεΘ¿Ñ αáß-
  4702.         Φ¿αÑ¡¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086:
  4703.  
  4704.                 IMUL            ROL             SAR
  4705.                 PUSH            ROR             SHL
  4706.                 RCL             SAL             SHR
  4707.                 RCR
  4708.  
  4709.                         çá¡ÑßÑ¡¿Ñ ó ßΓѬ »α«¼ÑªπΓ«τ¡δσ º¡áτÑ¡¿⌐                
  4710.         -----------------------------------------------------------------
  4711.  
  4712.              é Γ« óαѼ∩ ¬á¬ »α«µÑßß«α  8086 ¼«ªÑΓ ºá¡«ß¿Γ∞ ó  ßΓѬ Γ«½∞¬«
  4713.         αÑú¿ßΓα«óδÑ «»Ñαá¡ñδ ¿½¿ «»Ñαá¡ñδ ó »á¼∩Γ¿, »α«µÑßß«α 80186 ¼«ªÑΓ
  4714.         ºá¡«ß¿Γ∞ ó ¡Ñú« ΓᬪѠ¿ »α«¼ÑªπΓ«τ¡δÑ º¡áτÑ¡¿∩:
  4715.  
  4716.                 push 19
  4717.  
  4718.              çá¡ÑßÑ¡¿Ñ ó ßΓѬ »α«¼ÑªπΓ«τ¡δσ º¡áτÑ¡¿⌐ »«½Ñº¡« ¿ß»«½∞º«óáΓ∞
  4719.         »α¿ »ÑαÑñáτ¿ ó ßΓѬѠΣπ¡¬µ¿∩¼ »áαá¼ÑΓα«ó-¬«¡ßΓá¡Γ.  ìá»α¿¼Ñα, ¬«ñ
  4720.         »α«µÑßß«αá 8086 ñ½∩ Σπ¡¬µ¿«¡á½∞¡«ú« ó맮óá æ¿:
  4721.  
  4722.                 Average(5, 2);
  4723.  
  4724.         ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  4725.  
  4726.                 mov     ax,2
  4727.                 push    ax
  4728.                 mov     ax,5
  4729.                 push    ax
  4730.                 call    _Average
  4731.                 add     sp,4
  4732.  
  4733.         á »α¿  ¡á½¿τ¿¿ »α«µÑßß«αá 80186 Ñú« ¼«ª¡« »αÑ«íαẫóáΓ∞ ó ß½Ññπε-
  4734.         Θ¿⌐ ó¿ñ:
  4735.  
  4736.                 push    2
  4737.                 push    5
  4738.                 call    _Average
  4739.                 add     sp,4
  4740.  
  4741.              çá¼ÑΓ¿¼, τΓ« σ«Γ∩ »α«µÑßß«α 8086 ¡Ñ ¿¼ÑÑΓ ¿¡ßΓαπ¬µ¿¿  PUSH ß
  4742.         ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼, ß¿¡Γá¬ß¿ß Æπαí« ÇßßѼí½Ñαá óÑαß¿¿ 2.0
  4743.  
  4744.         TASM2 #3-5/䫬              = 110 =
  4745.  
  4746.         »«ºó«½∩ÑΓ óá¼ ºáñáΓ∞ ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ Γá¬πε ¿¡ßΓαπ¬µ¿ε. è«úñá φΓá
  4747.         ¿¡ßΓαπ¬µ¿∩ íπñÑΓ  «í¡áαπªÑ¡á,  «¡á  ºá¼Ñ¡∩ÑΓß∩  ó  «íΩÑ¬Γ¡«¼ ¬«ñÑ
  4748.         10-íá⌐Γ«ó«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε, ¬«Γ«αá∩ ¼«ñѽ¿απÑΓ ñá¡¡πε «»Ñαá-
  4749.         µ¿ε, ß«σαá¡∩∩ óßÑ αÑú¿ßΓαδ ¿ Σ½áú¿.
  4750.  
  4751.               æñó¿ú¿ ¿ µ¿¬½¿τÑ߬¿Ñ ßñó¿ú¿ c ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿       
  4752.         -----------------------------------------------------------------
  4753.  
  4754.              é Γ« óαѼ∩ ¬á¬ »α«µÑßß«α  8086 ¼«ªÑΓ ¼«ªÑΓ  Γ«½∞¬« óδ»«½¡∩Γ∞
  4755.         ßñó¿ú ¿½¿ µ¿¬½¿τÑ߬¿⌐ ßñó¿ú ¡á 1 í¿Γ ¿½¿ ¡á τ¿ß½« í¿Γ, ºáñá¡¡«Ñ ó
  4756.         αÑú¿ßΓαÑ CL,  »α«µÑßß«α 80186 ¼«ªÑΓ óδ»«½¡∩Γ∞ ßñó¿ú ¿½¿ µ¿¬½¿τÑß-
  4757.         ¬¿⌐ ßñó¿ú ¡á º¡áτÑ¡¿Ñ-¬«¡ßΓá¡Γπ:
  4758.  
  4759.                 .
  4760.                 .
  4761.                 .
  4762.                 ror     ax,3
  4763.                 shl     dl,7
  4764.                 .
  4765.                 .
  4766.                 .
  4767.  
  4768.              ¥Γ« πñ«í¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδ»«½¡Ñ¡¿∩ ßñó¿ú«ó  ¡á ¡Ñ߬«½∞¬«
  4769.         í¿Γ«ó íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ºáúαπº¬¿ ó αÑú¿ßΓα CL ßτÑΓτ¿¬á í¿Γ.  ìá»-
  4770.         α¿¼Ñα, ß½ÑñπεΘ¿⌐ ¬«ñ »α«µÑßß«αá 8086 óδ»«½¡∩ÑΓ π¼¡«ªÑ¡¿Ñ ß«ñÑন-
  4771.         ¼«ú« αÑú¿ßΓα AX ¡á 256:
  4772.  
  4773.                 .
  4774.                 .
  4775.                 .
  4776.                 mov     cl,8
  4777.                 shl     ax,cl
  4778.                 .
  4779.                 .
  4780.                 .
  4781.  
  4782.               æ ¿ß»«½∞º«ó᡿Ѽ  ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80186 φΓ« »α¿¡¿¼áÑΓ
  4783.         ó¿ñ:
  4784.  
  4785.                 shl     ax,8
  4786.  
  4787.                         ô¼¡«ªÑ¡¿Ñ ¡á ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ                 
  4788.         -----------------------------------------------------------------
  4789.  
  4790.  
  4791.         TASM2 #3-5/䫬              = 111 =
  4792.  
  4793.              Åα«µÑßß«α  8086  ¼«ªÑΓ  π¼¡«ªáΓ∞  Γ«½∞¬« 8- ¿½¿ 16-αáºα∩ñ¡δ⌐
  4794.         αÑú¿ßΓα ¿½¿ «»Ñαá¡ñ ó »á¼∩Γ¿ ¡á AL ¿½¿ AX,  αẼÑΘá∩ αѺπ½∞ΓáΓ  ó
  4795.         αÑú¿ßΓαÑ AX  ¿½¿ ó »áαÑ αÑú¿ßΓα«ó DX:AX.  é »α«µÑßß«αÑ 80186 »αÑ-
  4796.         ñπß¼«ΓαÑ¡δ ñóÑ ¡«óδÑ Σ«α¼δ π¼¡«ªÑ¡¿∩, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩, ¬«úñá
  4797.         16-αáºα∩ñ¡«Ñ π¼¡«ªÑ¡¿Ñ íπñÑΓ αẼÑΘáΓ∞ß∩ ó 16 í¿Γáσ.
  4798.  
  4799.              Äñ¡á ¿º  ¡«óδσ  Σ«α¼  π¼¡«ªÑ¡¿∩ »ÑαѼ¡«ªáÑΓ 16-αáºα∩ñ¡δ⌐ αÑ-
  4800.         ú¿ßΓα ¿ 16-αáºα∩ñ¡«Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ,  á αѺπ½∞ΓáΓ ß«σ-
  4801.         αá¡∩ÑΓ «íαáΓ¡« ó 16-αáºα∩ñ¡«¼ αÑú¿ßΓαÑ.  ìá»α¿¼Ñα, ß½ÑñπεΘá∩ ¿¡ß-
  4802.         Γαπ¬µ¿∩ π¼¡«ªáÑΓ ß«ñÑন¼«Ñ DX ¡á 4,  á »α«¿ºóÑñÑ¡¿Ñ ºá»¿ßδóáÑΓ ó
  4803.         «íαáΓ¡« ó DX:
  4804.  
  4805.                 imul    dx,4
  4806.  
  4807.              ÅÑαóδ⌐ «»Ñαá¡ñ,  ¬«Γ«αδ⌐  ¼«ªÑΓ  »αÑñßΓáó½∩Γ∞  ß«í«⌐   ½εí«⌐
  4808.         16-αáºα∩ñ¡δ⌐ αÑú¿ßΓα «íΘÑú« ¡áº¡áτÑ¡¿∩, ∩ó½∩ÑΓß∩ «ñ¡«óαѼѡ¡« ¿ß-
  4809.         Γ«τ¡¿¬«¼ ñ½∩ «ñ¡«ú« ¿º ß«¼¡«ª¿ΓѽÑ⌐ ¿ »α¿Ñ¼¡¿¬«¼  ñ½∩  »α«¿ºóÑñÑ-
  4810.         ¡¿∩. éΓ«α«⌐ «»Ñαá¡ñ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ »αÑñßΓáó½∩Γ∞ ß«í«⌐ ¡Ñ»«ßαÑñß-
  4811.         ΓóÑ¡¡«Ñ 16-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, - φΓ« ñαπú«⌐ ß«¼¡«ª¿Γѽ∞.
  4812.  
  4813.              àΘÑ «ñ¡á ¡«óá∩ Σ«α¼á π¼¡«ªÑ¡¿∩ »ÑαѼ¡«ªáÑΓ 16-αáºα∩ñ¡δ⌐  αÑ-
  4814.         ú¿ßΓα  ¿½¿ «»Ñαá¡ñ ó »á¼∩Γ¿ ¡á 16-í¿Γ«ó«Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ-
  4815.         ¡¿Ñ,  ¿ ß«σαá¡∩ÑΓ  αѺπ½∞ΓáΓ ó ºáñá¡¡«¼ 16-í¿Γ«ó«¼ αÑú¿ßΓαÑ. ìá»-
  4816.         α¿¼Ñα, ß½ÑñπεΘá∩  ¿¡ßΓαπ¬µ¿∩  π¼¡«ªáÑΓ  ß«ñÑন¼«Ñ αÑú¿ßΓαá DX ¡á
  4817.         600h ¿ »«¼ÑΘáÑΓ »α«¿ºóÑñÑ¡¿Ñ ó αÑú¿ßΓα CX:
  4818.  
  4819.                 imul    cx,dx,600h
  4820.  
  4821.              Ç¡á½«ú¿τ¡«, ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ π¼¡«ªáÑΓ 16-αáºα∩ñ¡«Ñ  º¡á-
  4822.         τÑ¡¿Ñ ó [BX+SI+1] ¡á 3 ¿ »«¼ÑΘáÑΓ »α«¿ºóÑñÑ¡¿Ñ ó αÑú¿ßΓα AX.
  4823.  
  4824.                 imul    ax,[bx+si+1],3
  4825.  
  4826.              é ñá¡¡«⌐  Σ«α¼Ñ  ¿¡ßΓαπ¬µ¿¿ IMUL »Ñαóδ⌐ «»Ñαá¡ñ »αÑñßΓáó½∩ÑΓ
  4827.         ß«í«⌐ »α¿Ñ¼¡¿¬.  ¥Γ«Γ «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ½εíδ¼ 16-αáºα∩ñ¡δ¼ «íΘ¿¼
  4828.         αÑú¿ßΓα«¼. éΓ«α«⌐ «»Ñαá¡ñ, ¬«Γ«αδ⌐ ¼«ªÑΓ ºáñáóáΓ∞ß∩ ½εíδ¼ 16-αáº-
  4829.         α∩ñ¡δ¼ «íΘ¿¼ αÑú¿ßΓα«¼ ¿½¿ ∩τÑ⌐¬«⌐  »á¼∩Γ¿,  ∩ó½∩ÑΓß∩  ¿ßΓ«τ¡¿¬«¼
  4830.         «ñ¡«ú« ¿º ß«¼¡«ª¿ΓѽÑ⌐. ÆαÑΓ¿⌐ «»Ñαá¡ñ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ ºáñáóáΓ∞ß∩
  4831.         16-í¿Γ«óδ¼ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼,  - φΓ« ñαπú«⌐ ß«¼¡«ª¿Γѽ∞.
  4832.  
  4833.              àß½¿ ¡Ñ¼¡«ú« »«ñπ¼áΓ∞,  Γ« ßΓá¡ÑΓ ∩ß¡«,  τΓ« »Ñαóá∩ ¿º ¡«óδσ
  4834.         Σ«α¼ π¼¡«ªÑ¡¿∩ - φΓ« ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ »«ñ¼¡«ªÑßΓó« óΓ«α«⌐ ¡«ó«⌐
  4835.         Σ«α¼δ. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩:
  4836.  
  4837.                 imul    si,10
  4838.  
  4839.  
  4840.         TASM2 #3-5/䫬              = 112 =
  4841.  
  4842.         φΓ« »α«ßΓ« ß«¬αáΘÑ¡¡á∩ Σ«α¼á ¿¡ßΓαπ¬µ¿¿:
  4843.  
  4844.                 imul    si,si,10
  4845.  
  4846.              ä½∩ «íÑ¿σ ¡«óδσ Σ«α¼ ¿¡ßΓαπ¬µ¿¿ IMUL  ß««ΓóÑΓßΓóπεΘ¿⌐  ΦÑßΓ-
  4847.         ¡áñµáΓ¿α¿τ¡δ⌐  ¬«ñ íπñÑΓ «ñ¿¡á¬«óδ¼.  ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ,  πñ«í¡« ¿¼ÑΓ∞
  4848.         ó«º¼«ª¡«ßΓ∞ ¿ß»«½∞º«óáΓ∞ í«½ÑÑ »α«ßΓπε Σ«α¼π  ¿¡ßΓαπ¬µ¿¿  IMUL  ß
  4849.         ñóπ¼∩ «»Ñαá¡ñἿ,  ¬«úñá «ñ¿¡ ¿ Γ«Γ ªÑ αÑú¿ßΓα ¿ß»«½∞ºπÑΓß∩ ¿ ¬á¬
  4850.         ¿ßΓ«τ¡¿¬, ¿ ¬á¬ »α¿Ñ¼¡¿¬.
  4851.  
  4852.              Åα¿ ½εí«⌐ ¿º ¡«óδσ Σ«α¼ π¼¡«ªÑ¡¿∩  ½εíá∩  τáßΓ∞  αѺπ½∞ΓáΓá,
  4853.         ¬«Γ«αá∩ ¡Ñ »«¼ÑΘáÑΓß∩ ó 16 í¿Γáσ,  ΓÑα∩ÑΓß∩. àß½¿ ΓÑα∩εΓß∩ º¡áτá-
  4854.         Θ¿Ñ í¿Γδ (»αÑñ»«½áúá∩,  τΓ« αѺπ½∞ΓáΓ ñ«½ªÑ¡  »αÑñßΓáó½∩Γ∞  ß«í«⌐
  4855.         º¡áτÑ¡¿Ñ ß« º¡á¬«¼), Γ« πßΓá¡áó½¿óáεΓß∩ Σ½áú¿ »ÑαÑ¡«ßá ¿ »ÑαÑ»«½-
  4856.         ¡Ñ¡¿∩.  é ¡«óδσ Σ«α¼áσ «»Ñαᵿ¿ π¼¡«ªÑ¡¿∩ π¼¡«ªÑ¡¿Ñ  º¡áτÑ¡¿⌐  ß«
  4857.         º¡á¬«¼ ¿ íѺº¡á¬«óδσ º¡áτÑ¡¿⌐ ¡Ñ αẽ¿τáεΓß∩, »«ß¬«½∞¬π αѺπ½∞ΓáΓ
  4858.         ¿¼ÑÑΓ ñ½¿¡π Γ«½∞¬« 16 í¿Γ«ó, ¿ ¼½áñΦ¿Ñ 16 í¿Γ«ó »α«¿ºóÑñÑ¡¿∩ (»«-
  4859.         ½πτÑ¡¡«ú« ó αѺπ½∞ΓáΓÑ »ÑαѼ¡«ªÑ¡¿∩ ¬á¬ º¡áτÑ¡¿⌐ ß« º¡á¬«¼, Γᬠ¿
  4860.         íѺº¡á¬«óδσ º¡áτÑ¡¿⌐) óßÑúñá ß«ó»áñáεΓ.  æ½Ññ«óáΓѽ∞¡«, ñ½∩ «í«º-
  4861.         ¡áτÑ¡¿∩ ¡«óδσ Σ«α¼ π¼¡«ªÑ¡¿∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« ¿¡ßΓαπ¬µ¿ε
  4862.         IMUL.
  4863.  
  4864.  
  4865.  
  4866.  
  4867.         TASM2 #3-5/䫬              = 113 =
  4868.  
  4869.                                     Åα«µÑßß«α 80286                            
  4870.         -----------------------------------------------------------------
  4871.  
  4872.              Åα«µÑßß«α 80286 íδ½ »Ñαóδ¼ »α«µÑßß«α«¼ ßÑα¿¿ iAPx86, ¬«Γ«αδ⌐
  4873.         »«ºó«½¿½ πßΓαá¡¿Γ∞ «úαá¡¿τÑ¡¿Ñ »« »á¼∩Γ¿ ó 1 ¼Ñúáíá⌐Γ, ¿  ¬«Γ«αδ⌐
  4874.         »«ññÑনóá½  ΓᬪѠºáΘ¿Γπ »á¼∩Γ¿ ¿ ó¿αΓπá½∞¡πε »á¼∩Γ∞.  Åα«µÑßß«α
  4875.         80286 »«ññÑনóáÑΓ óßÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«α«ó 8089 ¿ 80186 ¿ ¬α«-
  4876.         ¼Ñ Γ«ú« »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ ñ«»«½¡¿Γѽ∞¡δÑ ¿¡ßΓαπ¬µ¿¿, «íÑß»Ñ-
  4877.         τ¿óáεΘ¿Ñ π»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε ß αáºó¿Γ«⌐ áασ¿ΓѬΓπα«⌐.
  4878.  
  4879.              Åα«µÑßß«α 80286 ¿¼ÑÑΓ ñóá αѪ¿¼á «»Ñαᵿ⌐:  αÑá½∞¡δ⌐ αѪ¿¼ ¿
  4880.         ºáΘ¿ΘÑ¡¡δ⌐ αѪ¿¼. Éáí«Γá »α«µÑßß«αá 80286 ó αÑá½∞¡«¼ αѪ¿¼Ñ »αá¬-
  4881.         Γ¿τÑ߬¿ á¡á½«ú¿τ¡á αáí«ΓÑ »α«µÑßß«αá 80286 («¡  «íÑß»Ñτ¿óáÑΓ  Γ«Γ
  4882.         ªÑ ¡áí«α ¿¡ßΓαπ¬µ¿⌐, τΓ« ¿ »α«µÑßß«α 80186). ¥Γ« Γ«Γ αѪ¿¼, ó ¬«-
  4883.         Γ«α«¼ ó ¬«¼»∞εΓÑαÑ,  ¿ß»«½∞ºπεΘѼ »α«µÑßß«α 80286 (Γᬫ¼,  ¬á¬ PC
  4884.         AT  Σ¿α¼δ  IBM) αáí«ΓáεΓ í«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ »α«ñπ¬Γ«ó (¡á»α¿-
  4885.         ¼Ñα, Æπαí« Åá߬á½∞ ¿½¿ Quattro) ¿ «»Ñαᵿ«¡¡á∩ ß¿ßΓѼá PC-DOS.
  4886.  
  4887.              æαÑñßΓóá π»αáó½Ñ¡¿∩  »á¼∩Γ∞ε  ó  »α«µÑßß«αÑ  80286  ñ«ßΓπ»¡δ
  4888.         Γ«½∞¬« ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ. ê Γ«½∞¬« ó φΓ«¼ αѪ¿¼Ñ ¼«ª¡« «ñ¡«óαÑ-
  4889.         ¼Ñ¡¡« ºá»πßΓ¿Γ∞ ¡á óδ»«½¡Ñ¡¿Ñ ¡Ñ߬«½∞¬«  ¡Ñ  «¬áºδóáεΘ¿σ  ó½¿∩¡¿Ñ
  4890.         ñαπú ¡á ñαπúá ºáñáτ.  Åα¿ φΓ«¼ ¼«ª¡« áñαÑß«óáΓ∞ß∩ ¬ »á¼∩Γ¿, «íΩѼ
  4891.         ¬«Γ«α«⌐ »αÑóδΦáÑΓ 1 ¼Ñúáíá⌐Γ. é φΓ«¼ αѪ¿¼Ñ ¡á ¬«¼»∞εΓÑαáσ ß »α«-
  4892.         µÑßß«α«¼ 80286 αáí«ΓáÑΓ «»Ñαᵿ«¡¡á∩ ß¿ßΓѼá OS/2.
  4893.  
  4894.              ä½∩ αáí«Γδ  ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ ó »α«µÑßß«αÑ 80286 ¿ß»«½∞ºπ-
  4895.         εΓß∩ ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿:
  4896.  
  4897.                 CLTS    LIDT    LMSW
  4898.                 LGDT    LLDT    LTR
  4899.  
  4900.              ¥Γ¿ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80286 »αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ ¿ß-
  4901.         »«½∞º«óá¡¿∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐.  é »α¿¬½áñ¡δσ  »α«úαá¼¼áσ  ¡ÑΓ
  4902.         ¡Ñ«íσ«ñ¿¼«ßΓ¿ (¿ ó«º¼«ª¡«ßΓ¿) ¿ß»«½∞º«óáΓ∞ ¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú«
  4903.         αѪ¿¼á.  êß»«½∞º«óá¡¿Ñ φΓ¿σ ¿¡ßΓαπ¬µ¿⌐ ¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á  »α«-
  4904.         µÑßß«αá 80286 ó «íΘѼ ß½πτáÑ ñ«ó«½∞¡« ß½«ª¡«.  ¥Γπ ΓѼπ ¼δ ó ñá¡-
  4905.         ¡«¼ απ¬«ó«ñßΓóÑ «ßóÑΘáΓ∞ ¡Ñ íπñѼ.
  4906.  
  4907.              é »α«µÑßß«αÑ 80286 óóÑñÑ¡δ óóÑñÑ¡δ ñóá ñ«»«½¡¿Γѽ∞¡δσ ß«ßΓ«-
  4908.         ∩¡¿∩ ó αÑú¿ßΓαÑ Σ½áú«ó:  í¿Γ ó½«ªÑ¡¡«⌐ ºáñáτ¿ ¿ »«½Ñ óó«ñá-óδó«ñá
  4909.         »α¿ó¿½Ñú¿α«óá¡¡«ú« πα«ó¡∩.  èᬠ¿ ¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú«  αѪ¿¼á,
  4910.         «íá í¿Γá »αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó ß¿ßΓѼ¡«¼ »α«ú-
  4911.         αá¼¼¡«¼ «íÑß»ÑτÑ¡¿¿,  »«φΓ«¼π »α¿¬½áñ¡δÑ »α«úαá¼¼¿ßΓδ ¡Ñ ñ«½ª¡δ ß
  4912.         ¡¿¼¿  αáí«ΓáΓ∞.  Åα«µÑßß«α  80286 ¿¼ÑÑΓ ΓᬪѠ¡Ñ߬«½∞¬« ¡«óδσ αÑ-
  4913.         ú¿ßΓα«ó,  ß ¬«Γ«α묨 ¼«ª¡« αáí«ΓáΓ∞ Γ«½∞¬« ß  »«¼«Θ∞ε  ¿¡ßΓαπ¬µ¿⌐
  4914.         ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á.  ¥Γ« αÑú¿ßΓα ºáñáτ¿,  αÑú¿ßΓα ß½«óá ß«ßΓ«∩¡¿∩
  4915.  
  4916.         TASM2 #3-5/䫬              = 114 =
  4917.  
  4918.         ¼áΦ¿¡δ ¿ αÑú¿ßΓα Γáí½¿µδ ú½«íá½∞¡δσ ñÑß¬α¿»Γ«α«ó. Åਪ½áñ¡δ¼¿ ºá-
  4919.         ñáτἿ φΓ¿ αÑú¿ßΓαδ ¡Ñ ¿ß»«½∞ºπεΓß∩, »«φΓ«¼π ó ñá¡¡«¼ απ¬«ó«ñßΓóÑ
  4920.         ¼δ ¡Ñ íπñѼ ¿σ «»¿ßδóáΓ∞.
  4921.  
  4922.  
  4923.  
  4924.  
  4925.         TASM2 #3-5/䫬              = 115 =
  4926.  
  4927.              ÇßßÑ¼í½¿α«óá¡¿∩ ß ¿ß»«½∞º«ó᡿Ѽ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80286      
  4928.         -----------------------------------------------------------------
  4929.  
  4930.              é Æπαí« ÇßßѼí½ÑαÑ αáºαÑΦ¿Γ∞ áßßÑ¼í½¿α«óá¡¿Ñ ß ¿ß»«½∞º«óá¡¿-
  4931.         Ñ¼ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80286 (¡ÑºáΘ¿ΘÑ¡¡δ⌐ αѪ¿¼) ¼«ª¡«  ß  »«-
  4932.         ¼«Θ∞ε ñ¿αÑ¬Γ¿óδ .286. (ä½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ ß í«½ÑÑ αá¡¡¿¼¿ óÑαß¿∩¼¿
  4933.         áßßѼí½Ñα«ó ó Æπαí«  ÇßßѼí½ÑαÑ  »«ññÑনóáÑΓß∩  ΓᬪѠ ñ¿αÑ¬Γ¿óá
  4934.         .286æ.)
  4935.  
  4936.              çá¼ÑΓ¿¼, τΓ«  ñ¿αÑ¬Γ¿óá .286 ¡Ñ∩ó¡« αáºαÑΦáÑΓ »«ññÑ᪬π óßÑσ
  4937.         ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086 ¿ 80186,  Γᬠ¬á¬ »α«µÑßß«α 80286 »«ñ-
  4938.         ñÑনóáÑΓ  »«½¡δ⌐  ¡áí«α  ¿¡ßΓαπ¬µ¿⌐ ñ½∩ í«½ÑÑ αá¡¡¿σ »α«µÑßß«α«ó
  4939.         ßÑα¿¿ iAPx86.
  4940.  
  4941.              Å«ññÑαª¬á ¿¡ßΓαπ¬µ¿⌐  ºáΘ¿ΘÑ¡¡«ú«  αѪ¿¼á  »α«µÑßß«αá  80286
  4942.         αáºαÑΦáÑΓß∩  »« ñ¿αÑ¬Γ¿óÑ .286É.  ê¡ßΓαπ¬µ¿¿ ¡ÑºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á
  4943.         »α«µÑßß«αá 80286 ΓᬪѠαáºαÑΦáεΓß∩ »« ñ¿αÑ¬Γ¿óÑ .286É (¬á¬  ¿ »α¿
  4944.         óδ»«½¡Ñ¡¿¿ ñ¿αÑ¬Γ¿óδ .286).
  4945.  
  4946.              ü«½ÑÑ »«ñα«í¡á∩  ¿¡Σ«α¼áµ¿∩  «í ¿¡ßΓαπ¬µ¿∩σ »α«µÑßß«αá 80286
  4947.         ß«ñÑনΓß∩ ó â½áóÑ 3 "æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá".
  4948.  
  4949.              é᪡« ºá¼ÑΓ¿Γ∞,  τΓ« »α«µÑßß«αδ 8086 ¿ 80186  ¡Ñ  αáß»«º¡áεΓ
  4950.         ¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80286. é ¿Γ«úÑ óßÑ »α«ú-
  4951.         αá¼¼δ, ¬«Γ«αδÑ ¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á, ¡á »α«µÑßß«αáσ 8086
  4952.         ¿  80186  αáí«ΓáΓ∞ ¡Ñ íπñπΓ.  Äñ¡á¬« »α«µÑßß«α 80386 »«ññÑনóáÑΓ
  4953.         ¬á¬ ¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80286,  Γᬠ ¿  ¿¡ß-
  4954.         Γαπ¬µ¿¿ ¡ÑºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á.
  4955.  
  4956.  
  4957.  
  4958.  
  4959.         TASM2 #3-5/䫬              = 116 =
  4960.  
  4961.                                                                                
  4962.         Åα«µÑßß«α 80386
  4963.         -----------------------------------------------------------------
  4964.  
  4965.              Åα«µÑßß«α 80386 »αÑñßΓáó½∩ÑΓ ß«í«⌐ º¡áτ¿Γѽ∞¡πε óÑσπ ó  φó«-
  4966.         ½εµ¿¿ ¼¿¬α«¬«¼»∞εΓÑα«ó,  «íÑß»Ñτ¿óá∩ ¡«óδÑ ¿ αáßΦ¿αÑ¡¡δÑ ¿¡ßΓαπ¬-
  4967.         µ¿¿,  αáßΦ¿αÑ¡¡δ⌐ ¡áí«α 32-αáºα∩ñ¡δσ αÑú¿ßΓα«ó, ½¿¡Ñ⌐¡δÑ ßÑú¼Ñ¡Γδ
  4968.         αẼÑα«¼  ñ«  4  ú¿úáíá⌐Γ ¿ ó«º¼«ª¡«ßΓ∞ φ¼π½¿α«óáΓ∞ «ñ¡«óαѼѡ¡πε
  4969.         αáí«Γπ ¡Ñ߬«½∞¬¿σ »α«µÑßß«α«ó 8086,  íδßΓαδÑ ßñó¿ú¿ ¿ µ¿¬½¿τÑ߬¿Ñ
  4970.         ßñó¿ú¿,  ßΓαá¡¿τ¡πε »á¼∩Γ∞, í«½∞Φπε ß¬«α«ßΓ∞ Γá⌐¼Ñαá, τѼ ¡á »αÑ-
  4971.         ñδñπΘ¿σ »α«µÑßß«αáσ ßѼÑ⌐ßΓóá iAPx86 (τΓ« »α¿ó«ñ¿Γ ¬ í«½∞ΦÑ⌐ ß¬«-
  4972.         α«ßΓ¿ αáí«Γδ) ¿ Γ.ñ.  èᬠóδ ¼«ªÑΓÑ ºá¼ÑΓ¿Γ∞,  ñ½∩ »«ññÑ᪬¿ óßÑσ
  4973.         ó«º¼«ª¡«ßΓÑ⌐ »α«µÑßß«αá 80386 ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ óßÑ  αáßΦ¿-
  4974.         αÑ¡¿∩  ∩ºδ¬á  ÇßßѼí½Ñαá ñ½∩ »α«µÑßß«α«ó 8086/80186/80286.  Æπαí«
  4975.         ÇßßѼí½Ñα «íÑß»Ñτ¿óáÑΓ »«½¡δ⌐ ¡áí«α αáßΦ¿αÑ¡¿⌐  »α«µÑßß«αá 80386,
  4976.         »«ññÑনóá∩ óßÑ Ñú« αѪ¿¼δ ¿ ßαÑñßΓóá.
  4977.  
  4978.              Åα«µÑßß«α 80386  - φΓ« αáºó¿Γδ⌐ »α«µÑßß«α,  ¡á ¡Ñ߬«½∞¬« »«-
  4979.         α∩ñ¬«ó í«½ÑÑ ß½«ª¡δ⌐,  τѼ »α«µÑßß«α 8086,  »«φΓ«¼π ¼δ ¡Ñ  ß¼«ªÑ¼
  4980.         ºñÑß∞ «σóáΓ¿Γ∞ óßÑ á߻ѬΓδ »α«úαá¼¼¿α«óá¡¿∩ ñ½∩ »α«µÑßß«αá 80386.
  4981.         Äñ¡á¬« ¼δ αáßß¼«Γα¿¼,  ¬á¬πε »«ññÑ᪬π »α«µÑßß«αá 80386 «íÑß»Ñτ¿-
  4982.         óáÑΓ Æπαí« ÇßßѼí½Ñα.
  4983.  
  4984.                    éδí«α αѪ¿¼á áßßÑ¼í½¿α«óá¡¿∩ ñ½∩ »α«µÑßß«αá 80386           
  4985.         -----------------------------------------------------------------
  4986.  
  4987.              èᬠ¿ »α«µÑßß«α 80286,  »α«µÑßß«α 80386 ¿¼ÑÑΓ ñóá Γ¿»á  ¿¡ß-
  4988.         Γαπ¬µ¿⌐ - »α¿ó¿½Ñú¿α«óá¡¡δÑ ¿ ¡Ñ»α¿ó¿½Ñú¿α«óá¡¡δÑ. ìÑ»α¿ó¿½Ñú¿α«-
  4989.         óá¡¡δÑ ¿¡ßΓαπ¬µ¿¿ ¼«ªÑΓ óδ»«½¡∩Γ∞ ½εíá∩ »α«úαá¼¼á.  Äñ¡á¬« »α¿ó¿-
  4990.         ½Ñú¿α«óá¡¡δÑ   ¿¡ßΓαπ¬µ¿¿   ¼«ªÑΓ   óδ»«½¡∩Γ∞  Γ«½∞¬«  »α«úαá¼¼á,
  4991.         óδ»«½¡∩εΘá∩ß∩ ¡á ΓѬπΘѼ πα«ó¡Ñ »α¿«α¿ΓÑΓá 0 (¡á¿í«½ÑÑ »α¿ó¿½Ñú¿-
  4992.         α«óá¡¡δ⌐ πα«óÑ¡∞).  Åα¿ó¿½Ñú¿α«óá¡¡δÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80386
  4993.         »αÑñßΓáó½∩εΓ ß«í«⌐ αáßΦ¿αÑ¡¿Ñ  ¼¡«ªÑßΓóá  »α¿ó¿½Ñú¿α«óá¡¡δσ  ¿¡ß-
  4994.         Γαπ¬µ¿⌐  »α«µÑßß«αá 80286 (¿¡ßΓαπ¬µ¿¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á) ¿ ΓᬪÑ
  4995.         »αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ ¿ß»«½∞º«óá¡¿∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐.
  4996.  
  4997.              Å«ññÑαª¬á ¡Ñ»α¿ó¿½Ñú¿α«óá¡¡δσ  ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá  80386
  4998.         αáºαÑΦáÑΓß∩ »« ñ¿αÑ¬Γ¿óÑ .386. (ä½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ ß í«½ÑÑ αá¡¡¿¼¿
  4999.         áßßѼí½ÑαἿ Æπαí« ÇßßѼí½Ñα »«ññÑনóáÑΓ ΓᬪѠ ñ¿αÑ¬Γ¿óπ .386æ,
  5000.         ¬«Γ«αá∩  ΓᬪѠ αáºαÑΦáÑΓ  áßßÑ¼í½¿α«óá¡¿Ñ  ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá
  5001.         80386.)
  5002.  
  5003.              çá¼ÑΓ¿¼, τΓ« ñ¿αÑ¬Γ¿óá .386 ¡Ñ∩ó¡« αáºαÑΦáÑΓ ΓᬪѠ¿ß»«½∞º«-
  5004.         óá¡¿Ñ óßÑσ  ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá 8086 ¿ 80186,  ¿,  ¬α«¼Ñ Γ«ú«,
  5005.         óßÑσ ¡Ñ»α¿ó¿½Ñú¿α«óá¡¡δσ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá  80286,  »«ß¬«½∞¬π
  5006.         »α«µÑßß«α  80386  »«ññÑনóáÑΓ óÑß∞ ¡áí«α ¿¡ßΓαπ¬µ¿⌐ í«½ÑÑ αá¡¡¿σ
  5007.  
  5008.         TASM2 #3-5/䫬              = 117 =
  5009.  
  5010.         »α«µÑßß«α«¼ ßÑα¿¿ iAPx86.  êß»«½∞º«óá¡¿Ñ ¡Ñ»α¿ó¿½Ñú¿α«óá¡¡δσ ¿¡ß-
  5011.         Γαπ¬µ¿⌐  »α«µÑßß«αá  80386 αáºαÑΦáÑΓß∩ ΓᬪѠ¿ »« ñ¿αÑ¬Γ¿óÑ .386É
  5012.         (¬á¬ ¿ »α¿ óδ»«½¡Ñ¡¿¿ ñ¿αÑ¬Γ¿óδ .386).  Æá¬ ¬á¬  »α«µÑßß«α  80386
  5013.         »«ññÑনóáÑΓ  óßÑ  »α¿ó¿½Ñú¿α«óá¡¡δÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80286,
  5014.         ñ¿αÑ¬Γ¿óá .386É ¡Ñ∩ó¡« αáºαÑΦáÑΓ »«ññÑ᪬π óßÑσ »α¿ó¿½Ñú¿α«óá¡¡δσ
  5015.         ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 80286.
  5016.  
  5017.  
  5018.  
  5019.  
  5020.         TASM2 #3-5/䫬              = 118 =
  5021.  
  5022.                                  ì«óδÑ Γ¿»δ ßÑú¼Ñ¡Γ«ó                          
  5023.         -----------------------------------------------------------------
  5024.  
  5025.              é«º¼«ª¡«ßΓ∞ »α«µÑßß«αá 80386 »«ññÑনóáΓ∞  ßÑú¼Ñ¡Γδ αẼÑα«¼
  5026.         64è  (¬á¬ ó »α«µÑßß«αÑ 80286) ¿½¿ ½¿¡Ñ⌐¡δÑ ßÑú¼Ñ¡Γδ ñ« 4 ú¿úáíá⌐Γ
  5027.         »«ΓαÑí«óá½á ñóπσ ¡«óδσ Γ¿»«ó ßÑú¼Ñ¡Γ«ó - USE16 ¿ USE32.
  5028.  
  5029.              Åα¿ ßßδ½¬Ñ ¡á ßÑú¼Ñ¡Γ αẼÑα«¼ 64è 16-αáºα∩ñ¡«Ñ ß¼ÑΘÑ¡¿Ñ ¼«-
  5030.         ªÑΓ σαá¡¿Γ∞ß∩ ½¿í« ó íẫ󫼠¿½¿ ¿¡ñѬߡ«¼ αÑú¿ßΓαÑ (BX,  SI,  DI
  5031.         ¿½¿ BP),  ½¿í« ¿ß»«½∞º«óáΓ∞ß∩ ó ¬áτÑßΓóÑ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« ß¼ÑΘÑ-
  5032.         ¡¿∩. é φΓ«¼ αѪ¿¼Ñ αáí«ΓáÑΓ »α«µÑßß«α 80286 (¿ 8086). é »α«µÑßß«-
  5033.         αÑ 80386 ßÑú¼Ñ¡Γá¼,  ¿¼ÑεΘ¿¼ ¼á¬ß¿¼á½∞¡δ⌐ αẼÑα 64è,  ñáÑΓß∩ Γ¿»
  5034.         ¿ß»«½∞º«óá¡¿∩ USE16, ¡á»α¿¼Ñα:
  5035.  
  5036.                 .386
  5037.                 .
  5038.                 .
  5039.                 .
  5040.         DataSeg Segment USE16
  5041.         Var1    DW      ?
  5042.         Ptr1    DW      Var1
  5043.         DataSeg         ENDS
  5044.                 .
  5045.                 .
  5046.                 .
  5047.         CodeSeg SEGMENT USE16
  5048.                 ASSUME  CS:CodeSeg
  5049.                 mov     ax,DataSeg
  5050.                 mov     fs,ax
  5051.                 ASSUME  FS:DataSeg
  5052.                 mov     [Var1],0         ; πßΓá¡«ó¿Γ∞ Var1 ó º¡áτÑ¡¿Ñ 0
  5053.                 mov     bx,[Ptr1]        ; ºáúαπº¿Γ∞ 16-αáºα∩ñ¡δ⌐
  5054.                                          ; π¬áºáΓѽ∞ ¡á Var1
  5055.                 inc     WORD PTR fs:[bx] ; πóѽ¿τ¿Γ∞ º¡áτÑ¡¿Ñ Var1
  5056.                 .
  5057.                 .
  5058.                 .
  5059.         CodeSeg         ENDS
  5060.                 .
  5061.                 .
  5062.                 .
  5063.  
  5064.              ÄΓ¼ÑΓ¿¼ ¿ß»«½∞º«óá¡¿Ñ  FS  -  «ñ¡«ú«  ¿º ñóπσ ñ«»«½¡¿Γѽ∞¡δσ
  5065.         ßÑú¼Ñ¡Γ«ó (¡áα∩ñπ ß GS) »α«µÑßß«αá 80386.
  5066.  
  5067.              ÄΓ¼ÑΓ¿¼ ΓᬪÑ,  τΓ«  ß¼ÑΘÑ¡¿Ñ  σαá¡¿Γß∩  ó  ½εí«¼  ¿º  «íΘ¿σ
  5068.  
  5069.         TASM2 #3-5/䫬              = 119 =
  5070.  
  5071.         32-αáºα∩ñ¡δσ  αÑú¿ßΓα«ó  »α«µÑßß«αá  80386 ¿ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
  5072.         ñ½∩ áñαÑßᵿ¿ ¬ ßÑú¼Ñ¡Γπ USE16,  Ñß½¿ Ñß½¿ óѽ¿τ¿¡á  ß¼ÑΘÑ¡¿∩  ¡Ñ
  5073.         »αÑóδΦáÑΓ 0FFFFh (65535).
  5074.  
  5075.              ä½∩ ßß佬¿  ¡á  ½εíπε ∩τÑ⌐¬π ó 4-ú¿úáíá⌐Γ«ó«¼ ßÑú¼Ñ¡ΓÑ ¡πª¡«
  5076.         ¿ß»«½∞º«óáΓ∞ 32-αáºα∩ñ¡«Ñ ß¼ÑΘÑ¡¿Ñ ºá»¿ßá¡¡«Ñ ó ½εí«¼ ¿º  32-αáº-
  5077.         α∩ñ¡δσ αÑú¿ßΓα«ó ¿½¿ π¬áºδóáѼ«Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«.  æÑú¼Ñ¡Γá¼ »α«-
  5078.         µÑßß«αá 80386,  ¬«Γ«αδÑ ¿¼ÑεΓ ¼á¬ß¿¼á½∞¡πε ñ½¿¡π 4 ú¿úáíá⌐Γá, ñá-
  5079.         ÑΓß∩ Γ¿» USE32, ¡á»α¿¼Ñα:
  5080.  
  5081.                 .386
  5082.                 .
  5083.                 .
  5084.                 .
  5085.         BigDataSeg      SEGMENT USE32
  5086.         Var1    DW      ?
  5087.         Ptr1    DD      Var1
  5088.         BigDataSeg      ENDS
  5089.                 .
  5090.                 .
  5091.                 .
  5092.         CodeSeg SEGMENT USE16
  5093.                 ASSUME  CS:CodeSeg
  5094.                 mov     ax,BigDataSeg
  5095.                 mov     fs,ax
  5096.                 ASSUME  FS:BigDataSeg
  5097.                 mov     [Var1],0          ; πßΓá¡«ó¿Γ∞ Var1 ó º¡áτÑ¡¿Ñ 0
  5098.                 mov     eax,[Ptr1]        ; ºáúαπº¿Γ∞ 32-αáºα∩ñ¡δ⌐
  5099.                                           ; π¬áºáΓѽ∞ ¡á Var1
  5100.                 inc     WORD PTR fs:[eax] ; πóѽ¿τ¿Γ∞ º¡áτÑ¡¿Ñ Var1
  5101.                 .
  5102.                 .
  5103.                 .
  5104.         CodeSeg         ENDS
  5105.                 .
  5106.                 .
  5107.                 .
  5108.  
  5109.              ÄΓ¼ÑΓ¿¼ ¿ß»«½∞º«óá¡¿Ñ  ó  ¬áτÑßΓóÑ  π¬áºáΓѽ∩  αÑú¿ßΓαá EAX.
  5110.         Åα«µÑßß«α 80386 »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ ó  ¬áτÑßΓóÑ  íẫó«ú«  αÑ-
  5111.         ú¿ßΓαá  ¿½¿  ó  ¿¡ñѬߡ«ú« αÑú¿ßΓαá óßÑ ó«ßѼ∞ 32-αáºα∩ñ¡δσ «íΘ¿σ
  5112.         αÑú¿ßΓα«ó (EAX,  EBX, ECX, EDX, ESI, EDI, EBP ¿ ESP). (ü«½ÑÑ »«ñ-
  5113.         α«í¡« ß¼. ñá½ÑÑ ó αáºñѽѠ"ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿").
  5114.  
  5115.              ä½∩ »ÑαÑ«»αÑñѽѡ¿∩  ¿ß»«½∞ºπѼ«ú« »« π¼«½τá¡¿ε αẼÑαá ß¼Ñ-
  5116.         ΘÑ¡¿∩ ñá¡¡«ú« «»Ñαá¡ñá ¼«ª¡« ¿ß»«½∞º«óáΓ∞ «»Ñαᵿ¿ SMALL ¿ LARGE.
  5117.  
  5118.         TASM2 #3-5/䫬              = 120 =
  5119.  
  5120.         Ä»Ñαᵿ∩ SMALL »α¿ó«ñ¿Γ ¬ Γ«¼π,  τΓ« íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ 16-αáº-
  5121.         α∩ñ¡«Ñ ß¼ÑΘÑ¡¿Ñ, á LARGE óδ¡πªñáÑΓ ¿ß»«½∞º«óáΓ∞ 32-αáºα∩ñ¡«Ñ ß¼Ñ-
  5122.         ΘÑ¡¿Ñ. ìá»α¿¼Ñα:
  5123.  
  5124.                 .386
  5125.                 .
  5126.                 .
  5127.                 .
  5128.         CodeSeg SEGMENT USE16
  5129.                 ASSUME  CS:CodeSeg
  5130.                 mov     ax,DateSeg
  5131.                 mov     ds,ax
  5132.                 ASSUME  DS:DataSeg
  5133.                 mov     ax,[LARGE TestLoc]
  5134.                 .
  5135.                 .
  5136.                 .
  5137.         CodeSeg ENDS
  5138.  
  5139.                 .
  5140.                 .
  5141.                 .
  5142.         DataSeg SEGMENT USE32
  5143.         TestLoc DW      0
  5144.         DataSeg ENDS
  5145.                 .
  5146.                 .
  5147.                 .
  5148.  
  5149.              çñÑß∞ πß»ÑΦ¡« ¿ß»«½∞ºπÑΓß∩  «»ÑαѪáεΘá∩  ßßδ½¬á  ¡á  TestLoc
  5150.         (σ«Γ∩  TestLoc  ¡áσ«ñ¿Γß∩  ó  ßÑú¼Ñ¡ΓÑ USE32).  Åα¿ φΓ«¼ «»Ñαᵿ∩
  5151.         LARGE »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ Γ«ú«,  τΓ«íδ ßßδ½¬á ¡á TestLoc  «ßπΘÑßΓó½∩-
  5152.         ½áß∞  ß  »«¼«Θ∞ε 32-í¿Γ«ó«ú« ß¼ÑΘÑ¡¿∩.  üѺ »ÑαÑ«»αÑñѽѡ¿∩ LARGE
  5153.         ºñÑß∞ úÑ¡Ñα¿α«óá½áß∞ íδ «Φ¿í¬á,  Γᬠ¬á¬ ÇßßѼí½Ñα  »αÑñ»«½áúáÑΓ,
  5154.         τΓ« ñ½∩  «»ÑαѪáεΘÑ⌐ ßß佬¿ ó ßÑú¼Ñ¡ΓÑ CodeSeg Γ¿»á USE16 ¿ß»«½∞-
  5155.         ºπÑΓß∩ 16-αáºα∩ñ¡«Ñ ß¼ÑΘÑ¡¿Ñ.
  5156.  
  5157.              ìá ßἫ¼ ñѽѠñÑ⌐ßΓó¿Ñ «»Ñαᵿ⌐ SMALL ¿ LARGE  í«½ÑÑ Γ«¡¬«Ñ,
  5158.         τѼ »α«ßΓ«⌐ óδí«α ¼Ñªñπ 16 ¿ 32-αáºα∩ñ¡δ¼ αẼÑα«¼ ß¼ÑΘÑ¡¿∩. Ä»Ñ-
  5159.         αᵿ∩ SMALL π¬áºδóáÑΓ Æπαí«  ÇßßѼí½Ñαπ,  τΓ«  ñá¡¡πε  ¿¡ßΓαπ¬µ¿ε
  5160.         ¡πª¡«  áßßÑ¼í½¿α«óáΓ∞ ß ¿ß»«½∞º«ó᡿Ѽ 16-αáºα∩ñ¡δσ αѪ¿¼«ó áñαÑ-
  5161.         ßᵿ¿ »α«µÑßß«αá 8086, ß »«¼«Θ∞ε ¬«Γ«αδσ ¼«ª¡« áñαÑß«óáΓ∞ß∩ Γ«½∞-
  5162.         ¬« ¬ 64è »á¼∩Γ¿. æ ñαπú«⌐ ßΓ«α«¡δ, «»Ñαᵿ∩ LARGE π¬áºδóáÑΓ Æπαí«
  5163.         ÇßßѼí½Ñαπ,  τΓ« ñá¡¡πε ¿¡ßΓαπ¬µ¿ε ¡πª¡« áßßÑ¼í½¿α«óáΓ∞ ß ¿ß»«½∞-
  5164.         º«ó᡿Ѽ  ¡«óδσ 32-αáºα∩ñ¡δσ αѪ¿¼«ó áñαÑßᵿ¿ (ß¼.  ñá½ÑÑ αáºñѽ
  5165.         "ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿"), ß »«¼«Θ∞ε ¬«Γ«αδσ ¼«ª¡« áñαÑß«óáΓ∞ß∩ ¬
  5166.  
  5167.         TASM2 #3-5/䫬              = 121 =
  5168.  
  5169.         4 ú¿úáíá⌐Γá¼ »á¼∩Γ¿.
  5170.  
  5171.              ìá»α¿¼Ñα, ¬«ñ:
  5172.  
  5173.                 .
  5174.                 .
  5175.                 .
  5176.                 .386
  5177.         CodeSeg SEGMENT USE16
  5178.                 .
  5179.                 .
  5180.                 .
  5181.                 mov     ax,[SMALL ebx+esi+1]
  5182.                 .
  5183.                 .
  5184.                 .
  5185.         CodeSeg ENDS
  5186.                 .
  5187.                 .
  5188.                 .
  5189.  
  5190.         áßßÑ¼í½¿απÑΓß∩ ¬ ó¿ñπ:
  5191.  
  5192.                 mov     ax,[bx+si+1]
  5193.  
  5194.              çñÑß∞ «»Ñαᵿ∩  SMALL π¬áºδóáÑΓ Æπαí« ÇßßѼí½Ñαπ,  τΓ« ¡πª¡«
  5195.         ¿ß»«½∞º«óáΓ∞ 16-αáºα∩ñ¡δÑ αѪ¿¼δ áñαÑßᵿ¿ »α«µÑßß«αá 8086,  »«φ-
  5196.         Γ«¼π ó¼ÑßΓ« EBX ¿ ESI ó áßßÑ¼í½¿απѼ«¼ ¬«ñÑ ¿ß»«½∞ºπεΓß∩ αÑú¿ßΓαδ
  5197.         BX ¿ SI. Äñ¡á¬« ¬«ñ:
  5198.  
  5199.                 .
  5200.                 .
  5201.                 .
  5202.                 .386
  5203.         CodeSeg SEGMENT USE16
  5204.                 .
  5205.                 .
  5206.                 .
  5207.                 mov     ax,[SMALL eax+ecx+1]
  5208.                 .
  5209.                 .
  5210.                 .
  5211.         CodeSeg ENDS
  5212.                 .
  5213.                 .
  5214.                 .
  5215.  
  5216.         TASM2 #3-5/䫬              = 122 =
  5217.  
  5218.  
  5219.         áßßÑ¼í½¿α«óáΓ∞ß∩ ¡Ñ íπñÑΓ, Γᬠ¬á¬ óδαáªÑ¡¿Ñ EAX+ECX+1 ¡Ñ ∩ó½∩ÑΓ-
  5220.         ß∩ ñ«»πßΓ¿¼δ¼ 16-αáºα∩ñ¡δ¼ αѪ¿¼«¼ áñαÑßᵿ¿.  (æ ñαπú«⌐ ßΓ«α«¡δ,
  5221.         ¬á¬ óδ πó¿ñ¿ΓÑ ó  αáºñѽѠ "ì«óδÑ  αѪ¿¼δ  áñαÑßᵿ¿",  EAX+ECX+1
  5222.         »αÑñßΓáó½∩ÑΓ ß«í«⌐ ñ«»πßΓ¿¼δ⌐ 32-αáºα∩ñ¡δ⌐ αѪ¿¼ áñαÑßᵿ¿.)
  5223.  
  5224.              ü«½ÑÑ »«ñα«í¡«  «í  «»Ñαᵿ∩σ  SMALL ¿ LARGE ¿ «í ¿σ óºá¿¼«-
  5225.         ñÑ⌐ßΓó¿¿ ß ßÑú¼Ñ¡ΓἿ USE16 ¿ USE32 αáß߬áºδóáÑΓß∩ ñá½ÑÑ ó αáºñÑ-
  5226.         ½Ñ  "æ¼ÑΦá¡¡«Ñ ¿ß»«½∞º«óá¡¿Ñ 16- ¿ 32-αáºα∩ñ¡δσ ¿¡ßΓαπ¬µ¿⌐ ¿ ßÑú-
  5227.         ¼Ñ¡Γ«ó".  é φΓ«¼ αáºñѽѠΓᬪѠ»«∩ß¡∩ÑΓß∩ óδí«α ßÑú¼Ñ¡Γ«ó USE16 ¿
  5228.         USE32.
  5229.  
  5230.              é ßó∩º¿ ß ¿ß»«½∞º«ó᡿Ѽ  ßÑú¼Ñ¡Γ«ó  USE16 ¿ USE32 ó«º¡¿¬áÑΓ
  5231.         «τÑ¡∞ ó᪡δ⌐ ó«»α«ß,  ¬áßáεΘ¿⌐ß∩ αẼÑαá ¬«ßóÑ¡¡δσ »ÑαÑσ«ñ«ó.  îδ
  5232.         ¬«ß¡Ñ¼ß∩  φΓ«ú«  ó«»α«ßá  ñá½ÑÑ ó αáºñѽѠ"32-αáºα∩ñ¡δ⌐ π¬áºáΓѽ∞
  5233.         ¿¡ßΓαπ¬µ¿⌐".
  5234.  
  5235.              àß½¿ »α¿ «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá ¡Ñ ºáñá¡« ¡¿ USE32,  ¡¿ USE16,
  5236.         Γ« »α¿ áßßÑ¼í½¿α«óá¡¿¿ ñ½∩ 80386 óßÑúñá »«ñαáºπ¼ÑóáÑΓß∩ USE32.
  5237.  
  5238.  
  5239.  
  5240.  
  5241.         TASM2 #3-5/䫬              = 123 =
  5242.  
  5243.               ô»α«ΘÑ¡¡δÑ ßÑú¼Ñ¡Γ¡δÑ ñ¿αÑ¬Γ¿óδ ¿ Γ¿»δ ßÑú¼Ñ¡Γ«ó ñ½∩ 80386       
  5244.         -----------------------------------------------------------------
  5245.  
  5246.              àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ¿ ñ¿αÑ¬Γ¿óπ .386, ¿ π»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ
  5247.         «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó,  Γ« »« π¼«½τá¡¿ε ßÑú¼Ñ¡Γδ óδαáó¡¿óáεΓß∩ ¡á
  5248.         úαá¡¿µπ ñó«⌐¡«ú« ß½«óá (DWORD). ¥Γ« ¿¼ÑÑΓ ß¼δß½, Ñß½¿ πτÑßΓ∞, τΓ«
  5249.         ¬«¼»∞εΓÑαδ,  ó ¬«Γ«αδσ ¿ß»«½∞ºπÑΓß∩ »α«µÑßß«α 80386 íδßΓαÑÑ αáí«-
  5250.         ΓáεΓ ß ñá¡¡δ¼¿, óδα«ó¡Ñ¡¡δ¼¿ ¡á úαá¡¿µπ ñó«⌐¡«ú« ß½«óá.
  5251.  
  5252.              è«úñá óδ ¿ß»«½∞ºπÑΓÑ π»α«ΘÑ¡¡δÑ ñ¿αÑ¬Γ¿óδ  «»αÑñѽѡ¿∩  ßÑú-
  5253.         ¼Ñ¡Γ«ó, Æπαí« ÇßßѼí½Ñα úÑ¡Ñα¿απÑΓ ßÑú¼Ñ¡Γδ USE32, Ñß½¿ ñ¿αÑ¬Γ¿óá
  5254.         .386 π¬áºá¡á »ÑαÑñ ñ¿αÑ¬Γ¿ó«⌐ .MODEL,  ¿ ßÑú¼Ñ¡Γδ USE16, Ñß½¿ ñ¿-
  5255.         αÑ¬Γ¿óá .386 π¬áºá¡á »«ß½Ñ ñ¿αÑ¬Γ¿óδ .MODEL.  ìá»α¿¼Ñα, ó ß½Ññπε-
  5256.         ΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ß«ºñáÑΓß∩ 32-í¿Γ«óδ⌐ ¬«ñ ¿ ßÑú¼Ñ¡Γδ  ñá¡-
  5257.         ¡δσ:
  5258.  
  5259.                 .386
  5260.                 DOSSEG
  5261.                 .MODEL  LARGE
  5262.                 .DATA
  5263.                 .
  5264.                 .
  5265.                 .
  5266.                 .CODE
  5267.                 .
  5268.                 .
  5269.                 .
  5270.  
  5271.         á ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ ß«ºñáεΓß∩ 16-í¿Γ«óδ⌐ ¬«ñ ¿ ßÑú¼Ñ¡Γδ:
  5272.  
  5273.                 DOSSEG
  5274.                 .MODEL  LARGE
  5275.                 .386
  5276.                 .DATA
  5277.                 .
  5278.                 .
  5279.                 .CODE
  5280.                 .
  5281.                 .
  5282.  
  5283.                               48-í¿Γ«óδ⌐ Γ¿» ñá¡¡δσ FWORD                      
  5284.         -----------------------------------------------------------------
  5285.  
  5286.              ê¡ΓÑαÑß¡δ⌐ ¼«¼Ñ¡Γ ó ¿ß»«½∞º«óá¡¿¿ ßÑú¼Ñ¡Γ«ó USE32  ß«ßΓ«¿Γ ó
  5287.  
  5288.         TASM2 #3-5/䫬              = 124 =
  5289.  
  5290.         Γ«¼, τΓ« αẼÑα π¬áºáΓѽ∩ ñá½∞¡Ñú« Γ¿»á (Γ« ÑßΓ∞ »«½¡«ú« π¬áºáΓÑ-
  5291.         ½∩ ó Σ«α¼Ñ "ßÑú¼Ñ¡Γ:ß¼ÑΘÑ¡¿Ñ") ¡á ∩τÑ⌐¬π ó ßÑú¼Ñ¡ΓÑ USE32 ºá¡¿¼á-
  5292.         ÑΓ 6  íá⌐Γ,  á  ¡Ñ  «íδτ¡δÑ 4 íá⌐Γá,  Γᬠ¬á¬ ß¼ÑΘÑ¡¿∩ ó ßÑú¼Ñ¡ΓÑ
  5293.         USE32 ¿¼ÑεΓ αẼÑα 32 í¿Γá. ìá»α¿¼Ñα, »α¿ ¿ß»«½∞º«óá¡¿¿ ó ßÑú¼Ñ¡-
  5294.         ΓÑ USE16 ñá½∞¡¿⌐ π¬áºáΓѽ∞ ¡á íπΣÑα αẼÑα«¼ 8000h íá⌐Γ«ó ºá»¿ßδ-
  5295.         óáÑΓß∩ ó 4 íá⌐Γá ¿ ºáúαπªáÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  5296.  
  5297.                 .386
  5298.                 .
  5299.                 .
  5300.                 .
  5301.         DataSeg SEGMENT USE16
  5302.         Buffer  DB      8000h DUP (?)
  5303.         BufferPtr LABEL DWORD
  5304.                 DW      OFFSET Buffer
  5305.                 DW      SEG    Buffer
  5306.         DataSeg         ENDS
  5307.                 .
  5308.                 .
  5309.                 .
  5310.         CodeSeg         SEGMENT USE16
  5311.                 ASSUME  CS:CodeSeg
  5312.                 mov     ax,DataSeg
  5313.                 mov     ds,ax
  5314.                 ASSUME  DS:DataSeg
  5315.                 les     bx[BufferPtr]   ; ºáúαπªáÑΓ ó ES:BX 16-
  5316.                                         ; í¿Γ«óδ⌐ ßÑú¼Ñ¡Γ ¿ 16-
  5317.                                         ; í¿Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ Buffer
  5318.                 .
  5319.                 .
  5320.                 .
  5321.         CodeSeg ENDS
  5322.                 .
  5323.                 .
  5324.                 .
  5325.  
  5326.              Åα¿ ¿ß»«½∞º«óá¡¿¿  ªÑ ßÑú¼Ñ¡Γá USE32 π¬áºáΓѽ∞ ñá½∞¡Ñú« Γ¿»á
  5327.         ¡á Buffer ºá»¿ßδóáÑΓß∩ ó 6 íá⌐Γ ¿ ºáúαπªáÑΓß∩  ß½ÑñπεΘ¿¼ «íαẫ¼:
  5328.  
  5329.                 .386
  5330.                 .
  5331.                 .
  5332.                 .
  5333.         DataSeg SEGMENT USE32
  5334.         Buffer  DB      8000h DUP (?)
  5335.  
  5336.         TASM2 #3-5/䫬              = 125 =
  5337.  
  5338.         BufferPtr LABEL FWORD
  5339.                 DD      OFFSET Buffer
  5340.                 DW      SEG    Buffer
  5341.         DataSeg         ENDS
  5342.                 .
  5343.                 .
  5344.                 .
  5345.         CodeSeg         SEGMENT USE32
  5346.                 ASSUME  CS:CodeSeg
  5347.                 mov     ax,DataSeg
  5348.                 mov     ds,ax
  5349.                 ASSUME  DS:DataSeg
  5350.                 les     ebx[BufferPtr]  ; ºáúαπªáÑΓ ó ES:EBX 16-
  5351.                                         ; í¿Γ«óδ⌐ ßÑú¼Ñ¡Γ ¿ 32-
  5352.                                         ; í¿Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ Buffer
  5353.                 .
  5354.                 .
  5355.                 .
  5356.         CodeSeg ENDS
  5357.                 .
  5358.                 .
  5359.                 .
  5360.  
  5361.              ÄΓ¼ÑΓ¿¼ ¿ß»«½∞º«óá¡¿Ñ ¡«ó«ú« Γ¿»á ñá¡¡δσ FWORD. ç¡áτÑ¡¿Ñ Γ¿-
  5362.         »á FWORD ¿¼ÑεΓ ñ½¿¡π 6 íá⌐Γ.  Ç¡á½«ú¿τ¡« «»Ñαᵿ∩¼ BYTE PTR, WORD
  5363.         PTR ¿ DWORD PTR ¼«ª¡« ¿ß»«½∞º«óáΓ∞ «»Ñαᵿε FWORD PTR.
  5364.  
  5365.                 lqs     esi,FWORD PTR [BufferPtr]
  5366.  
  5367.              ä½∩ «»αÑñѽѡ¿∩ 6-íá⌐Γ«óδσ »ÑαѼѡ¡δσ  ¿¼ÑÑΓß∩  ΓᬪѠ ¡«óá∩
  5368.         ñ¿αÑ¬Γ¿óá DF:
  5369.  
  5370.                 .386
  5371.                 .
  5372.                 .
  5373.                 .
  5374.         DataSeg SEGMENT USE32
  5375.         FPtr    ?
  5376.         DataSeg ENDS
  5377.                 .
  5378.                 .
  5379.                 .
  5380.         CodeSeg SEGMENT USE32
  5381.                 ASSUME  CS:CodeSeg
  5382.                 mov     ax,DataSeg
  5383.                 mov     ds,ax
  5384.  
  5385.         TASM2 #3-5/䫬              = 126 =
  5386.  
  5387.                 ASSUME  DS:DataSeg
  5388.                 mov     eax,OFFSET DestinationFunction
  5389.                 mov     DWORD PTR [FPtr+4],ax
  5390.                 jmp     [FPtr]
  5391.                 .
  5392.                 .
  5393.                 .
  5394.         CodeSeg ENDS
  5395.                 .
  5396.                 .
  5397.                 .
  5398.  
  5399.  
  5400.  
  5401.  
  5402.         TASM2 #3-5/䫬              = 127 =
  5403.  
  5404.                                     ì«óδÑ αÑú¿ßΓαδ                             
  5405.         -----------------------------------------------------------------
  5406.  
  5407.              é »α«µÑßß«αÑ 80386 «íΘ¿Ñ αÑú¿ßΓαδ,  αÑú¿ßΓα Σ½áú«ó ¿  π¬áºá-
  5408.         Γѽ∞  ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá 8086 πóѽ¿τÑ¡δ »« αẼÑαπ ñ« 32 í¿Γ,
  5409.         ¬α«¼Ñ Γ«ú« ñ«íáó½Ñ¡δ ñóá ¡«óδσ ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓαá.  ìá É¿ß. 10.1
  5410.         »«¬áºá¡ ¡áí«α αÑú¿ßΓα«ó »α«µÑßß«αá 80386, »α¿ φΓ«¼ αáßΦ¿αÑ¡¿∩ ñ½∩
  5411.         »α«µÑßß«αá 80386 »« ßαáó¡Ñ¡¿ε ß »α«µÑßß«α«¼ 8086 ºáΦΓα¿σ«óá¡δ.
  5412.  
  5413.  
  5414.                    31                16 15                 0
  5415.                    ----------------------------------------- \
  5416.                    |###################|   AH    |   AL    |  |
  5417.            EAX     |###################|-------------------|  |
  5418.                    |###################|        AX         |  |
  5419.                    -----------------------------------------  |
  5420.                    -----------------------------------------  |
  5421.                    |###################|   BH    |   BL    |  |
  5422.            EBX     |###################|-------------------|  |
  5423.                    |###################|        BX         |  |
  5424.                    -----------------------------------------  |
  5425.                    -----------------------------------------  |
  5426.                    |###################|   CH    |   CL    |  |
  5427.            ECX     |###################|-------------------|  |
  5428.                    |###################|        CX         |  |
  5429.                    -----------------------------------------  |
  5430.                    -----------------------------------------  |
  5431.                    |###################|   DH    |   DL    |  |
  5432.            EDX     |###################|-------------------|  |  ÄíΘ¿Ñ
  5433.                    |###################|        DX         |  | αÑú¿ßΓαδ
  5434.                    -----------------------------------------  |
  5435.                    -----------------------------------------  |
  5436.                    |###################|                   |  |
  5437.            ESI     |###################|        SI         |  |
  5438.                    |###################|                   |  |
  5439.                    -----------------------------------------  |
  5440.                    -----------------------------------------  |
  5441.                    |###################|                   |  |
  5442.            EDI     |###################|        DI         |  |
  5443.                    |###################|                   |  |
  5444.                    -----------------------------------------  |
  5445.                    -----------------------------------------  |
  5446.                    |###################|                   |  |
  5447.            EBP     |###################|        BP         |  |
  5448.                    |###################|                   |  |
  5449.                    -----------------------------------------  |
  5450.  
  5451.         TASM2 #3-5/䫬              = 128 =
  5452.  
  5453.                    -----------------------------------------  |
  5454.                    |###################|                   |  |
  5455.            ESP     |###################|        SP         |  |
  5456.                    |###################|                   | /
  5457.                    -----------------------------------------
  5458.                    -----------------------------------------
  5459.                    |###################|                   | ô¬áºáΓѽ∞
  5460.            EIP     |###################|        IP         | ¿¡ßΓαπ¬µ¿⌐
  5461.                    |###################|                   |
  5462.                    -----------------------------------------
  5463.                    -----------------------------------------
  5464.                    |###################|                   | ÉÑú¿ßΓα
  5465.            EFLAGS  |###################|     FLAGS         | Σ½áú«ó
  5466.                    |###################|                   |
  5467.                    -----------------------------------------
  5468.                    31                16 15                 0
  5469.  
  5470.                                        15                  0
  5471.                                        ---------------------
  5472.                                        |                   | \
  5473.                                 CS     |                   | |
  5474.                                        |                   | |
  5475.                                        --------------------- |
  5476.                                        --------------------- |
  5477.                                        |                   | |
  5478.                                 DS     |                   | |
  5479.                                        |                   | |
  5480.                                        --------------------- |
  5481.                                        --------------------- |
  5482.                                        |                   | |
  5483.                                 DS     |                   | |
  5484.                                        |                   | |
  5485.                                        --------------------- |
  5486.                                        --------------------- | CÑú¼Ñ¡Γ¡δÑ
  5487.                                        |                   | | αÑú¿ßΓαδ
  5488.                                 ES     |                   | |
  5489.                                        |                   | |
  5490.                                        --------------------- |                             --------------------- |
  5491.                                        --------------------- |
  5492.                                        |###################| |
  5493.                                 FS     |###################| |
  5494.                                        |###################| |
  5495.                                        --------------------- |
  5496.                                        --------------------- |
  5497.                                        |###################| |
  5498.                                 GS     |###################| |
  5499.  
  5500.         TASM2 #3-5/䫬              = 129 =
  5501.  
  5502.                                        |###################| |
  5503.                                        --------------------- |
  5504.                                        --------------------- |
  5505.                                        |                   | |
  5506.                                 SS     |                   | |
  5507.                                        |                   | |
  5508.                                        --------------------- /
  5509.                                        15                  0
  5510.  
  5511.  
  5512.              É¿ß. 10.1 ÉÑú¿ßΓαδ »α«µÑßß«αá 80386.
  5513.  
  5514.              èα«¼Ñ Γ«ú«  ó »α«µÑßß«αÑ 80386 ¿¼ÑÑΓß∩ ¡Ñ߬«½∞¬« ß»Ñµ¿á½∞¡δσ
  5515.         αÑú¿ßΓα«ó,  ¡Ñ߬«½∞¬« ¡«óδσ ¿ ¡Ñ߬«½∞¬« ß«ó¼ÑßΓ¿¼δσ ß »α«µÑßß«α«¼
  5516.         80286, αáí«ΓáΓ∞ ß ¬«Γ«α묨 ¼«ª¡« Γ«½∞¬« ß »«¼«Θ∞ε »α¿ó¿½Ñú¿α«óá¡-
  5517.         ¡δσ ¿¡ßΓαπ¬µ¿⌐.  èᬠ¿ ó »α«µÑßß«αÑ 80286, φΓ¿ αÑú¿ßΓαδ ¿ß»«½∞ºπ-
  5518.         εΓß∩ Γ«½∞¬« ß¿ßΓѼ¡δ¼ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼,  »«φΓ«¼π ó ñá¡¡«¼
  5519.         απ¬«ó«ñßΓóÑ ¼δ « ¡¿σ ¡Ñ αáß߬áºδóáѼ.
  5520.  
  5521.  
  5522.  
  5523.  
  5524.         TASM2 #3-5/䫬              = 130 =
  5525.  
  5526.                               32-αáºα∩ñ¡δÑ «íΘ¿Ñ αÑú¿ßΓαδ                      
  5527.         -----------------------------------------------------------------
  5528.  
  5529.              32-αáºα∩ñ¡δÑ αÑú¿ßΓαδ «íΘÑú« ¡áº¡áτÑ¡¿∩ ¡áºδóáεΓß∩ EAX, EBX,
  5530.         ECX, EDX,  ESI, EDI, EBP ¿ ESP. î½áñΦ¿Ñ 16 í¿Γ φΓ¿σ αÑú¿ßΓα«ó «í-
  5531.         αáºπεΓ ¼¡«ªÑßΓó« 16-αáºα∩ñ¡δσ αÑú¿ßΓα«ó »α«µÑßß«αá  8086, ¬«Γ«αδÑ
  5532.         ¡á¼ πªÑ  σ«α«Φ«  º¡á¬«¼δ.  ìá»α¿¼Ñα,  ¼½áñΦ¿Ñ 16 í¿Γ αÑú¿ßΓαá EAX
  5533.         »αÑñßΓáó½∩εΓ ß«í«⌐ αÑú¿ßΓα AX. Ç¡á½«ú¿τ¡«, ¼½áñΦ¿Ñ 8 í¿Γ αÑú¿ßΓαá
  5534.         EAX »αÑñßΓáó½∩εΓ ß«í«⌐ αÑú¿ßΓα AL.  é αѺπ½∞ΓáΓÑ ¬ αẽ¿τ¡δ¼ τáß-
  5535.         Γ∩¼ αÑú¿ßΓαá EAX ¼«ª¡« ΓÑ»Ñα∞ «íαáΘáΓ∞ß∩ ß »«¼«Θ∞ε  τÑΓδαÑσ  αáº-
  5536.         ½¿τ¡δσ ¿¼Ñ¡:  32-í¿Γ«ó«ú« αÑú¿ßΓαá EAX, 16-í¿Γ«ó«ú« αÑú¿ßΓαá AX ¿
  5537.         8-í¿Γ«óδσ αÑú¿ßΓα«ó AH ¿ AL.  Æ«ªÑ ßἫѠ «Γ¡«ß¿Γß∩  ¬  αÑú¿ßΓαá¼
  5538.         EBX, ECX ¿ EDX.
  5539.  
  5540.              32-αáºα∩ñ¡δÑ «íΘ¿Ñ αÑú¿ßΓαδ  »α«µÑßß«αá  80386  ¿ß»«½∞ºπεΓß∩
  5541.         Γ«τ¡« ΓᬪÑ, ¬á¬ ¿ 16- ¿½¿ 8-αáºα∩ñ¡δÑ αÑú¿ßΓαδ. ìá»α¿¼Ñα, ó ñá¡-
  5542.         ¡«¼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ó EAX ºá»¿ßδóáÑΓß∩ 1,  αÑú¿ßΓα EBX  πßΓá-
  5543.         ¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ 0,  ¿ º¡áτÑ¡¿Ñ αÑú¿ßΓαá EAX c¬½áñδóáÑΓß∩ ß
  5544.         EBX:
  5545.  
  5546.                 .
  5547.                 .
  5548.                 .
  5549.                 mov     eax,1
  5550.                 sub     ebx,ebx
  5551.                 add     ebx,eax
  5552.                 .
  5553.                 .
  5554.                 .
  5555.  
  5556.              32-αáºα∩ñ¡δÑ «íΘ¿Ñ  αÑú¿ßΓαδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Γᬿ¼ ªÑ «í-
  5557.         αẫ¼, ¬á¬ ¿ «íδτ¡δÑ 16-αáºα∩ñ¡δÑ αÑú¿ßΓαδ.
  5558.  
  5559.              Åα¿ «íαáΘÑ¡¿¿ ¬ 32-αáºα∩ñ¡δ¼ αÑú¿ßΓαá¼ ÑßΓ∞  ¿¼ÑÑΓß∩  Γ«½∞¬«
  5560.         «ñ¿¡  ¡Ñí«½∞Φ«⌐ ¡Ññ«ßΓáΓ«¬:  ¡Ñ󫺼«ª¡« ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿ß»«½∞º«-
  5561.         óáΓ∞ ßΓáαΦ¿Ñ 16 í¿Γ«ó 32-αáºα∩ñ¡«ú«  αÑú¿ßΓαá,  ¬á¬  16-αáºα∩ñ¡δ⌐
  5562.         αÑú¿ßΓα. àß½¿  óδ  σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ ßΓáαΦ¿Ñ 8 í¿Γ αÑú¿ßΓαá AX,
  5563.         Γ« ¼«ª¡« »α«ßΓ« ß«ß½áΓ∞ß∩ ¡á αÑú¿ßΓα AH, á Ñß½¿ óδ σ«Γ¿ΓÑ ¿ß»«½∞-
  5564.         º«óáΓ∞ ¼½áñΦ¿Ñ 16 í¿Γ«ó αÑú¿ßΓαá ESI, ¬á¬ αÑú¿ßΓα, Γ« ¼«ª¡« »α«ß-
  5565.         Γ« ßßδ½áΓ∞ß∩ ¡á SI.  Äñ¡á¬« ¡ÑΓ φ¬ó¿óá½Ñ¡Γ¡«ú« ß»«ß«íá ßßδ½áΓ∞ß∩,
  5566.         ß¬áªÑ¼, ¡á ßΓáαΦ¿Ñ 16 í¿Γ, ¡á»α¿¼Ñα, αÑú¿ßΓαá EAX. ¥Γ« ¼«ªÑΓ «¬á-
  5567.         ºáΓ∞ß∩ ¡Ñ»α¿∩Γ¡δ¼ »α¿ ß¼ÑΦá¡¡«⌐ αáí«ΓÑ ß« º¡áτÑ¡¿∩¼¿  αẼÑα«¼  ó
  5568.         ß½«ó« ¿ ñó«⌐¡«Ñ ß½«ó«, «ñ¡á¬« Γá¬πε ¡Ñ»α¿∩Γ¡«ßΓ∞ ¼«ª¡« «í«⌐Γ¿.
  5569.  
  5570.              ùΓ«íδ »«½πτ¿Γ∞  ñ«ßΓπ»  ¬ ßΓáαΦ¿¼ 16 í¿Γá¼ 32-αáºα∩ñ¡«ú« αÑ-
  5571.         ú¿ßΓαá, ¼«ª¡« »α«ßΓ« óδ»«½¡¿Γ∞ µ¿¬½¿τÑ߬¿⌐ ßñó¿ú 16 í¿Γ«ó ó ½εí«¼
  5572.  
  5573.         TASM2 #3-5/䫬              = 131 =
  5574.  
  5575.         ¡á»αáó½Ñ¡¿¿,  «íαáΓ¿Γ∞ß∩  ß ¼½áñΦ¿¼ 16 í¿Γá¼ αÑú¿ßΓαá ¿ ß¡«óá óδ-
  5576.         »«½¡¿Γ∞ ñ½∩ αÑú¿ßΓαá µ¿¬½¿τÑ߬¿⌐ ßñó¿ú ¡á 16. ìá»α¿¼Ñα, ó ß½Ññπε-
  5577.         ΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ ó αÑú¿ßΓα AX ºáúαπªáÑΓß∩ 16-í¿Γ«ó«Ñ  º¡á-
  5578.         τÑ¡¿Ñ, óδ»«½¡∩ÑΓß∩ µ¿¬½¿τÑ߬¿⌐ ßñó¿ú αÑú¿ßΓαá EDX ¡á 16 í¿Γ, τΓ«-
  5579.         íδ »ÑαÑßΓáó¿Γ∞ (»«¼Ñ¡∩Γ∞ ¼ÑßΓἿ) ßΓáαΦÑÑ ¿ ¼½áñΦÑÑ ß½«óá EDX, AX
  5580.         »«¼ÑΘáÑΓß∩ ó αÑú¿ßΓα DX, ¿ ß¡«óá óδ»«½¡∩ÑΓß∩ »ÑαÑßΓá¡«ó¬á ßΓáαΦÑ-
  5581.         ú« ¿ ¼½áñΦÑú« ß½«óá ó EDX:
  5582.  
  5583.                 .
  5584.                 .
  5585.                 .
  5586.                 mov     ax,[Sample16BitValue]
  5587.                 ror     edx,16
  5588.                 mov     dx,ax
  5589.                 ror     edx,16
  5590.                 .
  5591.                 .
  5592.                 .
  5593.  
  5594.              é αѺπ½∞ΓáΓÑ ¼δ »«½πτ¿¼ ß½ÑñπεΘ¿⌐ φΣΣѬΓ: º¡áτÑ¡¿Ñ, »Ñαó«¡á-
  5595.         τá½∞¡« ºáúαπªÑ¡¡«Ñ ó αÑú¿ßΓα AX,  ó αѺπ½∞ΓáΓÑ »«¼ÑΘáÑΓß∩ ó ßΓáα-
  5596.         ΦÑÑ ß½«ó« EDX.  ò«Γ∩ φΓ« ¿ ºáΓαπñ¡¿Γѽ∞¡á∩ »α«µÑñπαá, óδ»«½¡∩ÑΓß∩
  5597.         «¡á ¡Ñ Γᬠ¼Ññ½Ñ¡¡«,  ¬á¬ ¼«ªÑΓ »«¬áºáΓ∞ß∩.  ü½áú«ñáα∩ úαπ»»«ó«¼π
  5598.         ßñó¿úπ »α«µÑßß«αá 80386 ñ½∩ óδ»«½¡Ñ¡¿∩ ¬áªñ«⌐ ¿¡ßΓαπ¬µ¿¿ ROR ΓαÑ-
  5599.         íπÑΓß∩ Γ«½∞¬« 3 µ¿¬½á.
  5600.  
  5601.  
  5602.  
  5603.  
  5604.         TASM2 #3-5/䫬              = 132 =
  5605.  
  5606.                                                                                
  5607.         32-αáºα∩ñ¡δ⌐ αÑú¿ßΓα Σ½áú«ó
  5608.         -----------------------------------------------------------------
  5609.  
  5610.              î½áñΦÑÑ ß½«ó« αÑú¿ßΓαá Σ½áú«ó »α«µÑßß«αá 80386 ¿ñÑ¡Γ¿τ¡« αÑ-
  5611.         ú¿ßΓαπ Σ½áú«ó  »α«µÑßß«αá  8086.  æΓáαΦ¿Ñ  16 í¿Γ αÑú¿ßΓαá Σ½áú«ó
  5612.         »α«µÑßß«αá 8086 ß«ñÑαª¿Γ ñóá ¡«óδσ Σ½áúá. Äñ¿¡ ¿º φΓ¿σ ¡«óδσ Σ½á-
  5613.         ú«ó  »«¬áºδóáÑΓ,  αáí«ΓáÑΓ ½¿ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ »α«µÑßß«α 80386 ¬á¬
  5614.         ó¿αΓπá½∞¡δ⌐ »α«µÑßß«α 8086,  á ñαπú«⌐ Σ½áú »αÑñ¡áº¡áτÑ¡  ñ½∩  ¿ß-
  5615.         »«½∞º«óá¡¿∩ »α¿ αáºαáí«Γ¬Ñ ßαÑñßΓó «Γ½áñ¬¿.  Åਪ½áñ¡δ¼ »α«úαá¼¼-
  5616.         ¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼ φΓ¿ Σ½áú¿ «íδτ¡« ¡Ñ ¿ß»«½∞ºπεΓß∩.
  5617.  
  5618.                            32-αáºα∩ñ¡δ⌐ π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐                   
  5619.         -----------------------------------------------------------------
  5620.  
  5621.              ô¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá 80386 ¿¼ÑÑΓ αẼÑα 32 í¿Γá,
  5622.         τΓ« «Γ½¿τáÑΓß∩ «Γ  16-í¿Γ«ó«ú«  π¬áºáΓѽ∩  ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá
  5623.         8086. ¥Γ«Γ αáßΦ¿αÑ¡¡δ⌐ π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐ »«ññÑনóáÑΓ ßÑú¼Ñ¡Γδ
  5624.         ¬«ñá αẼÑα«¼ ñ« 4 ú¿úáíá⌐Γ.
  5625.  
  5626.              ÉáßΦ¿αÑ¡¡δ⌐ π¬áºáΓѽ∞ ¿¡ßΓαπ¬µ¿⌐  »α«µÑßß«αá  80386  ß«ºñáÑΓ
  5627.         ¡Ñ¬«Γ«αδÑ  ß½«ª¡«ßΓ¿  »α¿  ºáñá¡¿¿  ¬«ßóÑ¡¡δσ »ÑαÑσ«ñ«ó ó »á¼∩Γ¿.
  5628.         ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ ¬«ñ ∩ß¡« «»αÑñѽ∩ÑΓ ¬«ßóÑ¡¡δ⌐ »ÑαÑσ«ñ ñá½∞¡Ñ-
  5629.         ú« Γ¿»á ß »«¼«Θ∞ε 16-í¿Γ«ó«ú« ßÑú¼Ñ¡Γá ¿ 32-í¿Γ«ó«ú« ß¼ÑΘÑ¡¿∩:
  5630.  
  5631.                 jmp     [FWORD  PTR     JumpVector]
  5632.  
  5633.              Éáßß¼«Γα¿¼, «ñ¡á¬«, ß½ÑñπεΘÑÑ:
  5634.  
  5635.                 jmp     [DWORD PTR JumpVector]
  5636.  
  5637.              ùΓ« φΓ«,  32-í¿Γ«óδ⌐  ¬«ßóÑ¡¡δ⌐  »ÑαÑσ«ñ í½¿ª¡Ñú« Γ¿»á,  ¿½¿
  5638.         ¬«ßóÑ¡¡δ⌐ »ÑαÑσ«ñ ñá½∞¡Ñú« Γ¿»á ß 16-í¿Γ«óδ¼ ßÑú¼Ñ¡Γ«¼ ¿ 16-í¿Γ«-
  5639.         óδ¼ ß¼ÑΘÑ¡¿Ñ¼? æ »«¼«Θ∞ε «»Ñαá¡ñá DWORD ¼«ªÑΓ íδΓ∞ ºáñá¡ ½εí«⌐ ¿º
  5640.         φΓ¿σ ñóπσ Γ¿»«ó »ÑαÑσ«ñ«ó.
  5641.  
  5642.              çñÑß∞ ¡á »«¼«Θ∞ ¼«úπΓ »α¿⌐Γ¿ «»Ñαᵿ¿ SMALL ¿  LARGE.  è«¡ß-
  5643.         Γαπ¬µ¿∩:
  5644.  
  5645.                 jmp     SMALL [DWORD PTR JumpVector]
  5646.  
  5647.         áßßÑ¼í½¿απÑΓß∩, ¬á¬  ¬«ßóÑ¡¡δ⌐  »ÑαÑσ«ñ  ñá½∞¡Ñú« Γ¿»á »« áñαÑßπ,
  5648.         ºáñá¡¡«¼π 16-í¿Γ«óδ¼ ßÑú¼Ñ¡Γ«¼ ¿ 16-í¿Γ«óδ¼ ß¼ÑΘÑ¡¿Ñ¼, ºá»¿ßá¡¡«¼
  5649.         ó JumpVector, á
  5650.  
  5651.                 jmp     LARGE [DWORD PTR JumpVector]
  5652.  
  5653.         TASM2 #3-5/䫬              = 133 =
  5654.  
  5655.  
  5656.         áßßÑ¼í½¿απÑΓß∩, ¬á¬  ¬«ßóÑ¡¡δ⌐  »ÑαÑσ«ñ  í½¿ª¡Ñú« Γ¿»á »« áñαÑßπ,
  5657.         ºáñá¡¡«¼π ΓѬπΘ¿¼ º¡áτÑ¡¿Ñ¼ αÑú¿ßΓαá CS ¿  32-í¿Γ«óδ¼  ß¼ÑΘÑ¡¿Ñ¼,
  5658.         ºá»¿ßá¡¡δ¼ ó JumpVector. é »Ñαó«¼ ß½πτáÑ «»Ñαᵿ∩ SMALL π¬áºδóáÑΓ
  5659.         Æπαí« ÇßßѼí½Ñαπ, τΓ« »ÑαÑσ«ñ ¡πª¡« ¿¡ΓÑα»αÑΓ¿α«óáΓ∞, ¬á¬ »ÑαÑσ«ñ
  5660.         ¿º ßÑú¼Ñ¡Γá USE16. é ßÑú¼Ñ¡Γáσ USE16 32-í¿Γ«óδÑ ¬«ßóÑ¡¡δÑ «»Ñαá¡-
  5661.         ñδ ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá ß«ßΓ«∩Γ ¿º 16-í¿Γ«ó«ú« ßÑú¼Ñ¡Γá ¿ 16-í¿Γ«-
  5662.         ó«ú«  ß¼ÑΘÑ¡¿∩.  é«  óΓ«α«¼ ß½πτáÑ «»Ñαᵿ∩ LARGE π¬áºδóáÑΓ Æπαí«
  5663.         ÇßßѼí½Ñαπ, τΓ« »ÑαÑσ«ñ ¡πª¡« ¿¡ΓÑα»αÑΓ¿α«óáΓ∞, ¬á¬ óδ»«½¡∩εΘ¿⌐ß∩
  5664.         ó ßÑú¼Ñ¡ΓÑ USE32. é ßÑú¼Ñ¡Γáσ Γ¿»á USE32 32-í¿Γ«óδ⌐ ¬«ßóÑ¡¡δ⌐ »Ñ-
  5665.         αÑσ«ñ ß«ßΓ«¿Γ Γ«½∞¬« ¿º 16-í¿Γ«óδσ ß¼ÑΘÑ¡¿⌐.
  5666.  
  5667.              ÄΓ¼ÑΓ¿¼, τΓ« «»Ñαᵿ¿ SMALL ¿  LARGE  π¬áºδóáεΓß∩  ó  ñá¡¡δσ
  5668.         »α¿¼Ñαáσ ó¡Ñ ¬óáñαáΓ¡δσ ß¬«í«¬:  »«º¿µ¿∩ φΓ¿σ «»Ñαᵿ⌐ ¿¼ÑÑΓ º¡á-
  5669.         τÑ¡¿Ñ.  è«úñá «»Ñαᵿ¿ SMALL ¿ LARGE π¬áºδóáεΓß∩  ó¡Ñ  ¬óáñαáΓ¡δσ
  5670.         ß¬«í«¬,  «¡¿ ó½¿∩εΓ ¡á αẼÑα «»Ñαá¡ñá, ó ñá¡¡«¼ ß½πτáÑ - ¡á αáº-
  5671.         ¼Ñα »ÑαÑσ«ñá.  è«úñá φΓ¿ «»Ñαᵿ¿ π¬áºδóáεΓß∩ ó¡πΓα¿ ß¬«í«¬,  «¡¿
  5672.         ó½¿∩εΓ ¡á αẼÑα áñαÑßá. ìá»α¿¼Ñα, ñá¡¡δ⌐ ¬«ñ π¬áºδóáÑΓ Æπαí« Çß-
  5673.         ßѼí½Ñαπ,  τΓ« ¡πª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ßß佬¿ ¡á JumpVector 32-í¿-
  5674.         Γ«ó«Ñ  ß¼ÑΘÑ¡¿Ñ,  ¡«  ¡Ñ ß««íΘáÑΓ Ñ¼π,  ¡πª¡« ½¿ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞
  5675.         º¡áτÑ¡¿Ñ,  ºá»¿ßá¡¡«Ñ ó JumpVector, ¬á¬ 32-í¿Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ í½¿ª-
  5676.         ¡Ñú« Γ¿»á,  ¿½¿ ¬á¬ ¬«¼í¿¡áµ¿ε 16-í¿Γ«ó«ú« ßÑú¼Ñ¡Γá ¿ 16-í¿Γ«ó«ú«
  5677.         ß¼ÑΘÑ¡¿∩ í½¿ª¡Ñú« Γ¿»á:
  5678.  
  5679.                 jmp     [LARGE DWORD PTR JumpVector]
  5680.  
  5681.              Å«φΓ«¼π φΓ« ¡Ñ αÑΦáÑΓ ¿ßσ«ñ¡«⌐ »α«í½Ñ¼δ «»αÑñѽѡ¿∩ Γ¿»á »Ñ-
  5682.         αÑσ«ñá.
  5683.  
  5684.              é «Γñѽ∞¡δσ  óδαáªÑ¡¿∩σ «»Ñαᵿ¿ LARGE ¿ SMALL ¼«úπΓ ¿ß»«½∞-
  5685.         º«óáΓ∞ß∩ ¬á¬ ó¡πΓα¿,  Γᬠ¿ ó¡Ñ ¬óáñαáΓ¡δσ ß¬«í«¬. ìá»α¿¼Ñα, ß½Ñ-
  5686.         ñπεΘ¿⌐  ¬«ñ ºáñáÑΓ ¬«ßóÑ¡¡δ⌐ »ÑαÑσ«ñ ñá½∞¡Ñú« Γ¿»á »« 16-í¿Γ«ó«¼π
  5687.         ßÑú¼Ñ¡Γπ  ¿  16-í¿Γ«ó«¼π  ß¼ÑΘÑ¡¿ε,   ºá»¿ßá¡¡δ¼   ó   »ÑαѼѡ¡«⌐
  5688.         JumpVector  αẼÑα«¼  ó ñó«⌐¡«Ñ ß½«ó«,  ¬«Γ«αá∩ ßá¼á áñαÑßπÑΓß∩ ß
  5689.         »«¼«Θ∞ε í½¿ª¡Ñú« 32-í¿Γ«ó«ú« ß¼ÑΘÑ¡¿∩:
  5690.  
  5691.                 jmp     SMALL   [LARGE DWORD PTR JumpVector]
  5692.  
  5693.  
  5694.  
  5695.  
  5696.         TASM2 #3-5/䫬              = 134 =
  5697.  
  5698.                                ì«óδÑ ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ                       
  5699.         -----------------------------------------------------------------
  5700.  
  5701.              é »α«µÑßß«αÑ 8086 ¬ τÑΓδαѼ ßÑú¼Ñ¡Γ¡δ¼ αÑú¿ßΓαá¼,  »«ññÑন-
  5702.         óáÑ¼δ¼ ó »α«µÑßß«αÑ 8086 ñ«íáó½Ñ¡δ ñóá ¡«óδσ  ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓαá
  5703.         -  FS ¿ GS.  ¥Γ¿ ñóá ¡«óδσ αÑú¿ßΓαá ¡Ñ »αÑñ¡áº¡áτÑ¡δ ñ½∩ ¬á¬«⌐-Γ«
  5704.         ¬«¡¬αÑΓ¡«⌐ Σπ¡¬µ¿¿,  ¿ ¡¿¬á¬á∩ ¿¡ßΓαπ¬µ¿∩ ¿½¿ αѪ¿¼ áñαÑßᵿ¿  »«
  5705.         π¼«½τá¡¿ε ¿σ ¡Ñ ¿ß»«½∞ºπÑΓ.  é ¿Γ«úÑ ¿ß»«½∞º«óá¡¿Ñ αÑú¿ßΓα«ó FS ¿
  5706.         GS ¡Ñ ∩ó½∩ÑΓß∩ «í∩ºáΓѽ∞¡δ¼, ¡« ¼«ªÑΓ «¬áºáΓ∞ß∩ πñ«í¡δ¼ »α¿ «íαá-
  5707.         ΘÑ¡¿¿ ¬ ñá¡¡δ¼ ó ¡Ñ߬«½∞¬¿σ ßÑú¼Ñ¡Γáσ ßαáºπ.
  5708.  
  5709.              ÉÑú¿ßΓαδ FS  ¿ GS ¿ß»«½∞ºπεΓß∩ ΓᬪÑ,  ¬á¬ ó ¡Ñ¬«Γ«αδσ  ¿¡ß-
  5710.         Γαπ¬µ¿∩σ ¿ß»«½∞ºπÑΓß∩ αÑú¿ßΓα ES:  ß »«¼«Θ∞ε »αÑΣ¿¬ßá »ÑαÑ«»αÑñÑ-
  5711.         ½Ñ¡¿∩ ßÑú¼Ñ¡Γá. ÅαÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ ¼«ªÑΓ π¬áºδóáΓ∞ß∩ ∩ó¡«:
  5712.  
  5713.                 .386
  5714.                 .
  5715.                 .
  5716.                 .
  5717.         TestSeg SEGMENT USE16
  5718.         SCRATCH_LEN     EQU     1000h
  5719.         Scratch         DB      SCRATCH_LEN     DUP (?)
  5720.         TestSeg         ENDS
  5721.                 .
  5722.                 .
  5723.                 .
  5724.         CodeSeg  SEGMENT USE16
  5725.                 ASSUME  CS:CodeSeg
  5726.                 mov     ax,TestSeg
  5727.                 mov     fs,ax
  5728.                 mov     bx,OFFSET Scratcn
  5729.                 mov     cx,Scratch_LEN
  5730.                 mov     al,0
  5731.         ClearScratch:
  5732.                 mov     fs:[bx],al
  5733.                 inc     bx
  5734.                 loop    ClearScratch
  5735.                 .
  5736.                 .
  5737.                 .
  5738.         CodeSeg ENDS
  5739.                 .
  5740.                 .
  5741.  
  5742.         ¿½¿ ¡Ñ∩ó¡« ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ASSUME:
  5743.  
  5744.  
  5745.         TASM2 #3-5/䫬              = 135 =
  5746.  
  5747.                 .386
  5748.                 .
  5749.                 .
  5750.                 .
  5751.         TestSeg SEGMENT USE16
  5752.         SCRATCH_LEN     EQU     1000h
  5753.         Scratch         DB      SCRATCH_LEN     DUP (?)
  5754.         TestSeg         ENDS
  5755.                 .
  5756.                 .
  5757.                 .
  5758.         CodeSeg  SEGMENT USE16
  5759.                 ASSUME  CS:CodeSeg
  5760.                 mov     ax,TestSeg
  5761.                 mov     gs,ax
  5762.                 ASSUME  GS:TestSeg
  5763.                 sub     bx,bx
  5764.                 mov     cx,SCRATH_LEN
  5765.                 mov     al,0
  5766.         ClearScratch:
  5767.                 mov     [Scratch+bx],al
  5768.                 inc     bx
  5769.                 loop    ClearScratch
  5770.                 .
  5771.                 .
  5772.                 .
  5773.         CodeSeg ENDS
  5774.                 .
  5775.                 .
  5776.                 .
  5777.  
  5778.              é »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ ñ¿αÑ¬Γ¿óá  ASSUME  GS:TestSeg  π¬áºδóáÑΓ
  5779.         Æπαí« ÇßßѼí½Ñαπ,  τΓ« »α¿ ¬áªñ«¼ «íαáΘÑ¡¿¿ »« ¿¼Ñ¡¿ ¬ »ÑαѼѡ¡δ¼
  5780.         ó TestSeg ¡πª¡« áóΓ«¼áΓ¿τÑ߬¿  ó¬½ετáΓ∞  »αÑΣ¿¬ß  »ÑαÑ«»αÑñѽѡ¿∩
  5781.         (ó «Γ½¿τ¿Ñ «Γ ñ«ßΓπ»á ß »«¼«Θ∞ε αÑú¿ßΓαá-π¬áºáΓѽ∩), »«φΓ«¼π ∩ó¡«
  5782.         »αÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ óá¼ π¬áºδóáΓ∞ ¡Ñ  ¡πª¡«.  Äñ¡á¬«  »αÑΣ¿¬ß
  5783.         »ÑαÑ«»αÑñѽѡ¿∩  ß«ñÑনΓß∩  ó óδ»«½¡∩Ѽ«¼ ¬«ñÑ,  ñ«íáó½∩∩ íá⌐Γ ¬
  5784.         ¬áªñ«⌐ ¿¡ßΓαπ¬µ¿¿, ¬«Γ«αá∩ «íαáΘáÑΓß∩ ¬ »á¼∩Γ¿ ß »«¼«Θ∞ε αÑú¿ßΓαá
  5785.         FS ¿½¿ GS.  æ½Ññ«óáΓѽ∞¡«,  Γá¼ úñÑ φΓ« ó«º¼«ª¡«, ó¼ÑßΓ« ßÑú¼Ñ¡Γá
  5786.         FS ¿½¿ GS »αÑñ»«τΓ¿Γѽ∞¡ÑÑ  ¿ß»«½∞º«óáΓ∞  ßÑú¼Ñ¡Γ¡δ⌐  αÑú¿ßΓα  DS
  5787.         (¿½¿ ES ó ¬áτÑßΓóÑ »α¿Ñ¼¡¿¬á ó ßΓ᫬«ó«⌐ ¿¡ßΓαπ¬µ¿¿).
  5788.  
  5789.                                 ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿                         
  5790.         -----------------------------------------------------------------
  5791.  
  5792.  
  5793.         TASM2 #3-5/䫬              = 136 =
  5794.  
  5795.              Åα«µÑßß«α 80386 »«ññÑনóáÑΓ óßÑ αѪ¿¼δ áñαÑßᵿ¿  »α«µÑßß«-
  5796.         α«ó 8086,  80186 ¿ 80286 ¿ »«ºó«½∩ÑΓ ΓᬪѠ¿ß»«½∞º«óáΓ∞ ¡«óδÑ αÑ-
  5797.         ª¿¼δ áñαÑßᵿ¿.  é ¬áτÑßΓóÑ íẫó«ú« αÑú¿ßΓαá ¼«ª¡«  ¿ß»«½∞º«óáΓ∞
  5798.         ½εí«⌐  ¿º  ó«ß∞¼¿ 32-αáºα∩ñ¡δσ «íΘ¿σ αÑú¿ßΓα«ó,  á ó ¬áτÑßΓóÑ ¿¡-
  5799.         ñѬߡ«ú« αÑú¿ßΓαá - ½εí«⌐ ¿º 8 32-αáºα∩ñ¡δσ «íΘ¿σ αÑú¿ßΓα«ó, ¬α«-
  5800.         ¼Ñ αÑú¿ßΓαá SP. (éß»«¼¡¿¼, τΓ« »α«µÑßß«α 8086 »«ºó«½∩ÑΓ ¿ß»«½∞º«-
  5801.         óáΓ∞ ó ¬áτÑßΓóÑ íẫóδσ Γ«½∞¬« αÑú¿ßΓαδ BX ¿  BP,  á  ó  ¬áτÑßΓóÑ
  5802.         ¿¡ñѬߡδσ - Γ«½∞¬« SI ¿ DI.)
  5803.  
  5804.              ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα,  τΓ«  αÑú¿ßΓα  EDI  ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ
  5805.         10000h,  á EAX ß«ñÑαª¿Γ 4. Æ«úñá ß½ÑñπεΘ¿⌐ ¬«ñ íπñÑΓ »αÑñßΓáó½∩Γ∞
  5806.         ß«í«⌐  ñ«»πßΓ¿¼πε ¿¡ßΓαπ¬µ¿ε ñ½∩ »α«µÑßß«αá 80386,  πóѽ¿τ¿óáεΘπε
  5807.         íá⌐Γ »« ß¼ÑΘÑ¡¿ε 10006h (10000h + 4 + 2) ó ßÑú¼Ñ¡ΓÑ,  ¡á  ¬«Γ«αδ⌐
  5808.         π¬áºδóáÑΓ DS:
  5809.  
  5810.                 inc     BYTE PTR        [edi+eax+2]
  5811.  
  5812.              Åα¿óÑñѼ ÑΘÑ «ñ¿¡ »α¿¼Ñα ¡«óδσ ó«º¼«ª¡«ßΓÑ⌐ áñαÑßᵿ¿ ó »α«-
  5813.         µÑßß«αÑ 80386:
  5814.  
  5815.                 .
  5816.                 .
  5817.                 .
  5818.                 mov     ecx,[esp+4]
  5819.                 mov     ebx,[esp+8]
  5820.                 mov     WORD PTR [exc+ebx],0
  5821.                 .
  5822.                 .
  5823.                 .
  5824.  
  5825.              Äñ¡á¬« ß »«¼«Θ∞ε ¡«óδσ  αѪ¿¼«ó  áñαÑßᵿ¿  »α«µÑßß«α  80386
  5826.         ß»«ß«íÑ¡  ¡á í«½∞ΦÑÑ.  Åα¿ óδτ¿ß½Ñ¡¿¿ áñαÑßá »á¼∩Γ¿ ¿¡ñѬߡδ⌐ αÑ-
  5827.         ú¿ßΓα ¼«ª¡« π¼¡«ªáΓ∞ ¡á 2,  4 ¿½¿ 8.  ä½∩ φΓ«ú« »«ß½Ñ  ¿¡ñѬߡ«ú«
  5828.         αÑú¿ßΓαá »α«ßΓ« »«¼ÑΘáÑΓß∩ *2, *4 ¿½¿ *8 (φΓ« ßαÑñßΓó« ¡áºδóáÑΓß∩
  5829.         ¿¡ñÑ¬ß¡δ¼ ¼áßΦΓáí¿α«ó᡿Ѽ).  ìá»α¿¼Ñα, ñÑó∩Γπε ºá»¿ß∞ αẼÑα«¼ ó
  5830.         ñó«⌐¡«Ñ ß½«ó« ó Γáí½¿µÑ DwordTable ¼«ª¡« ºáúαπº¿Γ∞ ó  αÑú¿ßΓα EAX
  5831.         ß½ÑñπεΘ¿¼ «íαẫ¼:
  5832.  
  5833.                 .
  5834.                 .
  5835.                 .
  5836.                 mov     ebx,8
  5837.                 mov     eax,[DwordTable+ebx*4]
  5838.                 .
  5839.                 .
  5840.                 .
  5841.  
  5842.         TASM2 #3-5/䫬              = 137 =
  5843.  
  5844.  
  5845.         τΓ« φ¬ó¿óá½Ñ¡Γ¡« ß½ÑñπεΘѼπ:
  5846.  
  5847.                 .
  5848.                 .
  5849.                 .
  5850.                 mov     ebx,8
  5851.                 shl     ebx,2
  5852.                 mov     eax,[DwordTable+ebx]
  5853.                 shr     ebx,2
  5854.                 .
  5855.                 .
  5856.                 .
  5857.  
  5858.              ê¡ñѬߡ«Ñ ¼áßΦΓáí¿α«óá¡¿Ñ ¼«ªÑΓ íδΓ∞ ταѺóδτá⌐¡« »«½Ñº¡« »α¿
  5859.         ñ«ßΓπ»Ñ ¬ φ½Ñ¼Ñ¡Γá¼,  ¬á¬ ¬ ¼áßß¿óá¼ ß½«ó,  ñó«⌐¡δσ ß½«ó ¿½¿ τÑΓ-
  5860.         óÑα¡δσ ß½«ó.  ìá»α¿¼Ñα,  αáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ,
  5861.         ¬«Γ«αá∩ ß«αΓ¿απÑΓ φ½Ñ¼Ñ¡Γδ ó ¼áßß¿óÑ ß½«ó ó ó«ºαáßΓáεΘѼ »«α∩ñ¬Ñ:
  5862.  
  5863.                 .386
  5864.                 .
  5865.                 .
  5866.                 .
  5867.         CodeSeg SEGMENT USE32
  5868.                 ASSUME  CS:CodeSeg
  5869.                 .
  5870.                 .
  5871.                 .
  5872.         ;
  5873.         ; æ«αΓ¿α«ó¬á ¼áßß¿óá ß½«ó ó ó«ºαáßΓáεΘѼ »«α∩ñ¬Ñ.
  5874.         ;
  5875.         ; éó«ñ:
  5876.         ;    DS:EBX - π¬áºáΓѽ∞ ¡á ¡áτὫ ß«αΓ¿απѼ«ú« ¼áßß¿óá ß½«ó.
  5877.         ;    EDX - ñ½¿¡á ¼áßß¿óá (ó ß½«óáσ).
  5878.         ;
  5879.         ; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ:
  5880.         ;    AX, ECX, EDX, ESI, EDI.
  5881.         ;
  5882.         SortArray       PROC
  5883.                 and     edx,edx
  5884.                 jz      EndSortWordArray
  5885.                 mov     esi,0                   ; ßαáó¡¿Γ∞ φ½Ñ¼Ñ¡Γ 0
  5886.                                                 ; ß« óßѼ¿ ñαπú¿¼¿
  5887.         SortOnNextWord:
  5888.                 dec     edx                     ; π¼Ñ¡∞Φ¿Γ∞ ßτÑΓτ¿¬
  5889.                                                 ; ßαáó¡¿óáѼδσ ß½«ó
  5890.  
  5891.         TASM2 #3-5/䫬              = 138 =
  5892.  
  5893.                 jz      EndSortWordArray
  5894.                 mov     ecx,edx                 ; τ¿ß½« φ½Ñ¼Ñ¡Γ«ó,
  5895.                                                 ; ß ¬«Γ«α묨 ¡πª¡«
  5896.                                                 ; ßαáó¡¿Γ∞ ñá¡¡δ⌐
  5897.                                                 ; φ½Ñ¼Ñ¡Γ
  5898.                 mov     edi,esi                 ; ßαáó¡¿Γ∞ ñá¡¡δ⌐
  5899.                                                 ; φ½Ñ¼Ñ¡Γ ß« óßѼ¿
  5900.                                                 ; «ßΓáóΦ¿¼¿ß∩ φ½Ñ¼Ñ¡-
  5901.                                                 ; ΓἿ
  5902.         CompareToAllRemainingWords:
  5903.                 inc     edi                     ; ¿¡ñѬߠ߽ÑñπεΘÑú«
  5904.                                                 ; ßαáó¡¿óáѼ«ú«
  5905.                                                 ; φ½Ñ¼Ñ¡Γá
  5906.                 mov     ax,[ebx+esi*2]
  5907.                 cmp     ax,[ebx+edi*2]          ; ΓѬπΘ¿⌐ φ½Ñ¼Ñ¡Γ
  5908.                                                 ; ¼Ñ¡∞ΦÑ φ½Ñ¼Ñ¡Γá,
  5909.                                                 ; ß ¬«Γ«αδ¼ «¡
  5910.                                                 ; ßαáó¡¿óáÑΓß∩?
  5911.                 jbe     NoSwap                  ; ñá, ¼Ñ¡∩Γ∞ ¿σ
  5912.                                                 ; ¼ÑßΓἿ ¡Ñ ¡πª¡«
  5913.                 xchg    ax,[ebx+edi*2]          ; »«¼Ñ¡∩Γ∞ ¼ÑßΓἿ
  5914.                                                 ; ΓѬπΘ¿⌐ ¿ ßαáó¡¿óáѼδ⌐
  5915.                                                 ; φ½Ñ¼Ñ¡Γ
  5916.         NoSwap:
  5917.                 loop    CompareToAllRemainingWords
  5918.                 inc     esi                     ; ßßδ½¬á ¡á ß½ÑñπεΘ¿⌐
  5919.                                                 ; φ½Ñ¼Ñ¡Γ, ¬«Γ«αδ⌐
  5920.                                                 ; ¡πª¡« ßαáó¡¿Γ∞ ß«
  5921.                                                 ; óßѼ¿ «ßΓá½∞¡δ¼¿
  5922.                                                 ; φ½Ñ¼Ñ¡ΓἿ
  5923.                 imp     SortOnNextWord
  5924.         EndSortWordArray:
  5925.                 ret
  5926.         SortWordArray   ENDP
  5927.                 .
  5928.                 .
  5929.                 .
  5930.         CodeSeg         ENDS
  5931.                 .
  5932.                 .
  5933.                 .
  5934.  
  5935.              Åα«µÑñπαá SortWordArray ß«σαá¡∩ÑΓ ¡«¼Ñαá φ½Ñ¼Ñ¡Γ«ó  ¿½¿  ¿¡-
  5936.         ñѬßδ  ΓѬπΘÑú«  ¿ ßαáó¡¿óáѼ«ú« φ½Ñ¼Ñ¡Γ«ó ó αÑú¿ßΓαáσ ESI ¿ EDI.
  5937.         ¥Γ¿ º¡áτÑ¡¿∩ ¡Ñ ∩ó½∩εΓß∩ π¬áºáΓѽ∩¼¿ (ßΓѻѡ∩¼¿  τ¿ß½á  2),  σ«Γ∩
  5938.         ¼áß߿󠠿 ∩ó½∩ÑΓß∩ ¼áß߿󫼠߽«ó.  Ä¡¿ »αÑñßΓáó½∩εΓ ß«í«⌐ »α«ßΓδÑ
  5939.  
  5940.         TASM2 #3-5/䫬              = 139 =
  5941.  
  5942.         ß¬á½∩α¡δÑ ¿¡ñѬßδ ¼áßß¿óá,  á¡á½«ú¿τ¡« Γ«¼π,  ¬á¬ n  »αÑñßΓáó½∩ÑΓ
  5943.         ß«í«⌐ ¿¡ñѬߠ¼áßß¿óá ó «»ÑαáΓ«αÑ ∩ºδ¬á æ¿:
  5944.  
  5945.               i = Array[n];
  5946.  
  5947.              é᪡δ⌐ ¼«¼Ñ¡Γ  ó »α«µÑñπαÑ SortWordArray ß«ßΓ«¿Γ ó Γ«¼,  τΓ«
  5948.         ßαÑñßΓó« ¿¡ñѬߡ«ú« ¼áßΦΓáí¿α«óá¡¿∩  »α«µÑßß«αá  80386  »«ºó«½∩ÑΓ
  5949.         óá¼  π¼¡«ªáΓ∞ ¿¡ñѬßδ ¡á 2 ó »«½Ñ áñαÑßᵿ¿ ¬ »á¼∩Γ¿, »αÑ«íαáºπ∩,
  5950.         Γᬿ¼ «íαẫ¼, ¿¡ñѬßδ ó ß¼ÑΘÑ¡¿∩ ó ¼áßß¿óÑ ß½«ó.
  5951.  
  5952.              àß½¿ ñ½∩ áñαÑßᵿ¿ ¬ »á¼∩Γ¿  ¿ß»«½∞ºπÑΓß∩  Ññ¿¡ßΓóÑ¡¡δ⌐  αÑ-
  5953.         ú¿ßΓα, Γ« φëàαÑú¿ßΓα óßÑúñá ßτ¿ΓáÑΓß∩ íẫóδ¼. àß½¿ ñ½∩ áñαÑßá-
  5954.         µ¿¿ ¬ »á¼∩Γ¿ ¿ß»«½∞ºπεΓß∩ ñóá αÑú¿ßΓαá,  Γ« ßá¼δ⌐ ½Ñóδ⌐ αÑú¿ßΓα ó
  5955.         ¬óáñαáΓ¡δσ  ß¬«í¬áσ  ßτ¿ΓáÑΓß∩ íẫóδ¼ αÑú¿ßΓα«¼,  á ßá¼δ⌐ »αáóδ⌐
  5956.         αÑú¿ßΓα - ¿¡ñѬߡδ¼. àß½¿ ªÑ, «ñ¡á¬«, ß «ñ¡¿¼ ¿½¿ ñóπ¼∩ αÑú¿ßΓαá-
  5957.         ¼¿ ó ¬óáñαáΓ¡δσ ß¬«í¬áσ π¬áºδóáÑΓß∩ ¼áßΦΓáí¿α«óá¡¿Ñ, Γ« ¼áßΦΓáí¿-
  5958.         απѼδ⌐ αÑú¿ßΓα óßÑúñá αáßß¼áΓα¿óáÑΓß∩, ¬á¬ ¿¡ñѬߡδ⌐ αÑú¿ßΓα.
  5959.  
  5960.              é«»α«ß « Γ«¼,  ¬á¬«⌐ ¿º αÑú¿ßΓα«ó ∩ó½∩ÑΓß∩  íẫóδ¼,  óáªÑ¡,
  5961.         Γᬠ¬á¬ »« π¼«½τá¡¿ε íẫóδ⌐ αÑú¿ßΓα π»αáó½∩ÑΓ ßÑú¼Ñ¡Γ«¼,  ¡á ¬«-
  5962.         Γ«αδ⌐ ñѽáÑΓß∩ ßßδ½¬á »α¿ ñá¡¡«¼ «íαáΘÑ¡¿¿ ¬ »á¼∩Γ¿. ä«ßΓπ» ¬ »á-
  5963.         ¼∩Γ¿,  «ßπΘÑßΓó½∩Ѽδ⌐ ß »«¼«Θ∞ε ¿ß»«½∞º«óá¡¿∩ αÑú¿ßΓα«ó EBP ¿ ESP
  5964.         ó ¬áτÑßΓóÑ íẫóδσ, »α¿ó«ñ¿Γ ¬ ßßδ½¬Ñ ¡á ßÑú¼Ñ¡Γ, ¡á ¬«Γ«αδ⌐ π¬á-
  5965.         ºδóáÑΓ αÑú¿ßΓα SS,  á ñ«ßΓπ» ¬ »á¼∩Γ¿, »α¿ ¬«Γ«α«¼ ó ¬áτÑßΓóÑ íá-
  5966.         º«óδσ ¿ß»«½∞ºπεΓß∩ αÑú¿ßΓαδ EAX,  EBX, ECX, EDX, ESI ¿½¿ EDI »α¿-
  5967.         ó«ñ¿Γ  ¬  ßßδ½¬Ñ  ¡á  ßÑú¼Ñ¡Γ,  ¡á  ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DS.
  5968.         ìá»α¿¼Ñα,  ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿ »α¿ó«ñ∩Γ ¬ ßßδ½¬Ñ ¡á ßÑú¼Ñ¡Γ, «»-
  5969.         αÑñѽ∩Ѽδ⌐ αÑú¿ßΓα«¼ DS:
  5970.  
  5971.                 mov     al,[eax]
  5972.                 xchg    edx,[ebx+ebp]
  5973.                 shr     BYTE PTR [esi+esp+2],1
  5974.                 mov     [ebp*2+edx],ah
  5975.                 sub     cx,[esi+esi*2]
  5976.  
  5977.         á ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿ ßßδ½áεΓß∩ ¡á αÑú¿ßΓα, «»αÑñѽ∩Ѽδ⌐ αÑú¿ßΓ-
  5978.         α«¼ SS:
  5979.  
  5980.                 rol     WORD PTR [ebp],1
  5981.                 dec     DWORD PTR [esp+4]
  5982.                 add     ax,[eax*2+esp]
  5983.                 mov     [ebp*2],edi
  5984.  
  5985.              éδí¿αáѼδ⌐ »« π¼«½τá¡¿ε »« íẫó«¼π αÑú¿ßΓαπ  ßÑú¼Ñ¡Γ  ¼«ª¡«
  5986.         »ÑαÑ«»αÑñѽ¿Γ∞ ß »«¼«Θ∞ε ∩ó¡«ú« »αÑΣ¿¬ßá »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá
  5987.         ¿½¿ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ASSUME. ìá»α¿¼Ñα:
  5988.  
  5989.         TASM2 #3-5/䫬              = 140 =
  5990.  
  5991.  
  5992.                 .386
  5993.                 .
  5994.                 .
  5995.                 .
  5996.         TestSeg SEGMENT USE32
  5997.         Array1  DW      100h DUP (0)
  5998.         TestSeg ENDS
  5999.                 .
  6000.                 .
  6001.                 .
  6002.         CodeSeg SEGMENT USE16
  6003.                 ASSUME  CS:CodeSeg
  6004.                 mov     ax,TestSeg
  6005.                 mov     fs,ax
  6006.                 ASSUME  FS:TestSeg
  6007.                 mov     dx,[ebx+Array1]         ; ¡Ñ∩ó¡«Ñ »ÑαÑ«»αÑñѽѡ¿Ñ
  6008.                                                 ; ó αѺπ½∞ΓáΓÑ ASSUME
  6009.                 mov     esi,OFFSET Array1
  6010.                 mov     cx,100h
  6011.         IncLoop:
  6012.                 inc     WORD PTR fs:[esi]       ; ∩ó¡«Ñ »ÑαÑ«»αÑñѽѡ¿Ñ
  6013.                 inc     esi
  6014.                 inc     esi
  6015.                 loop    IncLoop
  6016.                 .
  6017.                 .
  6018.                 .
  6019.         CodeSeg ENDS
  6020.                 .
  6021.                 .
  6022.                 .
  6023.  
  6024.              ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿ »α«µÑßß«αá 80386 αáí«ΓáεΓ Γ«½∞¬« ß 32
  6025.         -αáºα∩ñ¡δ¼¿ αÑú¿ßΓαἿ áñαÑßᵿ¿ ¬ »á¼∩Γ¿.  16-αáºα∩ñ¡δÑ αÑú¿ßΓαδ
  6026.         ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« ñ½∩  «úαá¡¿τÑ¡¡«ú«  ñ«ßΓπ»á  ¬  »á¼∩Γ¿,
  6027.         ΓᬪÑ,  ¬á¬ ó »α«µÑßß«αÑ 8086. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ MOV
  6028.         íπñÑΓ «Φ¿í«τ¡«⌐ ñáªÑ »α¿ ¡á½¿τ¿¿ »α«µÑßß«αá 80386:
  6029.  
  6030.                 mov     ax,[cx+dx+10h]
  6031.  
  6032.              ê¡ñѬߡ«Ñ ¼áßΦΓáí¿α«óá¡¿Ñ ñ½∩ 16-αáºα∩ñ¡δσ  αÑú¿ßΓα«ó  ΓᬪÑ
  6033.         ¡Ñ ñ«»π߬áÑΓß∩. ä½∩ áñαÑßᵿ¿ ¬ »á¼∩Γ¿ 16- ¿ 32-αáºα∩ñ¡δÑ αÑú¿ßΓ-
  6034.         αδ ¡Ñ ¼«úπΓ ß«τÑΓáΓ∞ß∩.  Å«φΓ«¼π,  ¡á»α¿¼Ñα,  ß½ÑñπεΘÑÑ óδαáªÑ¡¿Ñ
  6035.         ¿ß»«½∞º«óáΓ∞ß∩ ¡Ñ ¼«ªÑΓ:
  6036.  
  6037.  
  6038.         TASM2 #3-5/䫬              = 141 =
  6039.  
  6040.                 add     dx,[bx+eax]
  6041.  
  6042.  
  6043.  
  6044.  
  6045.         TASM2 #3-5/䫬              = 142 =
  6046.  
  6047.                                                                                
  6048.         ì«óδÑ ¿¡ßΓαπ¬µ¿¿
  6049.         -----------------------------------------------------------------
  6050.  
  6051.              äáóá⌐ΓÑ αáßß¼«Γα¿¼ ¡«óδÑ ¿ αáßΦ¿αÑ¡¡δÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá
  6052.         80386  (»«ñα«í¡ÑÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80386 «»¿ßδóáεΓß∩ ó â½áóÑ
  6053.         3 "æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá").
  6054.  
  6055.                    Åα¿¼Ñτá¡¿Ñ: ìπª¡« ¿¼ÑΓ∞ ó ó¿ñπ,  τΓ« »α«µÑßß«αδ  8086,
  6056.               80186  ¿  80286 ¡Ñ αáß»«º¡áεΓ ¡¿ «ñ¡π ¿º ΓÑσ ¡«óδσ ¿ αáßΦ¿-
  6057.               αÑ¡¡δσ ¿¡ßΓαπ¬µ¿⌐, ¬«Γ«αδÑ ¼δ íπñÑΓ «»¿ßδóáΓ∞. é αѺπ½∞ΓáΓÑ
  6058.               ½εíá∩ »α«úαá¼¼á, ó ¬«Γ«α«⌐ ¿ß»«½∞ºπεΓß∩ ¡«óδÑ ¿½¿ αáßΦ¿αÑ¡-
  6059.               ¡δÑ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80386 ¡á í«½ÑÑ αá¡¡¿σ »α«µÑßß«αáσ
  6060.               αáí«ΓáΓ∞ ¡Ñ íπñÑΓ.
  6061.  
  6062.              é »α«µÑßß«αÑ 80386 óóÑñÑ¡δ ß½ÑñπεΘ¿Ñ ¡«óδÑ ¿¡ßΓαπ¬µ¿¿:
  6063.  
  6064.                       BSF     BTR     LFS     MOVZX
  6065.                       BSR     BTS     LGS     SETxx
  6066.                       BT      CDQ     LSS     SHLD
  6067.                       BTC     CWDE    MOVSX   SHRD
  6068.  
  6069.                                      Åα«óÑα¬á í¿Γ                              
  6070.         -----------------------------------------------------------------
  6071.  
  6072.              ê¡ßΓαπ¬µ¿∩¼¿ »α«óÑન í¿Γ »α«µÑßß«αá 80386 ∩ó½∩εΓß∩ ¿¡ßΓαπ¬-
  6073.         µ¿¿ BT,  BTC,  BTR ¿ BTS. ê¡ßΓαπ¬µ¿∩ BT - φΓ« «ß¡«ó¡á∩ ¿¡ßΓαπ¬µ¿∩
  6074.         »α«óÑન í¿Γ,  ¬«»¿απεΘá∩ º¡áτÑ¡¿Ñ ºáñá¡¡«ú« Γ¿»á ó« Σ½áú »ÑαÑ¡«-
  6075.         ßá.  ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ »ÑαÑσ«ñ ¡á Bit3Is1
  6076.         »α«¿ßσ«ñ¿Γ Γ«½∞¬« ó Γ«¼ ß½πτáÑ,  Ñß½¿ í¿Γ 3 αÑú¿ßΓαá EAX  «Γ½¿τÑ¡
  6077.         «Γ 0:
  6078.  
  6079.                 .
  6080.                 .
  6081.                 .
  6082.                 bt      eax,3
  6083.                 jc      Bit3Is1
  6084.                 .
  6085.                 .
  6086.                 .
  6087.         Bit3Is1:
  6088.                 .
  6089.                 .
  6090.                 .
  6091.  
  6092.              àß½¿ αÑú¿ßΓα  EAX  ß«ñÑαª¿Γ  º¡áτÑ¡¿Ñ  00000008h,  Γ« ó φΓ«⌐
  6093.  
  6094.         TASM2 #3-5/䫬              = 143 =
  6095.  
  6096.         »α«úαἼѠ»α«¿º«⌐ñÑΓ  »ÑαÑσ«ñ  ¡á ¼ÑΓ¬π Bit3Is1.  àß½¿ ªÑ αÑú¿ßΓα
  6097.         EAX ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ 0FFFFFF7h,  Γ« »ÑαÑσ«ñ óδ»«½¡Ñ¡  ¡Ñ  íπñÑΓ.
  6098.         ÅÑαóδ⌐  «»Ñαá¡ñ  ¿¡ßΓαπ¬µ¿¿ BT »αÑñßΓáó½∩ÑΓ ß«í«⌐ 16- ¿½¿ 32-αáº-
  6099.         α∩ñ¡δ⌐ «íΘ¿⌐ αÑú¿ßΓα ¿½¿ ∩τÑ⌐¬π  »á¼∩Γ¿,  ß«ñÑαªáΘπε  »α«óÑα∩Ѽδ⌐
  6100.         í¿Γ. éΓ«α«⌐  «»Ñαá¡ñ  -  φΓ«  ¡«¼Ñα  »α«óÑα∩Ѽ«ú« í¿Γá,  ºáñá¡¡δ⌐
  6101.         8-í¿Γ«óδ¼  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼  º¡áτÑ¡¿Ñ¼  ¿½¿  ß«ñÑন¼δ¼  16-  ¿½¿
  6102.         32-αáºα∩ñ¡«ú«  «íΘÑú« αÑú¿ßΓαá.  àß½¿ ó ¬áτÑßΓóÑ óΓ«α«ú« «»Ñαá¡ñá
  6103.         ¿ß»«½∞ºπÑΓß∩ αÑú¿ßΓα,  Γ« Ñú« αẼÑα ñ«½ªÑ¡ ß«ó»áñáΓ∞ ß  αẼÑα«¼
  6104.         »Ñαó«ú« «»Ñαá¡ñá.
  6105.  
  6106.              çá¼ÑΓ¿¼, τΓ« ¡«¼Ñα »α«óÑα∩Ѽ«ú« í¿Γá  ¼«ªÑΓ  ºáñáóáΓ∞ß∩  ¬á¬
  6107.         αÑú¿ßΓα«¼,  Γᬠ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼,  á »«½Ñ,  ó ¬«Γ«α«¼
  6108.         »α«óÑα∩ÑΓß∩ í¿Γ,  ¼«ªÑΓ »αÑñßΓáó½∩Γ∞ ß«í«⌐ ¬á¬ ∩τÑ⌐¬π »á¼∩Γ¿, Γá¬
  6109.         ¿ αÑú¿ßΓα.  ìá»α¿¼Ñα, πßΓá¡«ó¿Γ∞ Σ½áú »ÑαÑ¡«ßá ó ß«ßΓ«∩¡¿Ñ í¿Γá 5
  6110.         ß½«óá »« áñαÑßπ Table+ebx+esi*2 ¼«ª¡« ß½ÑñπεΘ¿¼ «íαẫ¼:
  6111.  
  6112.                 .
  6113.                 .
  6114.                 .
  6115.                 mov     ax,5
  6116.                 bt      WORD PTR [Table+ebx+esi*2],ax
  6117.                 .
  6118.                 .
  6119.                 .
  6120.  
  6121.              ìπª¡« »«¼¡¿Γ∞  «  Γ«¼,  τΓ«  ¡«¼Ñαá  í¿Γ«ó «Γßτ¿ΓδóáεΓß∩ ß 0
  6122.         (¼½áñΦ¿⌐ í¿Γ) ñ« ßΓáαΦÑú« (¡á¿í«½ÑÑ º¡áτáΘÑú«) í¿Γá. àß½¿ αÑú¿ßΓα
  6123.         AL ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ 80h, Γ« í¿Γ 7 ó αÑú¿ßΓαÑ AL πßΓá¡«ó½Ñ¡.
  6124.  
  6125.              ê¡ßΓαπ¬µ¿∩ BTC  á¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ BT,  Γ«½∞¬« ¬«»¿απѼ«Ñ
  6126.         ó« Σ½áú »ÑαÑ¡«ßá º¡áτÑ¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ñ«»«½¡Ñ¡¿Ñ ºáñá¡¡«ú«
  6127.         í¿Γá.  Æ«  ÑßΓ∞ Σ½áú »ÑαÑ¡«ßá πßΓá¡áó½¿óáÑΓß∩ ó º¡áτÑ¡¿Ñ 1,  Ñß½¿
  6128.         ºáñá¡¡δ⌐ í¿Γ αáóÑ¡ 0,  ¿ ó º¡áτÑ¡¿Ñ 0, Ñß½¿ ºáñá¡¡δ⌐ í¿Γ αáóÑ¡ 1.
  6129.         ê¡ßΓαπ¬µ¿∩  BTC  πßΓαá¡∩ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ ¿¡ßΓαπ¬µ¿¿
  6130.         CMC,  ¬«úñá ΓαÑíπÑΓß∩ ºáñáΓ∞ ß«ßΓ«∩¡¿Ñ Σ½áúá  »ÑαÑ¡«ßá,  «íαáΓ¡«Ñ
  6131.         º¡áτÑ¡¿ε »α«óÑα∩Ѽ«ú« í¿Γá.
  6132.  
  6133.              ê¡ßΓαπ¬µ¿∩ BTR ΓᬪѠá¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ BT,  ¡« »«ß½Ñ ¬«-
  6134.         »¿α«óá¡¿∩ »α«óÑα∩Ѽ«ú« í¿Γá ó« Σ½áú »ÑαÑ¡«ßá Ñú« º¡áτÑ¡¿Ñ  ßΓá¡«-
  6135.         ó¿Γß∩ αáó¡δ¼ 0. Ç¡á½«ú¿τ¡«, ¿¡ßΓαπ¬µ¿∩ BTS πßΓá¡áó½¿óáÑΓ »α«óÑα∩-
  6136.         Ñ¼δ⌐  í¿Γ,  ¬«»¿απѼδ⌐  ó«  Σ½áú  »ÑαÑ¡«ßá,  ó  º¡áτÑ¡¿Ñ  1.  ¥Γ¿
  6137.         ¿¡ßΓαπ¬µ¿¿ »α«óÑન  »«½Ñº¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ á¡á½¿ºá ¿ πßΓá¡«ó¬¿
  6138.         ß«ßΓ«∩¡¿∩ Σ½áúá ó «ñ¡«⌐ «»Ñαᵿ¿ (»α¿ φΓ«¼  »«ñαáºπ¼ÑóáÑΓß∩,  τΓ«
  6139.         ¡Ñ  ¼«ªÑΓ »α«¿º«⌐Γ¿ »αÑαδóá¡¿Ñ ¼Ñªñπ »α«óÑᬫ⌐ Σ½áúá ¿ πßΓá¡«ó¬«⌐
  6140.         Ñú« ó ¡«ó«Ñ º¡áτÑ¡¿Ñ).
  6141.  
  6142.  
  6143.         TASM2 #3-5/䫬              = 144 =
  6144.  
  6145.                                     Åα«ß¼«Γα í¿Γ«ó                             
  6146.         -----------------------------------------------------------------
  6147.  
  6148.              ä½∩ ¡áσ«ªñÑ¡¿∩  »Ñαó«ú«  ¿½¿ »«ß½Ññ¡Ñú« ¡Ñ¡π½Ñó«ú« í¿Γá «»Ñ-
  6149.         αá¡ñá αẼÑα«¼ ó ß½«ó« ¿½¿ ñó«⌐¡«Ñ ß½«ó« »«½Ñº¡« ¿ß»«½∞º«óáΓ∞ ¿¡-
  6150.         ßΓαπ¬µ¿¿  BSF  ¿ BSR.  ê¡ßΓαπ¬µ¿∩ BSF »α«ß¼áΓα¿óáÑΓ ¿ßσ«ñ¡δ⌐ «»Ñ-
  6151.         αá¡ñ,  ¡áτ¿¡á∩ ß í¿Γá 0 (¼½áñΦ¿⌐ í¿Γ), «»αÑñѽ∩∩ »Ñαóδ⌐ ¡Ñ¡π½Ñó«⌐
  6152.         í¿Γ.  àß½¿ óßÑ í¿Γδ «»Ñαá¡ñá-¿ßΓ«τ¡¿¬á ∩ó½∩εΓß∩ ¡π½Ñó묨, Γ« Σ½áú
  6153.         ¡π½∩ «τ¿ΘáÑΓß∩. é »α«Γ¿ó¡«¼ ß½πτáÑ Σ½áú ¡π½∩ πßΓá¡áó½¿óáÑΓß∩, á ó
  6154.         µÑ½Ñó«⌐  αÑú¿ßΓα  (»α¿Ñ¼¡¿¬)  ¬«»¿απÑΓß∩ ¡«¼Ñα »Ñαó«ú« ¡á⌐ñÑ¡¡«ú«
  6155.         ¡Ñ¡π½Ñó«ú« í¿Γá.
  6156.  
  6157.              é ¬áτÑßΓóÑ »α¿¼Ñαá »α¿óÑñѼ  ß½ÑñπεΘ¿⌐  Σαáú¼Ñ¡Γ  »α«úαá¼¼δ,
  6158.         úñÑ  ¿¡ßΓαπ¬µ¿∩  BSF ¿ß»«½∞ºπÑΓß∩,  τΓ«íδ «»αÑñѽ¿Γ∞ αáß»«½«ªÑ¡¿Ñ
  6159.         »Ñαó«ú« (¼½áñΦÑú«) ¡Ñ¡π½Ñó«ú« í¿Γá ó DX.  è«úñá »Ñαóδ⌐  ¡Ñ¡π½Ñó«⌐
  6160.         í¿Γ DX íπñÑΓ «í¡áαπªÑ¡ ó í¿ΓÑ 2, º¡áτÑ¡¿Ñ 2 ºáúαπªáÑΓß∩ ó αÑú¿ßΓα
  6161.         CX.
  6162.  
  6163.                 .
  6164.                 .
  6165.                 .
  6166.                 mov     dx,0001101010101100b
  6167.                 bsf     cx,dx
  6168.                 jnz     AllBitsAreZero
  6169.                 shr     dx,cl
  6170.                 .
  6171.                 .
  6172.                 .
  6173.         AllBitsAreZero:              ; óßÑ í¿Γδ αáó¡δ ¡π½ε
  6174.                 .
  6175.                 .
  6176.                 .
  6177.  
  6178.              CL ¿ß»«½∞ºπÑΓß∩ ºáΓѼ,  ¬á¬ º¡áτÑ¡¿Ñ, ¡á ¬«Γ«α«Ñ ¡πª¡« ßñó¿-
  6179.         ¡πΓ∞ DX,  ó αѺπ½∞ΓáΓÑ τÑú« º¡áτÑ¡¿Ñ CX ßñó¿úáÑΓß∩  ó»αáó«  α«ó¡«
  6180.         ¡áßΓ«½∞¬«,  ß¬«½∞¬«  ¡Ñ«íσ«ñ¿¼«,  τΓ«íδ »ÑαѼÑßΓ¿Γ∞ ¼½áñΦ¿⌐ í¿Γ ó
  6181.         í¿Γ 0.
  6182.  
  6183.              éΓ«α«⌐ «»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿ BFS - φΓ« 16- ¿½¿ 32-αáºα∩ñ¡δ⌐ «í-
  6184.         Θ¿⌐ αÑú¿ßΓα ¿½¿ »α«ß¼áΓα¿óáѼá∩ ∩τÑ⌐¬á »á¼∩Γ¿, á »Ñαóδ⌐ «»Ñαá¡ñ -
  6185.         φΓ« 16- ¿½¿ 32-αáºα∩ñ¡δ⌐ «íΘ¿⌐ αÑú¿ßΓα,  ó ¬«Γ«αδ⌐ íπñÑΓ  ºá»¿ßδ-
  6186.         óáΓ∞ß∩  ¡«¼Ñα  »Ñαó«ú«  ¡Ñ¡π½Ñó«ú« í¿Γá ó »α«ß¼áΓα¿óáѼδσ ñá¡¡δσ.
  6187.         Äíá «»Ñαá¡ñá ñ«½ª¡δ ¿¼ÑΓ∞ «ñ¿¡á¬«óδ⌐ αẼÑα.
  6188.  
  6189.              ê¡ßΓαπ¬µ¿∩ BSR á¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ BFS,  ¡«  »α«ß¼«Γα  «¡á
  6190.         ¡áτ¿¡áÑΓ ß« ßΓáαΦÑú« (¡á¿í«½ÑÑ º¡áτáΘÑú«) í¿Γá «»Ñαá¡ñá-¿ßΓ«τ¡¿¬á
  6191.  
  6192.         TASM2 #3-5/䫬              = 145 =
  6193.  
  6194.         ¬ ¼½áñΦѼπ í¿Γπ.  é ß½ÑñπεΘѼ »α¿¼ÑαÑ ¿¡ñѬߠßΓáαΦÑú«  ¡Ñ¡π½Ñó«ú«
  6195.         í¿Γá ó TestVar (º¡áτÑ¡¿Ñ 27) »«¼ÑΘáÑΓß∩ ó αÑú¿ßΓα EAX:
  6196.  
  6197.                 .
  6198.                 .
  6199.                 .
  6200.         TestVar DD      0FFFFF00h
  6201.                 .
  6202.                 .
  6203.                 .
  6204.                 bsr     eax,[TestVar]
  6205.                 .
  6206.                 .
  6207.                 .
  6208.  
  6209.  
  6210.  
  6211.  
  6212.         TASM2 #3-5/䫬              = 146 =
  6213.  
  6214.                   ÅÑαѼÑΘÑ¡¿Ñ ñá¡¡δσ ß αáßΦ¿αÑ¡¿Ñ¼ »« º¡á¬π ¿½¿ ¡π½ε           
  6215.         -----------------------------------------------------------------
  6216.  
  6217.              ê¡ßΓαπ¬µ¿¿ MOVZX ¿ MOVSX »«ºó«½∩εΓ óá¼ ¬«»¿α«óáΓ∞ 8- ¿½¿ 16-
  6218.         αáºα∩ñ¡«Ñ º¡áτÑ¡¿Ñ ó 16- ¿½¿ 32-αáºα∩ñ¡δ⌐ «íΘ¿⌐ αÑú¿ßΓα íѺ ¡Ñ«í-
  6219.         σ«ñ¿¼«ßΓ¿ ¿ß»«½∞º«óá¡¿∩ ½¿Φ¡¿σ ¿¡ßΓαπ¬µ¿⌐ ñ½∩ αáßΦ¿αÑ¡¿∩ º¡áτÑ¡¿∩
  6220.         ñ«  ºáñá¡¡«ú«  αẼÑαá.  ê¡ßΓαπ¬µ¿∩  MOVZX ºá»«½¡∩ÑΓ ßΓáαΦ¿Ñ í¿Γδ
  6221.         »α¿Ñ¼¡¿¬á ¡π½∩¼¿, á ¿¡ßΓαπ¬µ¿∩ MOVSX αáß»α«ßΓαá¡∩ÑΓ º¡á¬ º¡áτÑ¡¿∩
  6222.         ó  ß««ΓóÑΓßΓó¿¿  ß αẼÑα«¼ »α¿Ñ¼¡¿¬á.  ÄíÑ ¿¡ßΓαπ¬µ¿¿ á¡á½«ú¿τ¡δ
  6223.         ßΓá¡ñáαΓ¡«⌐ ¿¡ßΓαπ¬µ¿¿ MOV.
  6224.  
  6225.              ìá»α¿¼Ñα, αáß»«½áúá∩ ¡áí«α«¼ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086, ñ½∩
  6226.         ¬«»¿α«óá¡¿∩ íѺº¡á¬«ó«ú« º¡áτÑ¡¿∩ ó αÑú¿ßΓαÑ DL ó αÑú¿ßΓα BX ¡πª-
  6227.         ¡« í佫 íδ ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
  6228.  
  6229.                 .
  6230.                 .
  6231.                 .
  6232.                 mov     bl,dl
  6233.                 sub     bh,bh
  6234.                 .
  6235.                 .
  6236.                 .
  6237.  
  6238.              é »α«µÑßß«αÑ 80386 ñ½∩ φΓ«ú« ñ«ßΓáΓ«τ¡« «ñ¡«⌐ ¿¡ßΓαπ¬µ¿¿:
  6239.  
  6240.                 movzx   bx,dl
  6241.  
  6242.              ÉáßΦ¿αÑ¡¿Ñ »« º¡á¬π ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086 óδ-
  6243.         »«½¡¿Γ∞ ÑΘÑ ß½«ª¡ÑÑ. ä½∩ ¬«»¿α«óá¡¿∩ »ÑαѼѡ¡«⌐ ó »á¼∩Γ¿ (ß« º¡á-
  6244.         ¬«¼)  αẼÑα«¼  ó íá⌐Γ TestByte ó DX íѺ ¿ß»«½∞º«óá¡¿∩ ¿¡ßΓαπ¬µ¿¿
  6245.         MOVSX ¡πª¡« í佫 íδ óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿:
  6246.  
  6247.                 .
  6248.                 .
  6249.                 .
  6250.                 mov     al,[TestByte]
  6251.                 cwb
  6252.                 mov     dx,ax
  6253.                 .
  6254.                 .
  6255.                 .
  6256.  
  6257.              ¥Γ« ªÑ ¼«ª¡« ßñѽáΓ∞ ß »«¼«Θ∞ε «ñ¡«⌐ ¿¡ßΓαπ¬µ¿¿:
  6258.  
  6259.                 movsx   dx,[TestByte]
  6260.  
  6261.         TASM2 #3-5/䫬              = 147 =
  6262.  
  6263.  
  6264.              ê¡ßΓαπ¬µ¿¿ MOVZX ¿ MOVSX ¼«úπΓ »ÑαѼÑΘáΓ∞ 8-í¿Γ«óδÑ º¡áτÑ¡¿∩
  6265.         ó 32-í¿Γ«óδÑ αÑú¿ßΓαδ:
  6266.  
  6267.                 mov     eax,al
  6268.  
  6269.  
  6270.  
  6271.  
  6272.         TASM2 #3-5/䫬              = 148 =
  6273.  
  6274.                       ÅαÑ«íαẫóá¡¿Ñ ñá¡¡δσ Γ¿»á DWORD ¿½¿ QWORD               
  6275.         -----------------------------------------------------------------
  6276.  
  6277.              ä½∩ »αÑ«íαẫóá¡¿∩ º¡áτÑ¡¿⌐ ß« º¡á¬«¼ αẼÑα«¼ ó íá⌐Γ ó  αÑ-
  6278.         ú¿ßΓαÑ  AL  ó  º¡áτÑ¡¿∩  ß« º¡á¬«¼ αẼÑα«¼ ó ß½«ó« ¿ º¡áτÑ¡¿⌐ ß«
  6279.         º¡á¬«¼ ó αÑú¿ßΓαÑ AL αẼÑα«¼ ó ß½«ó« ó º¡áτÑ¡¿∩ ß« º¡á¬«¼ αẼÑ-
  6280.         α«¼  ó  ñó«⌐¡«Ñ  ß½«ó« ó »α«µÑßß«αÑ 80386 »αÑñπß¼«ΓαÑ¡δ ß««ΓóÑΓß-
  6281.         ΓóÑ¡¡« ¿¡ßΓαπ¬µ¿¿ CBW ¿ CWD.  é »α«µÑßß«α 80386 ñ«íáó½Ñ¡δ ÑΘÑ ñóÑ
  6282.         ¿¡ßΓαπ¬µ¿¿ »αÑ«íαẫóá¡¿∩, CWDE ¿ CDQ, ¬«Γ«αδÑ «í½ÑúτáεΓ αáí«Γπ ß
  6283.         32-αáºα∩ñ¡δ¼¿ αÑú¿ßΓαἿ »α«µÑßß«αá 80386.
  6284.  
  6285.              ê¡ßΓαπ¬µ¿∩ CWDE »αÑ«íαáºπÑΓ º¡áτÑ¡¿Ñ ß«  º¡á¬«¼  αẼÑα«¼  ó
  6286.         ß½«ó«,  ºá»¿ßá¡¡«Ñ ó αÑú¿ßΓαÑ AX, ó º¡áτÑ¡¿Ñ ß« º¡á¬«¼ αẼÑα«¼ ó
  6287.         ñó«⌐¡«Ñ ß½«ó«,  ΓᬠªÑ ¬á¬ ¿¡ßΓαπ¬µ¿∩ CWD.  Éẽ¿τ¿Ñ ¼Ñªñπ  φΓ¿¼¿
  6288.         ñóπ¼∩ ¿¡ßΓαπ¬µ¿∩¼¿ ß«ßΓ«¿Γ ó Γ«¼,  τΓ« ó Γ« óαѼ∩ ¬á¬  ¿¡ßΓαπ¬µ¿∩
  6289.         CWD »«¼ÑΘáÑΓ 32-αáºα∩ñ¡δ⌐ αѺπ½∞ΓáΓ ó DX:AX,  ¿¡ßΓαπ¬µ¿∩ CWDE »«-
  6290.         ¼ÑΘáÑΓ »«¼ÑΘáÑΓ 32-αáºα∩ñ¡δ⌐ αѺπ½∞ΓáΓ  ó  αÑú¿ßΓα  EAX,  ¬«Γ«αδ⌐
  6291.         ¼«ª¡«  ºáΓѼ  ¿ß»«½∞º«óáΓ∞  ó 32-αáºα∩ñ¡δσ ¿¡ßΓαπ¬µ¿∩σ »α«µÑßß«αá
  6292.         80386.
  6293.  
  6294.              ìá»α¿¼Ñα, ó αѺπ½∞ΓáΓÑ óδ»«½¡Ñ¡¿∩ ¿¡ßΓαπ¬µ¿⌐:
  6295.  
  6296.                 .
  6297.                 .
  6298.                 .
  6299.                 mov     ax,-1
  6300.                 cwde
  6301.                 .
  6302.                 .
  6303.                 .
  6304.  
  6305.         ó αÑú¿ßΓα EAX íπñÑΓ ºá»¿ßá¡« 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ -1.
  6306.  
  6307.              ê¡ßΓαπ¬µ¿∩ CWD  »αÑ«íαáºπÑΓ  º¡áτÑ¡¿Ñ  ß«  º¡á¬«¼ αẼÑα«¼ ó
  6308.         ñó«⌐¡«Ñ ß½«ó« ó αÑú¿ßΓαÑ EAX ó º¡áτÑ¡¿Ñ ß« º¡á¬«¼  (8-íá⌐Γ«ó«Ñ) ó
  6309.         EDX:EAX. ê¡ßΓαπ¬µ¿¿:
  6310.  
  6311.                 .
  6312.                 .
  6313.                 .
  6314.                 mov     eax,-7
  6315.                 cdq
  6316.                 .
  6317.                 .
  6318.                 .
  6319.  
  6320.  
  6321.         TASM2 #3-5/䫬              = 149 =
  6322.  
  6323.         ß«σαá¡∩εΓ º¡áτÑ¡¿Ñ -7 ó 64-í¿Γ«ó«⌐ »áαÑ  αÑú¿ßΓα«ó  EDX:EAX.  Åα¿
  6324.         φΓ«¼  ßΓáαΦÑÑ ß½«ó« αѺπ½∞ΓáΓá (0FFFFFFFh) ºá»¿ßδóáÑΓß∩ ó EDX,  á
  6325.         ¼½áñΦÑÑ ß½«ó« αѺπ½∞ΓáΓá,  º¡áτÑ¡¿Ñ 0FFFFFFF9h (-7) - ó  αÑú¿ßΓαÑ
  6326.         EAX.
  6327.  
  6328.                                  æñó¿ú ¡Ñ߬«½∞¬¿σ ß½«ó                         
  6329.         -----------------------------------------------------------------
  6330.  
  6331.              æñó¿ú ¡Ñ߬«½∞¬¿σ  ß½«ó,  ¡á»α¿¼Ñα ßñó¿ú 32-í¿Γ«ó«ú« º¡áτÑ¡¿∩
  6332.         ¡á 4 í¿Γá ó½Ñó«,  ñ«ßΓáó½∩ÑΓ ó »α«µÑßß«αÑ 8086 ¼¡«ú« σ½«»«Γ, »«ß-
  6333.         ¬«½∞¬π  ¬áªñ«Ñ  ß½«ó« ñ«½ª¡« ßñó¿úáΓ∞ß∩ »« «ñ¡«¼π í¿Γπ,  »α¿ φΓ«¼
  6334.         í¿Γδ »ÑαѼÑΘáεΓß∩ »««τÑαÑñ¡« τÑαѺ Σ½áú »ÑαÑ¡«ßá  ¿º  «ñ¡«ú«  αÑ-
  6335.         ú¿ßΓαá ó ñαπú«⌐.  ê¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80386 SHRD ¿ SHLD ¿ß»αáó-
  6336.         ½∩εΓ φΓπ ß¿Γπᵿε,  «íÑß»Ñτ¿óá∩ ßñó¿ú ¡á ¡Ñ߬«½∞¬« í¿Γ«ó ñóπσ αÑ-
  6337.         ú¿ßΓα«ó ¿½¿ αÑú¿ßΓαá ¿ ∩τÑ⌐¬¿ »á¼∩Γ¿.
  6338.  
  6339.              ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα,  τΓ« 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ ºá»¿ßá¡«  ¡á
  6340.         »α«µÑßß«αÑ  8086 ó αÑú¿ßΓαáσ DX:AX.  Æ«úñá ñ½∩ ßñó¿úá 32-í¿Γ«ó«ú«
  6341.         º¡áτÑ¡¿∩ ó½Ñó« (»« ¡á»αáó½Ñ¡¿ε ¬ ßΓáαΦѼπ í¿Γπ) ¡á 4 í¿Γá  »«ΓαÑ-
  6342.         íπÑΓß∩ ß½ÑñπεΘÑÑ:
  6343.  
  6344.                 .
  6345.                 .
  6346.                 .
  6347.                 shl     ax,1
  6348.                 rcl     dx,1
  6349.                 shl     ax,1
  6350.                 rcl     dx,1
  6351.                 shl     ax,1
  6352.                 rcl     dx,1
  6353.                 shl     ax,1
  6354.                 rcl     dx,1
  6355.                 .
  6356.                 .
  6357.                 .
  6358.  
  6359.              é »α«µÑßß«αÑ 80386 Γ«Γ ªÑ αѺπ½∞ΓáΓ ¼«ª¡« »«½πτ¿Γ∞,  ¿ß»«½∞-
  6360.         ºπ∩ óßÑú« ñóÑ ¿¡ßΓαπ¬µ¿¿:
  6361.  
  6362.                 .
  6363.                 .
  6364.                 .
  6365.                 shld    dx,ax,4
  6366.                 shl     ax,4
  6367.                 .
  6368.  
  6369.         TASM2 #3-5/䫬              = 150 =
  6370.  
  6371.                 .
  6372.                 .
  6373.  
  6374.              (è«¡Ñτ¡«, óßÑ 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ ¼«ª¡« í佫 íδ »α«ßΓ« ºá»¿-
  6375.         ßáΓ∞ ó αÑú¿ßΓα EAX ¿ óδ»«½¡¿Γ∞ ßñó¿ú ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿:
  6376.  
  6377.                 shl     eax,4
  6378.  
  6379.         ¡« ñá¡¡δ⌐  »α¿¼Ñα »αÑñ¡áº¡áτÑ¡ ñ½∩ Γ«ú«,  τΓ«íδ »α«¿½½εßΓα¿α«óáΓ∞
  6380.         »αÑ¿¼πΘÑßΓóá ¿ß»«½∞º«óá¡¿∩ ¿¡ßΓαπ¬µ¿¿ SHLD »«  ßαáó¡Ñ¡¿ε  ß  ¿¡ß-
  6381.         Γαπ¬µ¿∩¼¿ »α«µÑßß«αá 8086.)
  6382.  
  6383.              ÅÑαóδ⌐ «»Ñαá¡ñ  ¿¡ßΓαπ¬µ¿¿  SHLD  - φΓ« 16- ¿½¿ 32-αáºα∩ñ¡δ⌐
  6384.         «íΘ¿⌐ αÑú¿ßΓα ¿½¿ ∩τÑ⌐¬á  »á¼∩Γ¿,  ñ½∩  ¬«Γ«αδσ  ¡πª¡«  óδ»«½¡¿Γ∞
  6385.         ßñó¿ú.  éΓ«α«⌐  «»Ñαá¡ñ  »αÑñßΓáó½∩ÑΓ  ß«í«⌐ 16- ¿½¿ 32-αáºα∩ñ¡δ⌐
  6386.         αÑú¿ßΓα,  ó ¬«Γ«αδ⌐ ¡πª¡« óδ»«½¡¿Γ∞ ßñó¿ú, á ΓαÑΓ¿⌐ «»Ñαá¡ñ - φΓ«
  6387.         τ¿ß½« í¿Γ,  ¡á ¬«Γ«αδÑ ¡πª¡« «ßπΘÑßΓó¿Γ∞ ßñó¿ú. ÉẼÑαδ »Ñαó«ú« ¿
  6388.         óΓ«α«ú«  «»Ñαá¡ñá  ñ«½ª¡δ  ß«ó»áñáΓ∞.   ÆαÑΓ¿⌐   «»Ñαá¡ñ   ñ«½ªÑ¡
  6389.         »αÑñßΓáó½∩Γ∞  ß«í«⌐  ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ ¿½¿ αÑú¿ßΓα CL.  é
  6390.         »«ß½Ññ¡Ñ¼  ß½πτáÑ  µÑ½Ñó«⌐  «»Ñαá¡ñ  ßñó¿úáÑΓß∩  ¡á  τ¿ß½«   í¿Γ,
  6391.         «»αÑñѽ∩Ѽδ⌐ αÑú¿ßΓα«¼ CL.
  6392.  
  6393.              ê¡ßΓαπ¬µ¿∩ SHRD  á¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ SHLD,  «ñ¡á¬« «¡á óδ-
  6394.         »«½¡∩ÑΓ ßñó¿ú ¿º ¡á¿í«½ÑÑ º¡áτáΘÑú« (ßΓáαΦÑú«) í¿Γá ó ¡á»αáó½Ñ¡¿¿
  6395.         ¼½áñΦ¿σ í¿Γ«ó.  é ß½ÑñπεΘѼ »α¿¼ÑαÑ 64-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, ºá»¿ßá¡-
  6396.         ¡«Ñ ó TestQWord ßñó¿úáÑΓß∩ ó»αáó« ¡á 7 í¿Γ:
  6397.  
  6398.                 .
  6399.                 .
  6400.                 .
  6401.                 mov     cl,7
  6402.                 mov     eax,DWORD PTR [TestQWord+4]
  6403.                 shrd    DWORD PTR [TestQWord],eax,cl
  6404.                 shr     eax,cl
  6405.                 mov     DWORD PTR [TestQWord+4],eax
  6406.                 .
  6407.                 .
  6408.                 .
  6409.  
  6410.  
  6411.  
  6412.  
  6413.         TASM2 #3-5/䫬              = 151 =
  6414.  
  6415.                                 ôß½«ó¡á∩ πßΓá¡«ó¬á í¿Γ                         
  6416.         -----------------------------------------------------------------
  6417.  
  6418.              ÄíΘÑÑ »α¿¼Ñ¡Ñ¡¿Ñ ñ½∩ πß½«ó¡δσ »α«óÑ᫬ ¿ »ÑαÑσ«ñ«ó ß«ßΓ«¿Γ ó
  6419.         πßΓá¡«ó¬Ñ º¡áτÑ¡¿∩ ∩τÑ⌐¬¿  »á¼∩Γ¿,  τΓ«íδ  «ΓαếΓ∞  «»αÑñѽѡ¡«Ñ
  6420.         ß«ßΓ«∩¡¿Ñ.  ìá»α¿¼Ñα, ¼«ªÑΓ «¬áºáΓ∞ß∩ ªÑ½áΓѽ∞¡δ¼ πßΓá¡«ó¿Γ∞ º¡á-
  6421.         τÑ¡¿Ñ ñóπσ »ÑαѼѡ¡δσ,  τΓ« ñóÑ »ÑαѼѡ¡δÑ αáó¡δ, π¬áºáΓѽ∞ αáóÑ¡
  6422.         ¡π½ε,  ¿½¿  ó  »αÑñδñπΘÑ⌐  «»Ñαᵿ¿ íδ½ πßΓá¡«ó½Ñ¡ Σ½áú »ÑαÑ¡«ßá.
  6423.         Åα«µÑßß«α 8086 ñá½Ñ¬« ¡Ñ ¿ñÑá½Ñ¡ ñ½∩ óδ»«½¡Ñ¡¿∩  Γá¬¿σ  «»Ñαᵿ⌐,
  6424.         Γᬠ¬á¬ ñ½∩ ñ½∩ πßΓá¡«ó¬¿ Σ½áú«ó,  τΓ«íδ «ΓαếΓ∞ αѺπ½∞ΓáΓδ »α«-
  6425.         óÑન πß½«ó¿∩, ΓαÑíπÑΓß∩ ¡Ñ߬«½∞¬« ¿¡ßΓαπ¬µ¿⌐. é »α«µÑßß«αÑ 80386
  6426.         ñ½∩  π߬«αÑ¡¿∩  Γá¬¿σ «»Ñαᵿ⌐ »α«óÑન ¿ πßΓᡫ󬿠»αÑñπß¼«ΓαÑ¡á
  6427.         ¼«Θ¡á∩ úαπ»»á ¿¡ßΓαπ¬µ¿⌐ SET.
  6428.  
  6429.              ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα, τΓ« óδ σ«Γ¿ΓÑ πßΓá¡«ó¿Γ∞ »ÑαѼѡ¡πε ó
  6430.         »á¼∩Γ¿ TestFlag Γ«½∞¬« ó Γ«¼ ß½πτáÑ,  Ñß½¿ πßΓá¡«ó½Ñ¡ ßΓáαΦ¿⌐ í¿Γ
  6431.         αÑú¿ßΓαá  AX.  ìá  »α«µÑßß«αÑ  8086  óá¼ »α¿Φ½«ß∞ íδ ßñѽáΓ∞ ß½Ñ-
  6432.         ñπεΘÑÑ:
  6433.  
  6434.                 .
  6435.                 .
  6436.                 .
  6437.                 mov     [TestFlag],0            ; »αÑñ»«½«ª¿¼, τΓ«
  6438.                                                 ; ßΓáαΦ¿⌐ í¿Γ ¡Ñ
  6439.                                                 ; πßΓá¡«ó½Ñ¡
  6440.                 test    ax,80h
  6441.                 jz      MSBNotSet
  6442.                 mov     [TestFlag],1
  6443.         MSBNotSet:
  6444.                 .
  6445.                 .
  6446.                 .
  6447.  
  6448.              é »α«µÑßß«αÑ  80386 ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿:
  6449.  
  6450.                 .
  6451.                 .
  6452.                 .
  6453.                 test    ah,80h
  6454.                 setnz   [TestFlag]
  6455.                 .
  6456.                 .
  6457.                 .
  6458.  
  6459.              Åα¿ φΓ«¼ TestFlag íπñÑΓ πßΓá¡«ó½Ñ¡á ó º¡áτÑ¡¿Ñ 1, Ñß½¿ í¿Γ 7
  6460.         αÑú¿ßΓαá AH αáóÑ¡ 1, ¿ ó º¡áτÑ¡¿Ñ 0, Ñß½¿ í¿Γ 7 αÑú¿ßΓαá AH αáóÑ¡
  6461.  
  6462.         TASM2 #3-5/䫬              = 152 =
  6463.  
  6464.         0.
  6465.  
  6466.              Åα«óÑα¬π ó  ½εí«¼  ¿º  º¡á¬«¼δσ óá¼ πß½«ó¡δσ »ÑαÑσ«ñáσ ¼«ª¡«
  6467.         óδ»«½¡¿Γ∞ ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ SET. ê¡ßΓαπ¬µ¿∩ SETNC πßΓá¡áó½¿óá-
  6468.         ÑΓ  µÑ½Ñó«⌐ «»Ñαá¡ñ ó º¡áτÑ¡¿Ñ 1,  Ñß½¿ Σ½áú »ÑαÑ¡«ßá αáóÑ¡ 0,  ¿
  6469.         ßíαáßδóáÑΓ º¡áτÑ¡¿Ñ µÑ½Ñó«ú« «»Ñαá¡ñá ó 0, Ñß½¿ Σ½áú »ÑαÑ¡«ßá αá-
  6470.         óÑ¡  1.  ê¡ßΓαπ¬µ¿∩ SETS πßΓá¡áó½¿óáÑΓ »α¿Ñ¼¡¿¬,  Ñß½¿ Σ½áú º¡á¬á
  6471.         αáóÑ¡ 1,  ¿ ßíαáßδóáÑΓ Ñú«,  Ñß½¿ Σ½áú º¡á¬á αáóÑ¡ 0 ¿ Γ. ñ. Ä»Ñ-
  6472.         αá¡ñ  ¿¡ßΓαπ¬µ¿¿  SET  ¼«ªÑΓ  íδΓ∞  8-í¿Γ«óδ¼ «íΘ¿¼ αÑú¿ßΓα«¼ ¿½¿
  6473.         8-í¿Γ«ó«⌐ »ÑαѼѡ¡«⌐ ó »á¼∩Γ¿. 16- ¿ 32-αáºα∩ñ¡δÑ «»Ñαá¡ñδ ¡Ñ ñ«-
  6474.         »π߬áεΓß∩.
  6475.  
  6476.  
  6477.  
  6478.  
  6479.         TASM2 #3-5/䫬              = 153 =
  6480.  
  6481.                             çáúαπº¬á αÑú¿ßΓα«ó SS, FS ¿ GS                     
  6482.         -----------------------------------------------------------------
  6483.  
  6484.              ê¡ßΓαπ¬µ¿∩ »α«µÑßß«αá 8086 LDS »«ºó«½∩ÑΓ óá¼  ºáúαπªáΓ∞  ¬á¬
  6485.         αÑú¿ßΓα DS,  Γᬠ¿ «ñ¿¡ ¿º «íΘ¿σ αÑú¿ßΓα«ó ¿º »á¼∩Γ¿ ó «ñ¡«⌐ ¿¡ß-
  6486.         Γαπ¬µ¿¿,  »«ºó«½∩∩, Γᬿ¼ «íαẫ¼, «τÑ¡∞ φΣΣÑ¬Γ¿ó¡« πßΓá¡áó½¿óáΓ∞
  6487.         ñá½∞¡¿Ñ  π¬áºáΓѽ¿.  ê¡ßΓαπ¬µ¿∩ LES «íÑß»Ñτ¿óáÑΓ á¡á½«ú¿τ¡πε ó«º-
  6488.         ¼«ª¡«ßΓ∞,  ¡« ó¼ÑßΓ« DS ºáúαπªáÑΓ αÑú¿ßΓα ES.  é »α«µÑßß«αÑ 80386
  6489.         ñ½∩  ºáúαπº¬¿ ñá½∞¡¿σ π¬áºáΓѽÑ⌐ ñ«íáó½Ñ¡δ ¿¡ßΓαπ¬µ¿¿ LSS,  LFS ¿
  6490.         LGS, ¬«Γ«αδÑ ºáúαπªáεΓ ñá½∞¡¿Ñ π¬áºáΓѽ¿ ¡á «ß¡«óÑ ßÑú¼Ñ¡Γ¡δσ αÑ-
  6491.         ú¿ßΓα«ó SS, FS ¿ GS ß««ΓóÑΓßΓóÑ¡¡«.
  6492.  
  6493.              ìá»α¿¼Ñα, ó  ß½ÑñπεΘÑ⌐  »α«úαἼѠó GS:BX ºáúαπªáÑΓß∩ π¬áºá-
  6494.         Γѽ∞ ñá½∞¡Ñú«  Γ¿»á  ¡á  í¿Γ«óδ⌐  ¼áßß¿ó  ó¿ñÑ«»á¼∩Γ¿  »«  áñαÑßπ
  6495.         A000:0000:
  6496.  
  6497.                 .
  6498.                 .
  6499.                 .
  6500.         DataSeg SEGMENT USE16
  6501.         ScreenPointer   LABEL   DWORD
  6502.                 dw      0
  6503.                 dw      0A000h
  6504.         DataSeg ENDS
  6505.                 .
  6506.                 .
  6507.                 .
  6508.         CodeSeg ENDS
  6509.                 .
  6510.                 .
  6511.                 .
  6512.         CodeSeg SEGMENT USE16
  6513.                 ASSUME  CS:CodeSeg,DS:DataSeg
  6514.                 mov     ax,DataSeg
  6515.                 mov     ds,ax
  6516.                 .
  6517.                 .
  6518.                 .
  6519.                 lqs     bx,[ScreenPointer]
  6520.                 .
  6521.                 .
  6522.                 .
  6523.         CodeSeg ENDS
  6524.                 .
  6525.                 .
  6526.                 .
  6527.  
  6528.         TASM2 #3-5/䫬              = 154 =
  6529.  
  6530.  
  6531.              èᬠ¿ ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿⌐ LDS ¿ LES  ß  »«¼«Θ∞ε  ¿¡ßΓαπ¬µ¿⌐
  6532.         LSS,  LFS  ¿  LGS  ¼«ª¡« ºáúαπªáΓ∞ π¬áºáΓѽ¿ Γ¿»á SMALL ¿½¿ LARGE
  6533.         (ß¼. αáºñѽ "48-í¿Γ«óδ⌐ Γ¿» ñá¡¡δσ FWORD").
  6534.  
  6535.  
  6536.  
  6537.  
  6538.         TASM2 #3-5/䫬              = 155 =
  6539.  
  6540.                                                                                
  6541.         ÉáßΦ¿αÑ¡¡δÑ ¿¡ßΓαπ¬µ¿¿
  6542.         -----------------------------------------------------------------
  6543.  
  6544.              é »α«µÑßß«α  80386 ¡Ñ Γ«½∞¬« ñ«íáó½Ñ¡δ ¡«óδÑ ¼«Θ¡δÑ ¿¡ßΓαπ¬-
  6545.         µ¿¿   »«   ßαáó¡Ñ¡¿ε    ß    ¡áí«α«¼    ¿¡ßΓαπ¬µ¿⌐    »α«µÑßß«α«¼
  6546.         8086/80186/80286,  ¡«  ΓᬪѠαáßΦ¿αÑ¡δ ¿¼ÑεΘ¿Ñß∩ ¿¡ßΓαπ¬µ¿¿.  ¥Γ«
  6547.         ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿:
  6548.  
  6549.                 CMPS    JC      JNAE    JNLE    JPO     OUTS
  6550.                 IMUL    JCXZ    JNB     JNO     JS      POPA
  6551.                 INS     JE      JNBE    JNP     JZ      POPF
  6552.                 IRET    JG      JNC     JNS     LODS    PUSHA
  6553.                 JA      JGE     JNE     JNZ     LOOP    PUSHF
  6554.                 JAE     JL      JNG     JO      MOV     SCAS
  6555.                 JB      JLE     JNGE    JP      MOVS    STOS
  6556.                 JBE     JNA     JNL     JPE
  6557.  
  6558.              èα«¼Ñ Γ«ú«, ó »α«µÑßß«αÑ 80386 ¼¡«ú¿Ñ ¿¡ßΓαπ¬µ¿¿ ¼«úπΓ αáí«-
  6559.         ΓáΓ∞ ß 32-αáºα∩ñ¡δ¼¿ «»Ñαá¡ñἿ,  σ«Γ∩ ¿σ ¼¡Ñ¼«¡¿¬á ∩ó¡« ¡Ñ ¿º¼Ñ-
  6560.         ¡¿½áß∞.
  6561.  
  6562.                            æ»Ñµ¿á½∞¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿¿ MOV                   
  6563.         -----------------------------------------------------------------
  6564.  
  6565.              Åα«µÑßß«α 80386 »«ññÑনóáÑΓ  ß»Ñµ¿á½∞¡δÑ  Σ«α¼δ  ¿¡ßΓαπ¬µ¿¿
  6566.         MOV, ¬«Γ«αδÑ »«ºó«½∩εΓ »α«úαá¼¼Ñ, αáí«ΓáεΘÑ⌐ ¡á πα«ó¡Ñ »α¿«α¿ΓÑΓá
  6567.         0 (πα«óÑ¡∞ ß ¼á¬ß¿¼á½∞¡δ¼¿ »«½¡«¼«τ¿∩¼¿) »ÑαѼÑΘáΓ∞  ñá¡¡δÑ ¼Ñªñπ
  6568.         32-αáºα∩ñ¡δ¼¿ «íΘ¿¼¿ αÑú¿ßΓαἿ ¿ ß»Ñµ¿á½∞¡δ¼¿ αÑú¿ßΓαἿ »α«µÑß-
  6569.         ß«αá 80386. Æá¬¿¼ ß»«ß«í«¼ ¼«ª¡« «íαáΘáΓ∞ß∩ ¬ ß½ÑñπεΘ¿¼ αÑú¿ßΓαá¼
  6570.         »α«µÑßß«αá 80386:
  6571.  
  6572.                 CR0     DR0     DR3     TR6
  6573.                 CR2     DR1     DR6     TR7
  6574.                 CR3     DR2     DR7
  6575.  
  6576.              ìá»α¿¼Ñα, «Γ½áñ«τ¡δ⌐  αÑú¿ßΓα  DR0  ¼«ª¡« ºáúαπº¿Γ∞ áñαÑß«¼,
  6577.         ¬«Γ«αδ⌐ íπñÑΓ »ÑαÑσóáΓδóáΓ∞ß∩, ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿:
  6578.  
  6579.                 .
  6580.                 .
  6581.                 .
  6582.                 .386P
  6583.                 .
  6584.                 .
  6585.                 .
  6586.  
  6587.         TASM2 #3-5/䫬              = 156 =
  6588.  
  6589.                 mov     eax,OFFSET FunctionEntry
  6590.                 mov     dr0,eax
  6591.                 .
  6592.                 .
  6593.                 .
  6594.  
  6595.         á ß¿ßΓѼ¡δÑ π»αáó½∩εΘ¿Ñ Σ½áú¿ ¼«ª¡« ºáúαπº¿Γ∞ ¿º π»αáó½∩εΘÑú« αÑ-
  6596.         ú¿ßΓαá CR0 ó αÑú¿ßΓα EDX ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿:
  6597.  
  6598.                 .
  6599.                 .
  6600.                 .
  6601.                 .386P
  6602.                 .
  6603.                 .
  6604.                 .
  6605.                 mov     edx,cr0
  6606.                 .
  6607.                 .
  6608.                 .
  6609.  
  6610.              çá¼ÑΓ¿¼, τΓ« τΓ«íδ Æπαí« ÇßßѼí½Ñα ¼«ú áßßÑ¼í½¿α«óáΓ∞ ß»Ñµ¿-
  6611.         á½∞¡δÑ  Σ«α¼δ ¿¡ßΓαπ¬µ¿¿ MOV,  ñ«½ª¡á ñÑ⌐ßΓó«óáΓ∞ ñ¿αÑ¬Γ¿óá .386É
  6612.         (Γᬠ¬á¬ «¡¿ ∩ó½∩εΓß∩ »α¿ó¿½Ñú¿α«óá¡¡δ¼¿ ¿¡ßΓαπ¬µ¿∩¼¿).
  6613.  
  6614.              é «íΘѼ ß½πτáѠ߻ѵ¿á½∞¡δÑ αÑú¿ßΓαδ,  ¬ ¬«Γ«αδ¼ ¼«ª¡«  »«½π-
  6615.         τ¿Γ∞  ñ«ßΓπ»  ß  »«¼«Θ∞ε ¡«óδσ Σ«α¼ ¿¡ßΓαπ¬µ¿¿ MOV,  ¿ß»«½∞ºπεΓß∩
  6616.         Γ«½∞¬« ß¿ßΓѼ¡δ¼ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼ ¿ ¡Ñ ¿ß»«½∞ºπεΓß∩ »α¿¬-
  6617.         ½áñ¡δ¼¿ »α«úαἼἿ.
  6618.  
  6619.  
  6620.  
  6621.  
  6622.         TASM2 #3-5/䫬              = 157 =
  6623.  
  6624.                                                                                
  6625.         32-αáºα∩ñ¡δÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086
  6626.         -----------------------------------------------------------------
  6627.  
  6628.              î¡«ú¿Ñ ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 8086 αáßΦ¿αÑ¡δ  Γᬿ¼  «íαẫ¼,
  6629.         τΓ«íδ ¼«ª¡« í佫 ¿ß»«½∞º«óáΓ∞ ¡«óδѠ󫺼«ª¡«ßΓ¿ áñαÑßᵿ¿ ¿ ¡«óδÑ
  6630.         «»Ñαá¡ñδ »α«µÑßß«αá 80386. æ½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ óδ»«½¡∩ÑΓ 32-αáº-
  6631.         α∩ñ¡«Ñ  óδτ¿Γá¡¿Ñ 32-í¿Γ«ó«ú« αÑú¿ßΓαá EBX ¿º 32-í¿Γ«ó«⌐ »ÑαѼѡ-
  6632.         ¡«⌐ »« áñαÑßπ EBP+EAX*8+10h. Åα¿ φΓ«¼ ñ½∩ ßß佬¿ ¡á µÑ½Ñóπε ∩τÑ⌐-
  6633.         ¬π »á¼∩Γ¿ ¿ß»«½∞ºπεΓß∩ 32-αáºα∩ñ¡δÑ αÑú¿ßΓαδ:
  6634.  
  6635.                 sub     DWORD PTR [ebp+eax*8+10h],ebx
  6636.  
  6637.              ä½∩ 32-αáºα∩ñ¡δσ ó«º¼«ª¡«ßΓÑ⌐, ñ«íáó½Ñ¡¡δσ ó í«½∞Φ¿¡ßΓó« ¿¡-
  6638.         ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086,  ¡Ñ ΓαÑíπÑΓß∩ ¡«óá∩ ¼¡Ñ¼«¡¿¬á  ¿¡ßΓαπ¬-
  6639.         µ¿⌐.  ìá 32-αáºα∩ñ¡δ⌐ σáαá¬ΓÑα «»Ñαᵿ¿ π¬áºδóáεΓ «íδτ¡« «»Ñαá¡ñδ
  6640.         ¿½¿ Γ¿» ßÑú¼Ñ¡Γá,  ó ¬«Γ«α«¼ óδ»«½¡∩ÑΓß∩ «»Ñαᵿ∩. Äñ¡á¬« ñ½∩ ¡Ñ-
  6641.         ¬«Γ«αδσ ¿¡ßΓαπ¬µ¿⌐ »α«µÑßß«αá 8086 »«ΓαÑí«óá½áß∞ ¡«óá∩ ¼¡Ñ¼«¡¿¬á,
  6642.         π¬áºδóáεΘá∩,  τΓ« «¡¿ αáßΦ¿αÑ¡δ ñ« 32-αáºα∩ñ¡δσ ó«º¼«ª¡«ßΓÑ⌐ »α«-
  6643.         µÑßß«αá 80386. äá½ÑÑ ¼δ αáßß¼«Γα¿¼ φΓ¿ ¿¡ßΓαπ¬µ¿¿.
  6644.  
  6645.                           ì«óδÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿⌐ LOOP ¿ JCXZ                  
  6646.         -----------------------------------------------------------------
  6647.  
  6648.              ê¡ßΓαπ¬µ¿¿ LOOP,  LOOPE,  LOOPNE ¿ JCXZ  αáí«ΓáεΓ  «íδτ¡«  ß
  6649.         16-αáºα∩ñ¡δ¼ αÑú¿ßΓα«¼ CX. Åα«µÑßß«α 8086 »αÑñπß¼áΓα¿óáÑΓ ¬á¬ 16-
  6650.         αáºα∩ñ¡πε,  Γᬠ¿ 32-αáºα∩ñ¡πε óÑαß¿ε φΓ¿σ ¿¡ßΓαπ¬µ¿⌐. 32-αáºα∩ñ-
  6651.         ¡δÑ óÑαß¿¿ ó¼ÑßΓ« αÑú¿ßΓαá CX ¼«úπΓ αáí«ΓáΓ∞ ß αÑú¿ßΓα«¼ ECX.
  6652.  
  6653.              ê¡ßΓαπ¬µ¿¿ LOOP,  LOOPE ¿ LOOPNE ¿ß»«½∞ºπεΓ ó ¬áτÑßΓóÑ ßτÑΓ-
  6654.         τ¿¬á µ¿¬½á αÑú¿ßΓα CX ¿½¿ ECX, ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á ßÑú¼Ñ¡Γá (16
  6655.         -í¿Γ«ó«ú«  ¿½¿ 32-í¿Γ«ó«ú«).  àß½¿ óδ σ«Γ¿ΓÑ «íÑß»Ñτ¿Γ∞,  τΓ«íδ ó
  6656.         ¬áτÑßΓóÑ αÑú¿ßΓαá π»αáó½Ñ¡¿∩ µ¿¬½«¼ óßÑúñá  ¿ß»«½∞º«óá½ß∩ αÑú¿ßΓα
  6657.         CX  (ñáªÑ  ó  32-í¿Γ«ó«¼ ßÑú¼Ñ¡ΓÑ),  Γ« ¿ß»«½∞ºπ⌐ΓÑ ß½«ó¡πε Σ«α¼π
  6658.         ñá¡¡δσ ¿¡ßΓαπ¬µ¿⌐ (LOOPW,  LOOPWE ¿½¿ LOOPWNE).  Ç¡á½«ú¿τ¡«, Ñß½¿
  6659.         ¡πª¡« «íÑß»Ñτ¿Γ∞ ¿ß»«½∞º«óá¡¿Ñ ó ¬áτÑßΓóÑ π»αáó½∩εΘÑú« µ¿¬½«¼ αÑ-
  6660.         ú¿ßΓαá  αÑú¿ßΓα  ECX,  ¿ß»«½∞ºπ⌐ΓÑ  ß½ÑñπεΘ¿Ñ  Σ«α¼δ  ¿¡ßΓαπ¬µ¿⌐:
  6661.         LOOPD, LOOPDE ¿ LOOPDNE.
  6662.  
  6663.              ê¡ßΓαπ¬µ¿∩ LOOPD  π¼Ñ¡∞ΦáÑΓ ß«ñÑন¼«Ñ ECX ¿ óδ»«½¡∩ÑΓ »ÑαÑ-
  6664.         σ«ñ »« π¬áºá¡¡«¼π ß¼ÑΘÑ¡¿ε, Ñß½¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «Γ½¿τ¡« «Γ
  6665.         ¡π½∩. ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ µ¿¬½ óδ»«½¡∩ÑΓß∩ 8000000000h αáº:
  6666.  
  6667.                 .
  6668.                 .
  6669.                 .
  6670.  
  6671.         TASM2 #3-5/䫬              = 158 =
  6672.  
  6673.                 mov     ecx,8000000000h
  6674.         LoopTop:
  6675.                 loopd   LoopTop
  6676.                 .
  6677.                 .
  6678.                 .
  6679.  
  6680.              ê¡ßΓαπ¬µ¿∩ LOOPDE π¼Ñ¡∞ΦáÑΓ ß«ñÑন¼«Ñ ECX αÑú¿ßΓαá ¿ óδ»«½-
  6681.         ¡∩ÑΓ »ÑαÑσ«ñ ¡á µÑ½Ñó«Ñ ß¼ÑΘÑ¡¿Ñ,  »«¬á Σ½áú ¡π½∩ αáóÑ¡ 1,  á ECX
  6682.         ¡Ñ αáóÑ¡ 0. (LOOPDZ - φΓ« ÑΘÑ «ñ¡á Σ«α¼á Γ«⌐ ªÑ ¿¡ßΓαπ¬µ¿¿.) Ç¡á-
  6683.         ½«ú¿τ¡«, ¿¡ßΓαπ¬µ¿∩ LOOPDNE π¼Ñ¡∞ΦáÑΓ º¡áτÑ¡¿Ñ αÑú¿ßΓαá ECX ¿ »Ñ-
  6684.         αÑσ«ñ¿Γ  »« µÑ½Ñó«¼π ß¼ÑΘÑ¡¿ε,  »«¬á Σ½áú ¡π½∩ αáóÑ¡ 0,  á ECX ¡Ñ
  6685.         αáóÑ¡ 0. (LOOPDNZ - φΓ« φ¬ó¿óá½Ñ¡Γ¡á∩ ¿¡ßΓαπ¬µ¿∩.) ìá»α¿¼Ñα, ß½Ñ-
  6686.         ñπεΘ¿⌐ µ¿¬½ »«óΓ«α∩ÑΓß∩, »«¬á º¡áτÑ¡¿Ñ, ßτ¿ΓδóáѼ«Ñ ¿º »«αΓá óó«-
  6687.         ñá-óδó«ñá ó αÑú¿ßΓα DX ¡Ñ ßΓá¡ÑΓ αáó¡δ¼ 09h ¿½¿ »α«óÑα¬á »«αΓá ¡Ñ
  6688.         íπñÑΓ óδ»«½¡Ñ¡á 1000000000h αáº:
  6689.  
  6690.                 .
  6691.                 .
  6692.                 .
  6693.                 mov     ecs,1000000000h
  6694.         LoopTop:
  6695.                 in      al,dx
  6696.                 cmp     al,09h
  6697.                 loopdne LoopTop
  6698.                 jnz     TimeOut
  6699.                 .
  6700.                 .
  6701.                 .
  6702.         TimeOut:
  6703.                 .
  6704.                 .
  6705.                 .
  6706.  
  6707.              ÄΓ¼ÑΓ¿¼, τΓ« ñÑ⌐ßΓó¿Ñ ¿¡ßΓαπ¬µ¿¿ JNZ ó ñá¡¡«¼ »α¿¼ÑαÑ  «Γαá-
  6708.         ªáÑΓ αѺπ½∞ΓáΓ ßαáó¡Ñ¡¿∩,  á ¡Ñ ¿¡ßΓαπ¬µ¿¿ LOOPDNE,  Γᬠ¬á¬ ¿¡ß-
  6709.         Γαπ¬µ¿¿ µ¿¬½á ¡Ñ ó½¿∩εΓ ¡á ß«ßΓ«∩¡¿Ñ Σ½áú«ó.  ê¡ßΓαπ¬µ¿∩ JCXZ óδ-
  6710.         »«½¡∩ÑΓ  »ÑαÑσ«ñ,  Ñß½¿ ß«ñÑন¼«Ñ CX αáó¡« 0,  á JECXZ óδ»«½¡∩ÑΓ
  6711.         »ÑαÑσ«ñ, Ñß½¿ αáó¡« ¡π½ε ß«ñÑন¼«Ñ ECX. ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ µ¿¬½
  6712.         ¼«ªÑΓ αáí«ΓáΓ∞ ß 32-í¿Γ«ó묨 ßτÑΓτ¿¬á¼¿.
  6713.  
  6714.                 .
  6715.                 .
  6716.                 .
  6717.         LoopTop:
  6718.                 jecxz   LoopEnd
  6719.  
  6720.         TASM2 #3-5/䫬              = 159 =
  6721.  
  6722.                 .
  6723.                 .
  6724.                 .
  6725.                 jmp     LoopTop
  6726.         LoopEnd:
  6727.                 .
  6728.                 .
  6729.                 .
  6730.  
  6731.  
  6732.  
  6733.  
  6734.         TASM2 #3-5/䫬              = 160 =
  6735.  
  6736.                            ì«óδÑ óÑαß¿¿ ßΓ᫬«óδσ ¿¡ßΓαπ¬µ¿⌐                   
  6737.         -----------------------------------------------------------------
  6738.  
  6739.              é »α«µÑßß«αÑ 80386 óßÑ ßΓ᫬«óδÑ ¿¡ßΓαπ¬µ¿¿ ¼«úπΓ αáí«ΓáΓ∞ ß
  6740.         íá⌐ΓἿ,  ß½«óἿ  ¿½¿ ñó«⌐¡δ¼¿ ß½«óἿ.  éÑαß¿¿ φΓ¿σ ¿¡ßΓαπ¬µ¿⌐,
  6741.         αáí«ΓáεΘ¿Ñ ß ñó«⌐¡δ¼¿ ß½«óἿ,  »α«ßΓ« ºá¬á¡τ¿óáεΓß∩ íπ¬ó«⌐ D,  á
  6742.         ¡Ñ íπ¬óἿ W ¿½¿ B. ¥Γ« ß½ÑñπεΘ¿Ñ ¿¡ßΓαπ¬µ¿¿:
  6743.  
  6744.                 CMPSD   MOVSD   SCASD
  6745.                 INSD    OUTSD   STOSD
  6746.                 LODSD
  6747.  
  6748.              èáªñá∩ ¿º  φΓ¿σ ¿¡ßΓαπ¬µ¿⌐ αáí«ΓáÑΓ ßαáºπ ß 32 í¿ΓἿ ñá¡¡δσ
  6749.         ¿ πóѽ¿τ¿óáÑΓ ¿½¿ π¼Ñ¡∞ΦáÑΓ »α¿ ¬áªñ«¼ »«óΓ«αÑ¡¿¿ ß««ΓóÑΓßΓóπεΘ¿⌐
  6750.         αÑú¿ßΓα-π¬áºáΓѽ∞ ¡á 4. ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ
  6751.         ¿¡ßΓαπ¬µ¿∩ MOVSD ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¬«»¿α«óá¡¿∩ ñóπσ  ñó«⌐¡δσ ß½«ó,
  6752.         ¡áτ¿¡á∩  ß« ß¼ÑΘÑ¡¿∩ DwordTable ó ñóá ñó«⌐¡δσ ß½«óá, ¡áτ¿¡áεΘ¿σß∩
  6753.         ß« ß¼ÑΘÑ¡¿∩ Buffer:
  6754.  
  6755.                 .
  6756.                 .
  6757.                 .
  6758.                 cld
  6759.                 mov     si,OFFSET DwordTable
  6760.                 mov     di,OFFSET Buffer
  6761.                 mov     cx,2
  6762.                 rep     movsd
  6763.                 .
  6764.                 .
  6765.                 .
  6766.  
  6767.              Åα¿ φΓ«¼ αѺπ½∞ΓáΓ ß««ΓóÑΓßΓóπÑΓ ß½ÑñπεΘÑ¼π ¬«ñπ,  ó ¬«Γ«α«¼
  6768.         ¿ß»«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ MOVSB.
  6769.  
  6770.                 .
  6771.                 .
  6772.                 .
  6773.                 cld
  6774.                 mov     si,OFFSET DwordTable
  6775.                 mov     di,OFFSET Buffer
  6776.                 mov     cx,8
  6777.  
  6778.                 rep     movsb
  6779.                 .
  6780.                 .
  6781.                 .
  6782.  
  6783.         TASM2 #3-5/䫬              = 161 =
  6784.  
  6785.  
  6786.              Äñ¿¡ ¿º ß»«ß«í«ó αáßß¼«ΓαÑ¡¿∩ ßΓ᫬«óδσ ¿¡ßΓαπ¬µ¿⌐ ß«ßΓ«¿Γ ó
  6787.         Γ«¼, τΓ« ßΓ᫬«óδÑ ¿¡ßΓαπ¬µ¿¿ αẼÑα«¼ ó ñó«⌐¡«Ñ ß½«ó« á¡á½«ú¿τ¡δ
  6788.         ßΓ᫬«óδ¼ ¿¡ßΓαπ¬µ¿∩¼ αẼÑα«¼ ó ß½«ó«, »«ñ«í¡« Γ«¼π, ¬á¬ ßΓ᫬«-
  6789.         óδÑ  ¿¡ßΓαπ¬µ¿¿ αẼÑα«¼ ó ß½«ó« ß««ΓóÑΓßΓóπεΓ íá⌐Γ«óδ¼ ßΓ᫬«óδ¼
  6790.         ¿¡ßΓαπ¬µ¿∩¼.
  6791.  
  6792.  
  6793.  
  6794.  
  6795.         TASM2 #3-5/䫬              = 162 =
  6796.  
  6797.                                                                                
  6798.         ê¡ßΓαπ¬µ¿∩ IRETD
  6799.         -----------------------------------------------------------------
  6800.  
  6801.              ê¡ßΓαπ¬µ¿∩ IRETD  á¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ IRET.  Ä¡á ¿ºó½Ñ¬áÑΓ
  6802.         ¿º ßΓѬá EIP,  á ºáΓѼ CS,  ¬á¬ ñó«⌐¡«Ñ ß½«ó« («Γíαáßδóá∩ ßΓáαΦÑÑ
  6803.         ß½«ó«), »«ß½Ñ τÑú« ¿ºó½Ñ¬áÑΓ EFLAGS, ¬á¬ ñó«⌐¡«Ñ ß½«ó«.
  6804.  
  6805.                                                                                
  6806.         ê¡ßΓαπ¬µ¿¿ PUSHFD ¿ POPFD
  6807.         -----------------------------------------------------------------
  6808.  
  6809.              ê¡ßΓαπ¬µ¿∩ PUSHFD ºá¡«ß¿Γ ó ßΓѬ »«½¡δ⌐ 32-αáºα∩ñ¡δ⌐ αÑú¿ßΓα
  6810.         Σ½áú«ó »α«µÑßß«αá 80386. ê¡ßΓαπ¬µ¿∩ POPFD ¿ºó½Ñ¬áÑΓ ¿º ßΓѬᠻ«½-
  6811.         ¡δ⌐ 32-αáºα∩ñ¡δ⌐ αÑú¿ßΓα Σ½áú«ó.
  6812.  
  6813.              ê¡ßΓαπ¬µ¿¿ ªÑ PUSHF ¿ POPF ºá¡«ß∩Γ ó ßΓѬ ¿ ¿ºó½Ñ¬áεΓ ¿º ¡Ñ-
  6814.         ú« Γ«½∞¬« ¼½áñΦ¿Ñ 16 í¿Γ«ó αÑú¿ßΓαá Σ½áú«ó.
  6815.  
  6816.                                                                                
  6817.         ê¡ßΓαπ¬µ¿¿ PUSHAD ¿ POPAD
  6818.         -----------------------------------------------------------------
  6819.  
  6820.              ê¡ßΓαπ¬µ¿∩ PUSHAD ºá¡«ß¿Γ ó ßΓѬ ó«ßѼ∞  32-αáºα∩ñ¡δσ  «íΘ¿σ
  6821.         αÑú¿ßΓα«ó ó ß½ÑñπεΘѼ »«α∩ñ¬Ñ: EAX, ECX, EDX, EBX, ESP, EBP, ESI,
  6822.         EDI. ç¡áτÑ¡¿Ñ, ºá¡«ß¿¼«Ñ ñ½∩ αÑú¿ßΓαá ESP, ß««ΓóÑΓßΓóπÑΓ º¡áτÑ¡¿ε
  6823.         αÑú¿ßΓαá ESP ó ¡áτá½Ñ ¿¡ßΓαπ¬µ¿¿ PUSHAD.  ê¡ßΓαπ¬µ¿∩ POPAD ¿ºó½Ñ-
  6824.         ¬áÑΓ ¿º ßΓѬá ßѼ∞ 32-αáºα∩ñ¡δσ «íΘ¿σ αÑú¿ßΓα«ó ó  ß½ÑñπεΘѼ  »«-
  6825.         α∩ñ¬Ñ:  EDI,  ESI,  EBP,  EBX, EDX, ECX ¿  EAX.  éßÑ φΓ¿ αÑú¿ßΓαδ
  6826.         ¼«ª¡« ß«σαá¡¿Γ∞ ó ßΓѬѠߠ »«¼«Θ∞ε  ¿¡ßΓαπ¬µ¿¿  PUSHAD,  á  ºáΓѼ
  6827.         ó«ßßΓá¡«ó¿Γ∞ ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ POPAD.  ÉÑú¿ßΓα ESP ¿¡ßΓαπ¬µ¿Ñ⌐
  6828.         POPAD ¡Ñ ó«ßßΓá¡áó½¿óáÑΓß∩.  é¼ÑßΓ« φΓ«ú« óδ»«½¡∩ÑΓß∩ óδ»«½¡∩ÑΓß∩
  6829.         πóѽ¿τÑ¡¿Ñ ¡á 32, τΓ«íδ «Γíα«ß¿Γ∞ í½«¬ ¿º ó«ß∞¼¿ 32-αáºα∩ñ¡δσ «í-
  6830.         Θ¿σ αÑú¿ßΓα«ó,  αá¡ÑÑ ß«σαá¡Ñ¡¡δ⌐ ó ßΓѬÑ. æ«σαá¡Ñ¡¡«Ñ αá¡ÑÑ º¡á-
  6831.         τÑ¡¿Ñ ESP ¿ú¡«α¿απÑΓß∩.
  6832.  
  6833.              æαáó¡¿ΓÑ ß φΓ¿¼¿ ¿¡ßΓαπ¬µ¿∩¼¿ ¿¡ßΓαπ¬µ¿¿ PUSHA ¿ POPA, ¬«Γ«-
  6834.         αδÑ ß«σαá¡∩εΓ ó ßΓѬѠ¿ ¿ºó½Ñ¬áεΓ ¿º ¡Ñú« Γ«½∞¬« ¼½áñΦ¿Ñ 16 í¿Γ«ó
  6835.         «íΘ¿σ αÑú¿ßΓα«ó.
  6836.  
  6837.  
  6838.  
  6839.  
  6840.         TASM2 #3-5/䫬              = 163 =
  6841.  
  6842.                              ì«óδÑ óÑαß¿¿ ¿¡ßΓαπ¬µ¿¿ IMUL                      
  6843.         -----------------------------------------------------------------
  6844.  
  6845.              ä«»«½¡¿Γѽ∞¡« ¬ Σ«α¼á¼ ¿¡ßΓαπ¬µ¿¿ IMUL,  »αÑñπß¼«ΓαÑ¡¡δ¼ ñ½∩
  6846.         »α«µÑßß«α«ó  8086/80186/80286  ó  »α«µÑßß«αÑ  80386 »αÑñπß¼«ΓαÑ¡á
  6847.         ó«º¼«ª¡« ßá¼á∩ πñ«í¡á∩ Σ«α¼á ¿¡ßΓαπ¬µ¿¿ IMUL: ½εí«⌐ «íΘ¿⌐ αÑú¿ßΓα
  6848.         ¿½¿ ∩τÑ⌐¬π »á¼∩Γ¿ ¼«ª¡« π¼¡«ªáΓ∞ ¡á ½εí«⌐ «íΘ¿⌐ αÑú¿ßΓα, »α¿ φΓ«¼
  6849.         αѺπ½∞ΓáΓ ß¡«óá ß«σαá¡∩ÑΓß∩ ó «ñ¡«¼ ¿º ¿ßσ«ñ¡δσ αÑú¿ßΓα«ó. ìá»α¿-
  6850.         ¼Ñα, ¿¡ßΓαπ¬µ¿∩:
  6851.  
  6852.                 imul    ebx,[edi*4+4]
  6853.  
  6854.         π¼¡«ªáÑΓ ß«ñÑন¼«Ñ  αÑú¿ßΓαá  EBX ¡á º¡áτÑ¡¿Ñ αẼÑα«¼ ó ñó«⌐¡«Ñ
  6855.         ß½«ó«, σαá¡∩ΘÑÑß∩ »« áñαÑßπ »á¼∩Γ¿ edi*4+4, á αѺπ½∞ΓáΓ ß«σαá¡∩ÑΓ
  6856.         ß¡«óá ó αÑú¿ßΓαÑ EBX.
  6857.  
  6858.              èᬠ¼«ª¡«  ºá¼ÑΓ¿Γ∞,  »Ñαóδ⌐ «»Ñαá¡ñ ó φΓ«⌐ Σ«α¼Ñ ¿¡ßΓαπ¬µ¿¿
  6859.         IMUL »αÑñßΓáó½∩ÑΓ ß«í«⌐ µÑ½Ñó«⌐ αÑú¿ßΓα.  ¥Γ«Γ «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞
  6860.         ½εíδ¼ 16- ¿½¿ 32-αáºα∩ñ¡δ¼ «íΘ¿¼ αÑú¿ßΓα«¼.  éΓ«α«⌐ «»Ñαá¡ñ ¼«ªÑΓ
  6861.         ºáñáóáΓ∞ß∩ ½εíδ¼ 16- ¿½¿ 32-αáºα∩ñ¡δ¼ «íΘ¿¼ αÑú¿ßΓα«¼ ¿½¿ ∩τÑ⌐¬«⌐
  6862.         »á¼∩Γ¿.  ÉẼÑαδ ñóπσ «»Ñαá¡ñ«ó ñ«½ª¡δ ß«ó»áñáΓ∞. àß½¿ αѺπ½∞ΓáΓ,
  6863.         αáßß¼áΓα¿óáѼδ⌐, ¬á¬ º¡áτÑ¡¿Ñ ß« º¡á¬«¼, ß½¿Φ¬«¼ óѽ¿¬, τΓ«íδ Ñú«
  6864.         ¼«ª¡« í佫 αẼÑßΓ¿Γ∞ ó »α¿Ñ¼¡¿¬Ñ, Γ« πßΓá¡áó½¿óáεΓß∩ Σ½áú¿ »ÑαÑ-
  6865.         ¡«ßá ¿ »ÑαÑ»«½¡Ñ¡¿∩.
  6866.  
  6867.              èᬠ¼«ª¡« «ª¿ñáΓ∞,  ó »α«µÑßß«αÑ 80386 ¿¼ÑεΓß∩ ΓᬪѠ αáßΦ¿-
  6868.         αÑ¡¡δÑ  Σ«α¼δ  ¿¡ßΓαπ¬µ¿¿  IMUL ñ½∩ »α«µÑßß«α«ó 8086/80186/80286,
  6869.         »«ññÑনóáεΘ¿Ñ 32-αáºα∩ñ¡δÑ «»Ñαá¡ñδ.  ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ ¬«ñÑ
  6870.         ECX π¼¡«ªáÑΓß∩ ¡á 1000000000h, á αѺπ½∞ΓáΓ ß«σαá¡∩ÑΓß∩ ó αÑú¿ßΓαÑ
  6871.         EBP:
  6872.  
  6873.                 imul    ebp,ecx,100000000h
  6874.  
  6875.         á ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ π¼¡«ªáÑΓ ECX ¡á EBX, ºá»¿ßδóá∩ αѺπ½∞ΓáΓ ó
  6876.         EDX:EAX:
  6877.  
  6878.                 imul    ebx
  6879.  
  6880.  
  6881.  
  6882.  
  6883.         TASM2 #3-5/䫬              = 164 =
  6884.  
  6885.             ùÑαÑñ«óá¡¿Ñ 16-αáºα∩ñ¡δσ ¿ 32-αáºα∩ñ¡δσ ¿¡ßΓαπ¬µ¿⌐ ¿ ßÑú¼Ñ¡Γ«ó     
  6886.         -----------------------------------------------------------------
  6887.  
  6888.              Äíδτ¡« óá¼ ΓαÑíπÑΓß∩ ¿ß»«½∞º«óáΓ∞ Γ«½∞¬«  16-αáºα∩ñ¡δÑ  ßÑú-
  6889.         ¼Ñ¡Γδ  (USE16).  ì«  ñáªÑ  ó φΓ«¼ ß½πτáÑ óδ ¼«ªÑΓÑ »«½∞º«óáΓ∞ß∩ ó
  6890.         áα¿Σ¼ÑΓ¿τÑ߬¿σ ¿ ½«ú¿τÑ߬¿σ «»Ñαᵿ∩σ 32-í¿Γ«ó묨 αÑú¿ßΓαἿ.
  6891.  
  6892.              éδ ¼«ªÑΓÑ ΓᬪѠ¿ß»«½∞º«óáΓ∞ ½εí«Ñ ß«τÑΓá¡¿Ñ 16-í¿Γ«óδσ ¿ 32
  6893.         -í¿Γ«óδσ  ßÑú¼Ñ¡Γ«ó ¬«ñá ¿ ñá¡¡δσ.  àß½¿ óδ ¡Ñ »¿ΦÑΓÑ »α«úαá¼¼¡«Ñ
  6894.         «íÑß»ÑτÑ¡¿Ñ ñ½∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼δ ¿ ¡Ñ º¡áÑΓÑ ó  Γ«τ¡«ßΓ¿, τΓ«
  6895.         óδ ñѽáÑΓÑ, Γ« ¡ÑΓ áíß«½εΓ¡« ¡¿¬á¬¿σ »α¿τ¿¡ ¿ß»«½∞º«óáΓ∞ 32-í¿Γ«-
  6896.         óδÑ ßÑú¼Ñ¡Γδ ¬«ñá.  àß½¿ óδ ¡Ñ »α¿¼ÑΓѠ߻ѵ¿á½∞¡δσ ¼Ñα ñ½∩ »ÑαѬ-
  6897.         ½ετÑ¡¿∩ »α«µÑßß«αá ó αѪ¿¼, ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ óδ»«½¡Ñ¡¿∩ 32-í¿Γ«óδσ
  6898.         ßÑú¼Ñ¡Γ«ó ¬«ñá,  Γ« »«ñ π»αáó½Ñ¡¿Ñ¼ DOS «¡¿ αáí«ΓáΓ∞  ¡Ñ  ß¼«úπΓ.
  6899.         Å«ß½ÑñπεΘ¿Ñ  «»Ñαᵿ«¡¡δÑ ß¿ßΓѼδ ó«º¼«ª¡« »αÑñ«ßΓáó∩Γ óá¼ ß»«ß«-
  6900.         íδ,  ß »«¼«Θ∞ε ¬«Γ«αδσ ¼«ª¡« ß »«½∞º«⌐ αáí«ΓáΓ∞  ß  32-αáºα∩ñ¡δ¼¿
  6901.         ßÑú¼Ñ¡ΓἿ, ¡« »«¬á »α¿¼Ñ¡∩Γ∞ ¿σ ¡Ñ ß½ÑñπÑΓ.
  6902.  
  6903.              Äñ¡á¬« óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ 32-αáºα∩ñ¡δÑ ßÑú¼Ñ¡Γδ ñá¡¡δσ ¿
  6904.         ¿ß»«½∞º«óáΓ∞ ó ßó«Ñ⌐ »α«úαἼѠ»αÑ¿¼πΘÑßΓóá  "ßó«í«ñ¡«⌐"  áñαÑßá-
  6905.         µ¿¿, «íÑß»Ñτ¿óáѼ«⌐ 32-αáºα∩ñ¡δ¼¿ αÑú¿ßΓαἿ »α«µÑßß«αá 80386.
  6906.  
  6907.              äáóá⌐ΓÑ αáßß¼«Γα¿¼  «ß¡«ó¡δÑ á߻ѬΓδ ¿ß»«½∞º«óá¡¿∩ ßÑú¼Ñ¡Γ«ó
  6908.         USE16 ¿ USE32.  îá¬ß¿¼á½∞¡δ⌐ αẼÑα αÑú¿ßΓα«ó USE16 ¡Ñ ¼«ªÑΓ »αÑ-
  6909.         óδΦáΓ∞ 64è, »«φΓ«¼π ¡á ½εíπε ∩τÑ⌐¬π ßÑú¼Ñ¡Γá USE16 ¼«ª¡« ßßδ½áΓ∞-
  6910.         ß∩ ß »«¼«Θ∞ε 16-αáºα∩ñ¡«ú«  áñαÑßá.  æ  ñαπú«⌐ ßΓ«α«¡δ,  ßÑú¼Ñ¡Γδ
  6911.         Γ¿»á USE32  ¼«úπΓ ¿¼ÑΓ∞ αẼÑα ñ« 4 ú¿úáíá⌐Γ,  »«φΓ«¼π ñ½∩ ßß佬¿
  6912.         ¡á »α«¿ºó«½∞¡πε ∩τÑ⌐¬π Γᬫú« ßÑú¼Ñ¡Γá ΓαÑíπÑΓß∩ ¿ß»«½∞º«óáΓ∞ 32-
  6913.         αáºα∩ñ¡δ⌐ áñαÑß.  (Åα¿¼Ñτá¡¿Ñ: æ ßÑú¼Ñ¡ΓἿ ¬«ñá Γ¿»á USE32 ¼«ª¡«
  6914.         αáí«ΓáΓ∞ Γ«½∞¬« ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ.)
  6915.  
  6916.              ƒß¡«, τΓ« Ñß½¿ óá¼ ¡πªÑ¡ ßÑú¼Ñ¡Γ,  αẼÑα ¬«Γ«α«ú« »αÑóδΦáÑΓ
  6917.         64è,  Γ« óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ßÑú¼Ñ¡Γ Γ¿»á USE32.  Äñ¡á¬«,  ¡ÑΓ
  6918.         Γᬫ⌐  ß¿Γπᵿ¿,  »α¿  ¬«Γ«α«⌐ óδ «í∩ºáΓѽ∞¡« ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
  6919.         ßÑú¼Ñ¡Γ USE16. çñÑß∞ óδ ¼«ªÑΓÑ πñ¿ó¿Γ∞ß∩ ¿ »«ñπ¼áΓ∞, »«τѼπ íδ ¡Ñ
  6920.         π»α«ßΓ¿Γ∞  ºáñáτπ  ¿  ¡Ñ  ¿ß»«½∞º«óáΓ∞  ßÑú¼Ñ¡Γδ USE32 óßÑ óαѼ∩.
  6921.         ÄΓóÑΓ ºá¬½ετáÑΓß∩ ó Γ«¼ ß»«ß«íÑ,  ß  »«¼«Θ∞ε  ¬«Γ«α«ú«  »α«µÑßß«α
  6922.         80386  »«ññÑনóáÑΓ «»Ñαá¡ñδ αẼÑα«¼ ó ß½«ó« ¿ ñó«⌐¡«Ñ ß½«ó«,  á
  6923.         ΓᬪѠ16- ¿ 32-αáºα∩ñ¡δÑ ß¼ÑΘÑ¡¿∩.
  6924.  
  6925.              Åα«µÑßß«α 80386 ∩ó½∩ÑΓß∩ αáºó¿Γ¿Ñ¼ »α«µÑßß«αá 8086,  ó ¬«Γ«-
  6926.         α«¼  ñ½∩  αẽ¿τ¿∩  ¼Ñªñπ  ñóπ¼∩ Ññ¿¡ßΓóÑ¡¡« ó«º¼«ª¡δ¼¿ αẼÑαἿ
  6927.         «»Ñαá¡ñ«ó (8  ¿ 16 í¿Γ) ¿ß»«½∞ºπÑΓß∩ «ñ¿¡ í¿Γ.  é »α«µÑßß«αÑ 8086
  6928.         ¿¼ÑÑΓß∩ «ñ¡« ¼¡«ªÑßΓó« αѪ¿¼«ó áñαÑßᵿ¿ (φΓ«  πªÑ  º¡á¬«¼δÑ  óá¼
  6929.         αѪ¿¼δ áñαÑßᵿ¿,  »α¿ ¬«Γ«αδσ ¿ß»«½∞ºπεΓß∩ αÑú¿ßΓαδ BX, SI, DI ¿
  6930.         BP),  »α¿ ¬«Γ«αδσ »«ññÑনóáεΓß∩ Γ«½∞¬«  16-í¿Γ«óδÑ  ß¼ÑΘÑ¡¿∩.  é
  6931.  
  6932.         TASM2 #3-5/䫬              = 165 =
  6933.  
  6934.         ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ  »α«úαá¼¼δ  ¿ß»«½∞ºπÑΓß∩ «»Ñαá¡ñ αẼÑα«¼ ó 8
  6935.         í¿Γ, á ñ½∩ áñαÑßᵿ¿ ¬ »á¼∩Γ¿ ¿ß»«½∞ºπÑΓß∩ 16-í¿Γ«óδ⌐ αѪ¿¼ áñαÑ-
  6936.         ßᵿ¿ (»α¿¡∩Γδ⌐ ó »α«µÑßß«αÑ 8086):
  6937.  
  6938.                 mov     al,[bx+1000h]
  6939.  
  6940.              é ßÑú¼Ñ¡Γá󠬫ñá USE16 »α«µÑßß«α 80386 ñ½∩ óδí«αᠼѪñπ 8- ¿
  6941.         16-αáºα∩ñ¡δ¼¿ «»Ñαá¡ñἿ ¿ß»«½∞ºπÑΓß∩ «íδτ¡« Γ«Γ ªÑ í¿Γ,  τΓ« ¿ ó
  6942.         »α«µÑßß«αÑ 8086, ¿ 16-í¿Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ. Äñ¡á¬« ß »«¼«Θ∞ε »αÑΣ¿¬ßá
  6943.         αẼÑαá «»Ñαá¡ñá (066h) ½εíπε  ¿¡ßΓαπ¬µ¿ε  ßÑú¼Ñ¡Γá  USE16  ¼«ª¡«
  6944.         »αÑ«íαẫóáΓ∞  Γᬿ¼ «íαẫ¼,  τΓ« «¡á íπñÑΓ »«ññÑনóáΓ∞ 32-αáº-
  6945.         α∩ñ¡δÑ «»Ñαá¡ñδ.  é φΓ«¼ ß½πτáÑ í¿Γ αẼÑαá Γᬫ⌐ ¿¡ßΓαπ¬µ¿¿ »«º-
  6946.         ó«½∩ÑΓ óδíαáΓ∞ ¼Ñªñπ 8- ¿ 32-í¿Γ«ó묨 «»Ñαá¡ñἿ, á ¡Ñ ¼Ñªñπ 8- ¿
  6947.         16-í¿Γ«ó묨.
  6948.  
  6949.              Ç¡á½«ú¿τ¡«, ½εíπε ¿¡ßΓαπ¬µ¿ε ó ßÑú¼Ñ¡ΓÑ USE16 ¼«ª¡« »αÑ«íαá-
  6950.         º«óáΓ∞ Γᬿ¼ «íαẫ¼,  τΓ« íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ 32-í¿Γ«óδÑ αѪ¿¼δ
  6951.         áñαÑßᵿ¿ »α«µÑßß«αá 80386 (í«½∞Φ«⌐ áñαÑß, ¬á¬ «»¿ßδóὫß∞ ó αáº-
  6952.         ñѽѠ"ì«óδÑ αѪ¿¼δ áñαÑßᵿ¿"). ä½∩ φΓ«ú« »ÑαÑñ ¿¡ßΓαπ¬µ¿Ñ⌐ »«¼Ñ-
  6953.         ΘáÑΓß∩ »αÑΣ¿¬ß αẼÑαá áñαÑßá (067h).
  6954.  
  6955.              ìá»α¿¼Ñα,  ó ¬«ñÑ,  áßßÑ¼í½¿απѼ«¼  ¿º  ß½ÑñπεΘÑú« ¿ßσ«ñ¡«ú«
  6956.         ΓѬßΓá:
  6957.  
  6958.                 .
  6959.                 .
  6960.                 .
  6961.                 .386
  6962.                 .
  6963.                 .
  6964.                 .
  6965.         DataSeg SEGMENT USE16
  6966.         TestLoc DD      ?
  6967.         DataSeg ENDS
  6968.                 .
  6969.                 .
  6970.                 .
  6971.         DataSeg SEGMENT USE16
  6972.                 mov     ax,DataSeg
  6973.                 mov     ds,ax
  6974.                 ASSUME  DS:DataSeg
  6975.                 db      66h
  6976.                 mov     ax,WORD PTR [TestLoc]
  6977.                 .
  6978.                 .
  6979.                 .
  6980.  
  6981.         TASM2 #3-5/䫬              = 166 =
  6982.  
  6983.         CodeSeg ENDS
  6984.                 .
  6985.                 .
  6986.                 .
  6987.  
  6988.         Γᬠ¬á¬ »αÑΣ¿¬ß αẼÑαá «»Ñαá¡ñá »αÑ«íαáºπÑΓ αẼÑα «»Ñαá¡ñ«ó ¿¡-
  6989.         ßΓαπ¬µ¿¿  ó  32 í¿Γá,  4 íá⌐Γá TestLoc ºáúαπªáεΓß∩ ó EAX,  á ¡Ñ 2
  6990.         íá⌐Γá TestLoc ó AX.
  6991.  
  6992.              èα«¼Ñ Γ«ú«, ¿¡ßΓαπ¬µ¿¿ ßÑú¼Ñ¡Γ«ó ¬«ñá USE32 «íδτ¡« «íαáΘáεΓ-
  6993.         ß∩  ¬ 8- ¿½¿ 32-αáºα∩ñ¡δ¼ «»Ñαá¡ñá¼ ¿ 32-αáºα∩ñ¡δÑ αѪ¿¼δ áñαÑßá-
  6994.         µ¿¿ »α«µÑßß«αá 80386. Äñ¡á¬«, τΓ«íδ «Γñѽ∞¡δÑ ¿¡ßΓαπ¬µ¿¿ αáí«Γ὿
  6995.         ó 16-αáºα∩ñ¡«¼ αѪ¿¼Ñ (Γ« ÑßΓ∞ ó αѪ¿¼Ñ »α«µÑßß«αá 8086 ß «»Ñαá¡-
  6996.         ñἿ αẼÑα«¼ ó ß½«ó« ¿ ¼á½δ¼ áñαÑß«¼),  ¬á¬ ó  ßÑú¼Ñ¡Γáσ  USE16,
  6997.         ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  »αÑΣ¿¬ßδ  ºáñá¡¿∩ αẼÑαá «»Ñαá¡ñá ¿ αẼÑαá
  6998.         áñαÑßá.
  6999.  
  7000.              ìÑ ßΓ«¿Γ íÑß»«¬«¿Γ∞ß∩ « Γ«¼,  τΓ«íδ ¿ºπτáΓ∞ »αÑΣ¿¬ßδ ºáñá¡¿∩
  7001.         αẼÑα«ó  «»Ñαá¡ñ«¼  ¿ áñαÑß«ó ó »α«úαá¼¼áσ ñ½∩ »α«µÑßß«αá 80386.
  7002.         Æπαí« ÇßßѼí½Ñα óδ»«½¡∩ÑΓ úÑ¡Ñαáµ¿ε  »αÑΣ¿¬ß«ó,  ¡Ñ«íσ«ñ¿¼δσ  ñ½∩
  7003.         ¿ß»«½∞º«óá¡¿∩ 16-αáºα∩ñ¡δσ ßαÑñßΓó ó ßÑú¼Ñ¡Γáσ USE32 ¿ 32-αáºα∩ñ-
  7004.         ¡δσ ßαÑñßΓó ó ßÑú¼Ñ¡Γáσ USE16 »α«ºαáτ¡δ¼ ñ½∩  »α«úαá¼¼¿ßΓá  «íαá-
  7005.         º«¼.  ìá»α¿¼Ñα, Ñß½¿ óδ ó ßÑú¼Ñ¡ΓÑ ¬«ñá USE32 ¿ß»«½∞ºπÑΓÑ ß½Ññπε-
  7006.         Θπε ¿¡ßΓαπ¬µ¿ε:
  7007.  
  7008.                 mov     [bx],ax
  7009.  
  7010.         Γ« Æπαí« ÇßßѼí½Ñα áóΓ«¼áΓ¿τÑ߬¿ ó¬½ετ¿Γ »ÑαÑñ  ¿¡ßΓαπ¬µ¿Ñ⌐  »αÑ-
  7011.         Σ¿¬ß ºáñá¡¿∩ αẼÑαá «»Ñαá¡ñá ¿ αẼÑαá áñαÑßá. îδ »«∩ß¡∩Ѽ ºñÑß∞
  7012.         »αÑΣ¿¬ßδ π¬áºá¡¿∩ αẼÑα«ó Γ«½∞¬« ñ½∩ Γ«ú«,  τΓ«íδ óδ »«¡∩½¿  «ß-
  7013.         ¡«ó¡«⌐  ¼«¼Ñ¡Γ ó óδí«αÑ ¼Ñªñπ 16- ¿ 32-í¿Γ«ó묨 αẼÑαἿ ßÑú¼Ñ¡-
  7014.         Γ«ó:  ¡πª¡« ¼¿¡¿¼¿º¿α«óáΓ∞ τ¿ß½« úÑ¡Ñα¿απѼδσ  »αÑΣ¿¬ß«ó  ºáñá¡¿∩
  7015.         αẼÑαá.
  7016.  
  7017.              ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα, τΓ« óδ óδíα὿ ßÑú¼Ñ¡Γ USE16, á ºáΓѼ
  7018.         ßßδ½áÑΓÑß∞ ¡á «»Ñαá¡ñδ αẼÑα«¼ ó ñó«⌐¡«Ñ ß½«ó«, áñαÑßπѼδÑ ß »«-
  7019.         ¼«Θ∞ε 32-í¿Γ«óδσ αѪ¿¼«ó áñαÑßᵿ¿, ¡á»α¿¼Ñα:
  7020.  
  7021.                 mov     eax,[edx+ecx*2+1]
  7022.  
  7023.              Æπαí« ÇßßѼí½Ñαπ  »α¿Φ½«ß∞  íδ úÑ¡Ñα¿α«óáΓ∞ »αÑΣ¿¬ßδ ºáñá¡¿∩
  7024.         αẼÑα«ó «»Ñαá¡ñ«ó ¿ αẼÑαá áñαÑßá »αá¬Γ¿τÑ߬¿ ñ½∩  ¬áªñ«⌐  ¿¡ß-
  7025.         Γαπ¬µ¿¿ óáΦÑ⌐ »α«úαá¼¼δ,  τΓ« »α¿óѽ« íδ ¬ º¡áτ¿Γѽ∞¡«¼π πóѽ¿τÑ-
  7026.         ¡¿ε ÑÑ αẼÑαá ¿ »«ΓÑα∩¼ ó »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿.  Åα¿ ¿ß»«½∞º«óá¡¿¿
  7027.         ªÑ  ßÑú¼Ñ¡Γá USE32 ó Γ«⌐ ªÑ »α«úαἼѠ»αÑΣ¿¬ßδ ¿ß»«½∞º«óáΓ∞ »αá¬-
  7028.         Γ¿τÑ߬¿ ¡Ñ »«ΓαÑí«óὫß∞ íδ.
  7029.  
  7030.         TASM2 #3-5/䫬              = 167 =
  7031.  
  7032.  
  7033.              ÆÑ»Ñα∞ óδ ¼«ªÑΓÑ ó¿ñÑΓ∞,  τΓ« »α«µÑßß óδí«αá  ßÑú¼Ñ¡Γá  ¡Ñß-
  7034.         ¬«½∞¬«  í«½ÑÑ  ß½«ªÑ¡,  τѼ φΓ« ¼«ªÑΓ »«¬áºáΓ∞ß∩.  àß½¿ óá¼ ¡πªÑ¡
  7035.         ßÑú¼Ñ¡Γ,  »αÑóδΦáεΘ¿⌐ 64è,  óδ ñ«½ª¡δ óδíαáΓ∞ ßÑú¼Ñ¡Γ Γ¿»á USE32.
  7036.         àß½¿  óá¼ ΓαÑíπÑΓß∩ ßÑú¼Ñ¡Γ,  ¡Ñ »αÑóδΦáεΘ¿⌐ »« αẼÑαπ 64è,  óá¼
  7037.         ß½ÑñπÑΓ óδíαáΓ∞ ßÑú¼Ñ¡Γ USE32,  Ñß½¿ óδ τáΘÑ ¿ß»«½∞ºπÑΓÑ 32-í¿Γ«-
  7038.         óδÑ,  á ¡Ñ 16-í¿Γ«óδÑ «»Ñαá¡ñδ ¿ αѪ¿¼δ áñαÑßᵿ¿.  àß½¿ ªÑ óÑα¡«
  7039.         «íαáΓ¡«Ñ, Γ« ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ ßÑú¼Ñ¡Γδ Γ¿»á USE16.  ìÑ óßÑúñá
  7040.         ½Ñú¬« ß¬áºáΓ∞,  ¬á¬«⌐ Γ¿» ßÑú¼Ñ¡Γá íπñÑΓ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ¼, ¡« óδ
  7041.         óßÑúñá ¼«ªÑΓÑ áßßÑ¼í½¿α«óáΓ∞ ßó«ε »α«úαá¼¼π ΓѼ ¿½¿ ñαπú¿¼ ß»«ß«-
  7042.         í«¼ ¿ »«ß¼«ΓαÑΓ∞,  ó ¬á¬«¼ ß½πτáÑ »«½πτÑ¡¡δ⌐ ¬«ñ íπñÑΓ í«½ÑÑ ¬«¼-
  7043.         »á¬Γ¡δ¼.
  7044.  
  7045.              ÆÑ»Ñα∞ óδ  ¼«ªÑΓÑ ΓᬪѠπó¿ñÑΓ∞,  ñ½∩ τÑú« ¿¡«úñá ¡Ñ«íσ«ñ¿¼δ
  7046.         «»Ñαᵿ¿ LARGE ¿ SMALL, τΓ«íδ ¼«ª¡« í佫 áßßÑ¼í½¿α«óáΓ∞ «»ÑαѪáε-
  7047.         Θ¿Ñ ßß佬¿. Å«ß¬«½∞¬π Γ¿» USE ßÑú¼Ñ¡ΓÑ ¬«ñá «»αÑñѽ∩ÑΓ ¿ß»«½∞ºπÑ-
  7048.         ¼δÑ »« π¼«½τá¡¿ε αẼÑαδ áñαÑß¡δσ ßß佫¬,  Γ« »αÑñ»«½áúáÑΓß∩, τΓ«
  7049.         «»ÑαѪáεΘ¿Ñ ßß佬¿ ¿¼ÑεàëàªÑ αẼÑα, τΓ« ¿ ßÑú¼Ñ¡Γδ ¬«ñá. Ä»Ñ-
  7050.         αᵿε LARGE ¡πª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ «»ÑαѪáεΘ¿σ ßß佫¬ ¿º  ßÑú¼Ñ¡-
  7051.         Γ«ó ¬«ñá USE16 ¡á ßÑú¼Ñ¡Γδ ñá¡¡δσ USE32,  á «»Ñαᵿε SMALL óδ ¼«-
  7052.         ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ñ½∩ π¬áºá¡¿∩  ¡Ñ«íσ«ñ¿¼«ßΓ¿  ¿ß»«½∞º«óá¡¿∩  ñ½∩
  7053.         «»ÑαѪáεΘ¿σ ßß佫¬ ¿º ßÑú¼Ñ¡Γá ¬«ñá USE16 16-í¿Γ«ó«⌐ áñαÑßᵿ¿.
  7054.  
  7055.                           Åα¿¼Ñα Σπ¡¬µ¿¿ ñ½∩ »α«µÑßß«αá 80386                  
  7056.         -----------------------------------------------------------------
  7057.  
  7058.              äáóá⌐ΓÑ αáßß¼«Γα¿¼  ΓÑ»Ñα∞  »α¿¼Ñα  »α«úαá¼¼δ ñ½∩ »α«µÑßß«αá
  7059.         80386. ìÑ»½«σ« í佫 íδ αáßß¼«ΓαÑΓ∞ »«½¡πε »α«úαá¼¼π ñ½∩ »α«µÑßß«-
  7060.         αá  80386,  «ñ¡á¬«  »«ß¬«½∞¬π «»Ñαᵿ«¡¡δÑ ß¿ßΓѼδ,  ¿ß»«½∞ºπεΘ¿Ñ
  7061.         »α«µÑßß«α 80386,  ¡Ñ »«½πτ¿½¿ ÑΘÑ ñ«ßΓáΓ«τ¡« Φ¿α«¬«ú« αáß»α«ßΓαá-
  7062.         ¡Ñ¡¿∩ (»«φΓ«¼π ¼δ ¡Ñ ¼«ªÑ¼ ¿ß»«½∞º«óáΓ∞ ßΓá¡ñáαΓ¡δÑ ºá»α«ßδ ¬ »á-
  7063.         ¼∩Γ¿, ºá»α«ßδ ñ½∩ »«½πτÑ¡¿∩ ¬«ñá ¬½áó¿Φ¿, óδó«ñá ¡á φ¬αá¡ ñ¿ß»½Ñ∩
  7064.         ¿  ºáóÑαΦÑ¡¿∩ »α«úαá¼¼δ).  é¼ÑßΓ« φΓ«ú« ñáóá⌐ΓÑ αáßß¼«Γα¿¼ »«½¡πε
  7065.         Σπ¡¬µ¿ε, ¡á»¿ßá¡¡πε ¡á ÇßßѼí½ÑαÑ ñ½∩ »α«µÑßß«αá 80386.
  7066.  
  7067.              é ¡áΦѼ  »α¿¼ÑαÑ  Σπ¡¬µ¿¿  ß  ¿¼Ñ¡Ñ¼ CalcPrimes ¿ß»«½∞ºπεΓß∩
  7068.         »αÑ¿¼πΘÑßΓóá í«½∞Φ¿σ αẼÑα«¼  ßÑú¼Ñ¡Γ«ó  USE32  ñ½∩  ταѺóδτá⌐¡«
  7069.         ½Ñú¬«ú« óδτ¿ß½Ñ¡¿∩ óßÑσ »α«ßΓδσ τ¿ßѽ ó ºáñá¡¡«¼ ñ¿á»áº«¡Ñ. öπ¡¬-
  7070.         µ¿∩ »α«ßΓ« óδτ¿ß½∩ÑΓ óßÑ »α«¿ºóÑñÑ¡¿∩ ó ñ¿á»áº«¡Ñ «Γ 2 ñ«  ¼á¬ß¿-
  7071.         ¼á½∞¡«ú«  »α«ßΓ«ú«  τ¿ß½á,  »«¼Ñτá∩  ¬áªñ«Ñ  »α«¿ºóÑñÑ¡¿Ñ ó «ñ¡«⌐
  7072.         í«½∞Φ«⌐ Γáí½¿µÑ,  ¬á¬ ¡Ñ »α«ßΓ«Ñ.  Åα¿  ¿ß»«½∞º«óá¡¿¿  »α«µÑßß«αá
  7073.         8086  ñá¡¡δ⌐ ¼ÑΓ«ñ ¼«ú íδ σ«α«Φ« αáí«ΓáΓ∞ Γ«½∞¬« ñ½∩ ¼áßß¿ó«ó, ¡Ñ
  7074.         »αÑóδΦáεΘ¿σ 64è (¼á¬ß¿¼á½∞¡δ⌐ αẼÑα ßÑú¼Ñ¡Γ«ó),  ¿  «¬áºá½ß∩  íδ
  7075.         ß«óÑαΦÑ¡¡«  ¡Ñαáí«Γ«ß»«ß«í¡δ¼  »α¿ ñ«ßΓ¿ªÑ¡¿¿ 1 ¼Ñúáíá⌐Γá (¼á¬ß¿-
  7076.         ¼á½∞¡δ⌐ «íΩѼ »á¼∩Γ¿,  ¬  ¬«Γ«α«⌐  ¼«ªÑΓ  áñαÑß«óáΓ∞ß∩  »α«µÑßß«α
  7077.  
  7078.         TASM2 #3-5/䫬              = 168 =
  7079.  
  7080.         8086).
  7081.  
  7082.              é «Γ½¿τ¿Ñ  «Γ  φΓ«ú«  ßÑú¼Ñ¡Γδ USE32 ¿ 32-αáºα∩ñ¡δÑ αÑú¿ßΓαδ
  7083.         »«ºó«½∩εΓ ó »α«µÑßß«αÑ 80386 ½Ñú¬« αáí«ΓáΓ∞  ß  Γáí½¿µÑ⌐,  αẼÑα
  7084.         ¬«Γ«α«⌐ ñ«ßΓ¿úáÑΓ 4 ú¿úáíá⌐Γ.  öá¬Γ¿τÑ߬¿,  »α«µÑßß«α 80386 ¼«ªÑΓ
  7085.         ñáªÑ ß »«¼«Θ∞ε ßΓαá¡¿τ¡«⌐ «αúá¡¿ºáµ¿¿ »á¼∩Γ¿ αáí«ΓáΓ∞  ß  »á¼∩Γ∞ε
  7086.         «íΩѼ«¼  ó  ΓÑαáíá⌐Γ (1000 ú¿úáíá⌐Γ)!  è«¡Ñτ¡«,  óαѼ∩ óδτ¿ß½Ñ¡¿∩
  7087.         »α«ßΓδσ τ¿ßѽ ó φΓ«¼ ß½πτáÑ «¬áºá½«ß∞ íδ »α¿ φΓ«¼ ¡Ñ»α¿Ñ¼½Ñ¼« óÑ-
  7088.         ½¿¬«,  ¡« ¼δ σ«Γ¿¼ «íαáΓ¿Γ∞ ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« ó «Γ½¿τ¿Ñ «Γ »α«-
  7089.         µÑßß«α«ó 8086 ¿ 80286 áασ¿ΓѬΓπαá áñαÑßᵿ¿ ¬  »á¼∩Γ¿  »α«µÑßß«αá
  7090.         80386 ¡Ñ ∩ó½∩ÑΓß∩ «úαá¡¿τ¿óáεΘ¿¼ Σá¬Γ«α«¼ ó »α«úαá¼¼áσ,  úñÑ ΓαÑ-
  7091.         íπÑΓß∩ ¿ß»«½∞º«óáΓ∞ º¡áτ¿Γѽ∞¡δÑ «íΩÑ¼δ »á¼∩Γ¿.
  7092.  
  7093.              êßσ«ñ¡δ⌐ ΓѬßΓ Σπ¡¬µ¿¿ CalcPrimes óδú½∩ñ¿Γ  ß½ÑñπεΘ¿¼  «íαá-
  7094.         º«¼:
  7095.  
  7096.         ;
  7097.         ; Åα¿¼Ñα ¬«ñá ñ½∩ »α«µÑßß«αá 80386 ñ½∩ óδτ¿ß½Ñ¡¿∩ óßÑσ
  7098.         ; »α«ßΓδσ τ¿ßѽ ó ñ¿á»áº«¡Ñ «Γ 0 ñ« MAX_PRIME ó¬½ετ¿Γѽ∞¡«.
  7099.         ;
  7100.         ; éó«ñ: ÄΓßπΓßΓóπÑΓ.
  7101.         ;
  7102.         ; éδó«ñ:
  7103.         ;     ES:EAX - π¬áºáΓѽ∞ ¡á PrimeFlags, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ 1 ñ½∩
  7104.         ;     ß¼ÑΘÑ¡¿∩ ¬áªñ«ú« τ¿ß½á, ¬«Γ«α«Ñ ∩ó½∩ÑΓß∩ »α«ßΓδ¼, ¿ 0 ñ½∩
  7105.         ;     ß¼ÑΘÑ¡¿∩ ¬áªñ«ú« τ¿ß½á, ¡Ñ ∩ó½∩εΘÑú«ß∩ »α«ßΓδ¼.
  7106.         ;
  7107.         ; ìáαπΦáѼδÑ αÑú¿ßΓαδ:
  7108.         ;     EAX, EBX
  7109.         ;
  7110.         ; êß»«½∞ºπÑΓß∩ á½ú«α¿Γ¼, »α¿óÑñÑ¡¡δ⌐ ùáα½∞º«¼ Åѵ«½∞ñ«¼ ó
  7111.         ; ªπα¡á½Ñ PC Magazine (Γ«¼ 7, ¡«¼Ñα 2).
  7112.         ;
  7113.                 .386
  7114.         MAX_PRIMES      EQU     1000000         ; óÑασ¡∩∩ úαá¡¿µá
  7115.                                                 ; »α«óÑન »α«ßΓ«ú«
  7116.                                                 ; τ¿ß½á
  7117.         DataSeg SEGMENT USE32
  7118.         PrimeFlags      DB      (MAX_PRIME + 1) DUP (?)
  7119.         DataSeg ENDS
  7120.  
  7121.         CodeSeg SEGMENT USE32
  7122.                 ASSUME  CS:CodeSeg
  7123.         CalcPrimes      PROC
  7124.                 push    ds      ; ß«σαá¡¿Γ∞ αÑú¿ßΓα DS óδºδóáεΘÑ⌐
  7125.                                 ; »α«úαá¼¼δ
  7126.  
  7127.         TASM2 #3-5/䫬              = 169 =
  7128.  
  7129.                 mov     ax,DataSeg
  7130.                 mov     ds,ax
  7131.                 ASSUME  DS:DataSeg
  7132.                 mov     es,ax
  7133.                 ASSUME  ES:DataSeg
  7134.         ;
  7135.         ; ÅαÑñ»«½«ª¿¼, τΓ« óßÑ τ¿ß½á ó ºáñá¡¡«¼ ñ¿á»áº«¡Ñ ∩ó½∩εΓß∩
  7136.         ; »α«ßΓ묨.
  7137.         ;
  7138.                 mov     al,1
  7139.                 mov     adi,OFFSET PrimeFlags
  7140.                 mov     ecx,MAX_PRIME+1
  7141.                 cld
  7142.                 rep     stosb
  7143.         ;
  7144.         ; ÆÑ»Ñα∞ ¿ß¬½ετ¿¼ óßÑ τ¿ß½á, ¡Ñ ∩ó½∩εΘ¿Ñß∩ »α«ßΓ묨, óδτ¿ß½∩∩ óßÑ
  7145.         ; »α«¿ºóÑñÑ¡¿∩ (¬α«¼Ñ »α«¿ºóÑñÑ¡¿⌐ ¡á 1), ¼Ñ¡∞Φ¿Ñ ¿½¿ αáó¡δÑ
  7146.         ; MAX_PRIMES, óßÑσ τ¿ßѽ ñ« MAX_PRIMES.
  7147.         ;
  7148.                 mov     eax,2           ; ¡áτ¡Ñ¼ ß 2, Γᬠ¬á¬ 0 ¿ 1
  7149.                                         ; ºáóÑñ«¼« »α«ßΓδ ¿ ¡Ñ ¼«úπΓ
  7150.                                         ; ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ¿ß¬½ετÑ¡¿∩
  7151.                                         ; »α«¿ºóÑñÑ¡¿⌐
  7152.         PrimeLoop:
  7153.                 mov     ebx,eax         ; ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ ñ½∩
  7154.                                         ; óδτ¿ß½Ñ¡¿∩ óßÑσ »α«¿ºóÑñÑ¡¿⌐
  7155.         MultipleLoop:
  7156.                 add     ebx,eax         ; óδτ¿ß½¿Γ∞ ß½ÑñπεΘÑÑ »α«¿ºóÑ-
  7157.                                         ; ñÑ¡¿Ñ
  7158.                 cmp     ebx,MAX_PRIME   ; ¼δ »α«óÑα¿½¿ óßÑ »α«¿ºóÑñÑ¡¿∩
  7159.                                         ; ñá¡¡«ú« τ¿ß½á?
  7160.                 ja      CheckNextBaseValue ; ñá, »ÑαÑ⌐ñѼ ¬ ß½ÑñπεΘѼπ
  7161.                                         ; τ¿ß½π
  7162.                 mov     [PrimeFlags+ebx],0 ; φΓ« τ¿ß½« ¡Ñ ∩ó½∩ÑΓß∩
  7163.                                         ; »α«ßΓδ¼, Γᬠ¬á¬ Ñú« ¼«ª¡«
  7164.                                         ; »«½πτ¿Γ∞ ó αѺπ½∞ΓáΓÑ »α«¿º-
  7165.                                         ; óÑñÑ¡¿∩
  7166.                 jmp     MultipleLoop
  7167.         CheckNextBaseValue:
  7168.                 inc     eax             ; ßßδ½¬á ¡á ß½ÑñπεΘÑÑ ¡áτá½∞¡«Ñ
  7169.                                         ; º¡áτÑ¡¿Ñ (ñ½∩ óδτ¿ß½Ñ¡¿∩
  7170.                                         ; óßÑσ »α«¿ºóÑñÑ¡¿⌐)
  7171.                 cmp     eax,MAX_PRIME   ; ¼δ ¿ß¬½ετ¿½¿ óßÑ »α«¿ºóÑñÑ-
  7172.                                         ; ¡¿∩?
  7173.                 jb      PrimeLoop       ; ¡ÑΓ, »α«óÑα¿Γ∞ ß½ÑñπεΘÑÑ
  7174.                                         ; ¼¡«ªÑßΓó« »α«¿ºóÑñÑ¡¿⌐
  7175.  
  7176.         TASM2 #3-5/䫬              = 170 =
  7177.  
  7178.         ;
  7179.         ; é«ºóαáΓ¿Γ∞ π¬áºáΓѽ∞ ¡á Γáí½¿µπ ßΓáΓπß«ó »α«ßΓδσ ¿ ¡Ñ »α«ßΓδσ
  7180.         ; τ¿ßѽ ó ES:EAX
  7181.         ;
  7182.                 mov     eax,OFFSET PrimeFlags
  7183.                 pop     ds              ; ó«ßßΓá¡«ó¿Γ∞ DS óδºδóáεΘÑ⌐
  7184.                                         ; »α«úαá¼¼δ
  7185.                 ret
  7186.         CalcPrimes      ENDP
  7187.         CodeSeg         ENDS
  7188.                 END
  7189.  
  7190.              ÄíαáΓ¿ΓѠ󡿼᡿Ѡ¡á Γ«,  ¬á¬ ½Ñú¬« »α«µÑßß«α 80386 »«ºó«½∩-
  7191.         ÑΓ óá¼ «íαáíáΓδóáΓ∞ 32-í¿Γ«óδÑ  µÑ½δÑ  τ¿ß½á  ¿  ¼áßß¿ó  αẼÑα«¼
  7192.         1000000 íá⌐Γ«ó. öá¬Γ¿τÑ߬¿ óß∩ Σπ¡¬µ¿∩ ºá¡¿¼áÑΓ Γ«½∞¬« 20 íá⌐Γ. é
  7193.         αѺπ½∞ΓáΓÑ  óδ»«½¡Ñ¡¿∩ Σπ¡¬µ¿∩ CalcPrimes ó«ºóαáΘáÑΓ í«½∞Φ«⌐ π¬á-
  7194.         ºáΓѽ∞ ñá½∞¡Ñú« Γ¿»á ¡á Γáí½¿µπ PrimeFlags,  ó ¬«Γ«α«⌐  ß¼ÑΘÑ¡¿Ñ,
  7195.         ß««ΓóÑΓßΓóπεΘÑÑ ¬áªñ«¼π τ¿ß½π,  ß«ñÑαª¿Γ 1,  Ñß½¿ φΓ« τ¿ß½« »α«ß-
  7196.         Γ«Ñ,  ¿ 0, Ñß½¿ τ¿ß½« ¡Ñ ∩ó½∩ÑΓß∩ »α«ßΓδ¼. ìá»α¿¼Ñα, PrimeFlag +3
  7197.         í佫  íδ αáó¡« 1,  Γᬠ¬á¬ 3 - »α«ßΓ«Ñ τ¿ß½«,  á PrimeFlag+4 - 0,
  7198.         Γᬠ¬á¬ 4 ¡Ñ ∩ó½∩ÑΓß∩ »α«ßΓδ¼.
  7199.  
  7200.              ÉẼÑα PrimeFlags ¿ ¼á¬ß¿¼á½∞¡«Ñ »α«óÑα∩Ѽ«Ñ τ¿ß½« «»αÑñѽ∩-
  7201.         εΓß∩ ß »«¼«Θ∞ε »α¿αáó¡Ñ¡¡«ú« ¿ñÑ¡Γ¿Σ¿¬áΓ«αá MAX_PRIME. ìá »αá¬Γ¿-
  7202.         ¬Ñ í佫 íδ í«½ÑÑ πñ«í¡«,  Ñß½¿ íδ óδºδóáεΘá∩ »α«úαἼᠻÑαÑñáóá½á
  7203.         íδ Σπ¡¬µ¿¿ CalcPrimes áñαÑß Γáí½¿µδ »α«¿ºó«½∞¡«ú« αẼÑαá, á Γá¬-
  7204.         ªÑ  ¼á¬ß¿¼á½∞¡«Ñ  »α«óÑα∩Ѽ«Ñ  τ¿ß½«  (¬«Γ«α«Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐
  7205.         ñ½¿¡π Γáí½¿µδ - 1). Æ«úñá φΓá Σπ¡¬µ¿∩ πñ«ó½ÑΓó«α∩½á íδ ½εíδ¼ »«Γ-
  7206.         αÑí¡«ßΓ∩¼  óδºδóáεΘÑ⌐  »α«úαá¼¼δ »« óδτ¿ß½Ñ¡¿ε »α«ßΓδσ τ¿ßѽ ¿ ÑÑ
  7207.         ¡Ñ ¡πª¡« í佫 íδ »ÑαÑáßßÑ¼í½¿α«óáΓ∞.  é ñá¡¡«¼ »α¿¼ÑαÑ  ½«¬á½∞¡á∩
  7208.         ¼ÑΓ¬á  PrimeFlags  ¿ß»«½∞ºπÑΓß∩  ú½áó¡δ¼ «íαẫ¼ ñ½∩ Γ«ú«,  τΓ«íδ
  7209.         »α«¿½½εßΓα¿α«óáΓ∞ ¿ß»«½∞º«óá¡¿Ñ USE32.
  7210.  
  7211.              Åα¿óÑñѼ »α¿¼Ñα óÑαß¿¿ CalcPrimes,  ¬«Γ«αá∩ αáí«ΓáÑΓ ß »ÑαÑ-
  7212.         ñáóáÑ¼δ¼¿ »áαá¼ÑΓαἿ (Γáí½¿µÑ⌐ ¿ ñ½¿¡«⌐ Γáí½¿µδ):
  7213.  
  7214.         ;
  7215.         ; Åα¿¼Ñα ¬«ñá ñ½∩ »α«µÑßß«αá 80386 ñ½∩ óδτ¿ß½Ñ¡¿∩ óßÑσ
  7216.         ; »α«ßΓδσ τ¿ßѽ ó ñ¿á»áº«¡Ñ «Γ 0 ñ« MAX_PRIME ó¬½ετ¿Γѽ∞¡«.
  7217.         ;
  7218.         ; éó«ñ: (»αÑñ»«½áúáÑΓß∩ ñá½∞¡¿⌐ ó맮ó Γ¿»á LARGE, »α¿ ¬«Γ«α«¼ ó
  7219.         ; ßΓѬѠ»ÑαÑñáÑΓß∩ 6 íá⌐Γ«ó):
  7220.         ;
  7221.         ;     ESP+06h ¡á óσ«ñÑ (»«ß½Ññ¡¿⌐ ºá¡ÑßÑ¡¡δ⌐ ó ßΓѬ »áαá¼ÑΓα)
  7222.         ;     »αÑñßΓáó½∩ÑΓ ß«í«⌐ º¡áτÑ¡¿Ñ αẼÑα«ó ó ñó«⌐¡«Ñ ß½«ó« -
  7223.         ;     ¼á¬ß¿¼á½∞¡«Ñ τ¿ß½«, »α«óÑα∩Ѽ«Ñ ¡á Γ«, ∩ó½∩ÑΓß∩ ½¿ «¡«
  7224.  
  7225.         TASM2 #3-5/䫬              = 171 =
  7226.  
  7227.         ;     »α«ßΓδ¼.
  7228.         ;
  7229.         ;     ESP+0Ah ¡á óσ«ñÑ (»Ñαóδ⌐ ºá¡ÑßÑ¡¡δ⌐ ó ßΓѬ »áαá¼ÑΓα)
  7230.         ;     »αÑñßΓáó½∩ÑΓ ß«í«⌐ π¬áºáΓѽ∞ LARGE ñá½∞¡Ñú« Γ¿»á
  7231.         ;     (ß¼ÑΘÑ¡¿Ñ αẼÑα«¼ 6 íá⌐Γ«ó) ¡á Γáí½¿µπ, ¬«Γ«αá∩ ß«ñÑαª¿Γ 1
  7232.         ;     ñ½∩ ß¼ÑΘÑ¡¿∩ ¬áªñ«ú« τ¿ß½á, ¬«Γ«α«Ñ ∩ó½∩ÑΓß∩ »α«ßΓδ¼, ¿ 0
  7233.         ;     ñ½∩ ß¼ÑΘÑ¡¿∩ ¬áªñ«ú« τ¿ß½á, ¡Ñ ∩ó½∩εΘÑú«ß∩ »α«ßΓδ¼.
  7234.         ;
  7235.         ; éδó«ñ: ÄΓßπΓßΓóπÑΓ.
  7236.         ;
  7237.         ; ìáαπΦáѼδÑ αÑú¿ßΓαδ:
  7238.         ;     EAX, EBX, EDX, EDI
  7239.         ;
  7240.         ; êß»«½∞ºπÑΓß∩ á½ú«α¿Γ¼, »α¿óÑñÑ¡¡δ⌐ ùáα½∞º«¼ Åѵ«½∞ñ«¼ ó
  7241.         ; ªπα¡á½Ñ PC Magazine (Γ«¼ 7, ¡«¼Ñα 2).
  7242.         ;
  7243.                 .386
  7244.         CodeSeg SEGMENT USE32
  7245.                 ASSUME  CS:CodeSeg
  7246.         CalcPrimes      PROC FAR
  7247.                 push    es                      ; ß«σαá¡¿Γ∞ ES
  7248.                                                 ; óδºδóáεΘÑ⌐ »α«úαá¼¼δ
  7249.                 push    fs                      ; ß«σαá¡¿Γ∞ FS
  7250.                                                 ; óδºδóáεΘÑ⌐ »α«úαá¼¼δ
  7251.         ;
  7252.         ; Å«½πτ¿Γ∞ »áαá¼ÑΓαδ.
  7253.                 mov     ecx,[esp+4+06h]
  7254.                 lfs     edx,[esp+4+0ah]
  7255.         ;
  7256.         ; ÅαÑñ»«½«ª¿¼, τΓ« óßÑ τ¿ß½á ó ºáñá¡¡«¼ ñ¿á»áº«¡Ñ ∩ó½∩εΓß∩
  7257.         ; »α«ßΓ묨.
  7258.         ;
  7259.                 push    fs
  7260.                 pop     es
  7261.                 mov     al,1                    ; ES π¬áºδóáÑΓ ¡á
  7262.                                                 ; ßÑú¼Ñ¡Γ Γáí½¿µδ
  7263.                 mov     adi,edx
  7264.                 cld
  7265.                 push    ecx                     ; ß«σαá¡¿Γ∞ ¼á¬ß¿¼á½∞¡«Ñ
  7266.                                                 ; »α«óÑα∩Ѽ«Ñ τ¿ß½«
  7267.                 inc     ecx                     ; ºáñáΓ∞ ¼á¬ß¿¼á½∞¡«Ñ
  7268.                                                 ; τ¿ß½« (ó¬½ετ¿Γѽ∞¡«)
  7269.                 rep     stosb
  7270.                 pop     ecx                     ; »«½πτ¿Γ∞ ß¡«óá ¼á¬ß¿-
  7271.                                                 ; ¼á½∞¡«Ñ »α«óÑα∩Ѽ«Ñ
  7272.                                                 ; τ¿ß½«
  7273.  
  7274.         TASM2 #3-5/䫬              = 172 =
  7275.  
  7276.         ;
  7277.         ; ÆÑ»Ñα∞ ¿ß¬½ετ¿¼ óßÑ τ¿ß½á, ¡Ñ ∩ó½∩εΘ¿Ñß∩ »α«ßΓ묨, óδτ¿ß½∩∩ óßÑ
  7278.         ; »α«¿ºóÑñÑ¡¿∩ (¬α«¼Ñ »α«¿ºóÑñÑ¡¿⌐ ¡á 1), ¼Ñ¡∞Φ¿Ñ ¿½¿ αáó¡δÑ
  7279.         ; MAX_PRIMES, óßÑσ τ¿ßѽ ñ« MAX_PRIMES.
  7280.         ;
  7281.                 mov     eax,2           ; ¡áτ¡Ñ¼ ß 2, Γᬠ¬á¬ 0 ¿ 1
  7282.                                         ; ºáóÑñ«¼« »α«ßΓδ ¿ ¡Ñ ¼«úπΓ
  7283.                                         ; ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ¿ß¬½ετÑ¡¿∩
  7284.                                         ; »α«¿ºóÑñÑ¡¿⌐
  7285.         PrimeLoop:
  7286.                 mov     ebx,eax         ; ¡áτá½∞¡«Ñ º¡áτÑ¡¿Ñ ñ½∩
  7287.                                         ; óδτ¿ß½Ñ¡¿∩ óßÑσ »α«¿ºóÑñÑ¡¿⌐
  7288.         MultipleLoop:
  7289.                 add     ebx,eax         ; óδτ¿ß½¿Γ∞ ß½ÑñπεΘÑÑ »α«¿ºóÑ-
  7290.                                         ; ñÑ¡¿Ñ
  7291.                 cmp     ebx,ecx         ; ¼δ »α«óÑα¿½¿ óßÑ »α«¿ºóÑñÑ¡¿∩
  7292.                                         ; ñá¡¡«ú« τ¿ß½á?
  7293.                 ja      CheckNextBaseValue ; ñá, »ÑαÑ⌐ñѼ ¬ ß½ÑñπεΘѼπ
  7294.                                         ; τ¿ß½π
  7295.                 mov     BYTE PTR fs:[edx+ebx],0 ; φΓ« τ¿ß½« ¡Ñ ∩ó½∩ÑΓß∩
  7296.                                         ; »α«ßΓδ¼, Γᬠ¬á¬ Ñú« ¼«ª¡«
  7297.                                         ; »«½πτ¿Γ∞ ó αѺπ½∞ΓáΓÑ »α«¿º-
  7298.                                         ; óÑñÑ¡¿∩
  7299.                 jmp     MultipleLoop
  7300.         CheckNextBaseValue:
  7301.                 inc     eax             ; ßßδ½¬á ¡á ß½ÑñπεΘÑÑ ¡áτá½∞¡«Ñ
  7302.                                         ; º¡áτÑ¡¿Ñ (ñ½∩ óδτ¿ß½Ñ¡¿∩
  7303.                                         ; óßÑσ »α«¿ºóÑñÑ¡¿⌐)
  7304.                 cmp     eax,ecx         ; ¼δ ¿ß¬½ετ¿½¿ óßÑ »α«¿ºóÑñÑ-
  7305.                                         ; ¡¿∩?
  7306.                 jb      PrimeLoop       ; ¡ÑΓ, »α«óÑα¿Γ∞ ß½ÑñπεΘÑÑ
  7307.                                         ; ¼¡«ªÑßΓó« »α«¿ºóÑñÑ¡¿⌐
  7308.                 pop     fs              ; ó«ßßΓá¡«ó¿Γ∞ FS óδºδóáεΘÑ⌐
  7309.                                         ; »α«úαá¼¼δ
  7310.                 pop     es              ; ó«ßßΓá¡«ó¿Γ∞ ES óδºδóáεΘÑ⌐
  7311.                                         ; »α«úαá¼¼δ
  7312.                 ret
  7313.         CalcPrimes      ENDP
  7314.         CodeSeg         ENDS
  7315.                 END
  7316.  
  7317.  
  7318.  
  7319.  
  7320.         TASM2 #3-5/䫬              = 173 =
  7321.  
  7322.                                                                                
  7323.         æ«»α«µÑßß«α 80287
  7324.         -----------------------------------------------------------------
  7325.  
  7326.               ìáí«α ¿¡ßΓαπ¬µ¿⌐  áα¿Σ¼ÑΓ¿τÑ߬«ú« ß«»α«µÑßß«αá 80287 ºá «ñ-
  7327.         ¡¿¼ ¿ß¬½ετÑ¡¿Ñ¼ »«½¡«ßΓ∞ε ß«ó»áñáÑΓ ß ¡áí«α«¼  ¿¡ßΓαπ¬µ¿⌐  ß«»α«-
  7328.         µÑßß«αá  8087.  ¥Γ¿¼ ¿ß¬½ετÑ¡¿Ñ¼ ∩ó½∩ÑΓß∩ ¿¡ßΓαπ¬µ¿∩ ß«»α«µÑßß«αá
  7329.         80287 FSETMP,  ¬«Γ«αá∩ »ÑαÑó«ñ¿Γ ß«»α«µÑßß«α 80287  ó  ºáΘ¿ΘÑ¡¡δ⌐
  7330.         αѪ¿¼. çáΘ¿ΘÑ¡¡δ⌐ αѪ¿¼ ß«»α«µÑßß«αá 80287 ß««ΓóÑΓßΓóπÑΓ ºáΘ¿ΘÑ¡-
  7331.         ¡«¼π αѪ¿¼π »α«µÑßß«αá 80286, ß ¬«Γ«αδ¼ «íδτ¡« ß»áαÑ¡ ñá¡¡δ⌐ ß«»-
  7332.         α«µÑßß«α  (σ«Γ∩  ß«»α«µÑßß«α  80287  ¼«ª¡« ΓᬪѠ¿ß»«½∞º«óáΓ∞ ¿ ß
  7333.         »α«µÑßß«α«¼ 80386). è«¡Ñτ¡«, ¬áªñá∩ »α«úαá¼¼á, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ
  7334.         ¿¡ßΓαπ¬µ¿ε FSETMP ¡Ñ íπñÑΓ αáí«ΓáΓ∞ ¡á ß«»α«µÑßß«αÑ 8087, Γᬠ¬á¬
  7335.         ß«»α«µÑßß«α 8087 ¡Ñ »«ññÑনóáÑΓ ñá¡¡πε ¿¡ßΓαπ¬µ¿ε.
  7336.  
  7337.              é Æπαí« ÇßßѼí½ÑαÑ »«ññÑ᪬á ß«»α«µÑßß«αá  80287 αáºαÑΦáÑΓß∩
  7338.         »« ñ¿αÑ¬Γ¿óÑ .287.  Å«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ «í ¿¡ßΓαπ¬µ¿∩σ ß«»α«µÑß-
  7339.         ß«αá 80287 ß«ñÑনΓß∩ ó â½áóÑ 3 "æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá".
  7340.  
  7341.                                    æ«»α«µÑßß«α 80387                           
  7342.         -----------------------------------------------------------------
  7343.  
  7344.              ìáí«α ¿¡ßΓαπ¬µ¿⌐  áα¿Σ¼ÑΓ¿τÑ߬«ú«  ß«»α«µÑßß«αá 80387 »αÑñß-
  7345.         Γáó½∩ÑΓ  ß«í«⌐  ¡áñ¼¡«ªÑßΓó«  ¡áí«αá   ¿¡ßΓαπ¬µ¿⌐   ß«»α«µÑßß«α«ó
  7346.         8087/80287. é ß«»α«µÑßß«αÑ 80387 ¿¼ÑεΓß∩ ß½ÑñπεΘ¿Ñ ¡«óδÑ ¿¡ßΓαπ¬-
  7347.         µ¿¿:
  7348.  
  7349.                 FCOS            FSINCOS         FUCOMP
  7350.                 FPREM1          FUCOM           FUCOMPP
  7351.                 FSIN
  7352.  
  7353.              ê¡ßΓαπ¬µ¿∩ FUCOM óδ»«½¡∩ÑΓ ¡Ñπ»«α∩ñ«τÑ¡¡«Ñ  ßαáó¡Ñ¡¿Ñ  ¼Ñªñπ
  7354.         αÑú¿ßΓαá ST(0)  ¿  ñαπú¿σ αÑú¿ßΓα«ó ß«»α«µÑßß«αá 80387.  ¥Γá ¿¡ß-
  7355.         Γαπ¬µ¿∩ á¡á½«ú¿τ¡á ¿¡ßΓαπ¬µ¿¿ FCOM,  Γ«½∞¬« ß«ßΓ«∩¡¿Ñ  αѺπ½∞ΓáΓá
  7356.         πßΓá¡áó½¿óáÑΓß∩ ¡Ñπ»«α∩ñ«τÑ¡¡δ¼,  Ñß½¿ «ñ¿¡ ¿º αѺπ½∞ΓáΓ«ó »αÑñß-
  7357.         Γáó½∩ÑΓ ß«í«⌐ ¡Ñ τ¿ß½«,  á ¡Ñ úÑ¡Ñα¿απÑΓß∩ ¿ß¬½ετ¿Γѽ∞¡á∩  ß¿Γπá-
  7358.         µ¿∩ »« ¡Ññ«»πßΓ¿¼«⌐ «»Ñαᵿ¿,  ¬á¬ ó ß½πτáÑ ¿¡ßΓαπ¬µ¿¿ FCOM. ê¡ß-
  7359.         Γαπ¬µ¿∩  FUCOM  óδ»«½¡∩ÑΓ  ¡Ñπ»«α∩ñ«τÑ¡¡«Ñ  ßαáó¡Ñ¡¿Ñ  ¿   ñóáªñδ
  7360.         óδ»«½¡∩ÑΓ ¿ºó½ÑτÑ¡¿Ñ ¿º ßΓѬá.
  7361.  
  7362.              ê¡ßΓαπ¬µ¿∩ FCOS   óδτ¿ß½∩ÑΓ   ¬«ß¿¡πß  ß«ñÑন¼«ú«  αÑú¿ßΓαá
  7363.         ST(0),  ¿¡ßΓαπ¬µ¿∩  FSIN  óδτ¿ß½∩ÑΓ  ß¿¡πß  ß«ñÑন¼«ú«  αÑú¿ßΓαá
  7364.         ST(0), á ¿¡ßΓαπ¬µ¿∩ FSINCOS óδτ¿ß½∩ÑΓ ß¿¡πß ¿ ¬«ß¿¡πß ß«ñÑন¼«ú«
  7365.         φΓ«ú« αÑú¿ßΓαá.
  7366.  
  7367.              ê¡ßΓαπ¬µ¿∩ FPREM1  óδτ¿ß½∩ÑΓ  «ßΓáΓ«¬  «Γ  ñѽѡ¿∩  ST(0) ¡á
  7368.  
  7369.         TASM2 #3-5/䫬              = 174 =
  7370.  
  7371.         ST(1) ó Σ«α¼áΓÑ, ß«ó¼ÑßΓ¿¼«¼ ß Σ«α¼áΓ«¼ IEEE.
  7372.  
  7373.              ìÑ ºáíδóá⌐ΓÑ « Γ«¼,  τΓ« ½εíá∩ »α«úαá¼¼á,  ¿ß»«½∞ºπεΘá∩ «ñ¡π
  7374.         ¿º φΓ¿σ ¿¡ßΓαπ¬µ¿⌐,  ¡Ñ íπñÑΓ αáí«ΓáΓ∞ ¡á ß«»α«µÑßß«αÑ  8087  ¿½¿
  7375.         80287.  èα«¼Ñ Γ«ú« ¿º-ºá ¿ñÑ¡Γ¿τ¡«ú« óδ»«½¡Ñ¡¿∩ «»Ñαᵿ⌐ ó αÑá½∞-
  7376.         ¡«¼ ¿ ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ ¿¡ßΓαπ¬µ¿∩ FSETMP  ó  ß«»α«µÑßß«αÑ  80287
  7377.         ¿ú¡«α¿απÑΓß∩.
  7378.  
  7379.              é Æπαí«  ÇßßѼí½ÑαÑ »«ññÑ᪬á ß«»α«µÑßß«αá 80387 αáºαÑΦáÑΓß∩
  7380.         »« ñ¿αÑ¬Γ¿óÑ .387.  Å«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ «í ¿¡ßΓαπ¬µ¿∩σ ß«»α«µÑß-
  7381.         ß«αá 80287 ß«ñÑনΓß∩ ó â½áóÑ 3 "æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá".
  7382.  
  7383.  
  7384.  
  7385.  
  7386.  
  7387.         TASM2 #3-5/䫬              = 175 =
  7388.  
  7389.                       â½áóá 11. ô½πτΦÑ¡¡δ⌐ αѪ¿¼ Æπαí« ÇßßѼí½Ñαá              
  7390.         -----------------------------------------------------------------
  7391.  
  7392.              ä½∩ ΓÑσ,  ¬Γ« »δΓáÑΓß∩ »α¿ß»«ß«í¿Γ∞ ñ½∩ ßó«¿σ µÑ½Ñ⌐ ¼á¬α«áß-
  7393.         ßѼí½Ñα MASM,  φΓá ú½áóá ∩ó½∩ÑΓß∩,  óÑα«∩Γ¡«,  ¡á¿í«½ÑÑ  ó᪡«⌐ ó
  7394.         ñá¡¡«¼ απ¬«ó«ñßΓóÑ.  èα«¼Ñ «τÑ¡∞ σ«α«ΦÑ⌐ ß«ó¼ÑßΓ¿¼«ßΓ¿  ß ß¿¡Γá¬-
  7395.         ß¿ß«¼ MASM, Æπαí« ÇßßѼí½Ñα »«ºó«½∩ÑΓ ¡Ñ߬«½∞¬« ßú½áñ¿Γ∞  ¡Ñπñ«í-
  7396.         ßΓóá »α«úαá¼¼¿α«óá¡¿∩ ß ¿ß»«½∞º«ó᡿Ѽ MASM ß »«¼«Θ∞ε π½πτΦÑ¡¡«ú«
  7397.         (¿½¿ «»Γ¿¼á½∞¡«ú«) αѪ¿¼á.
  7398.  
  7399.              èα«¼Ñ óßÑú« »α«τÑú« π½πτΦÑ¡¡δ⌐ αѪ¿¼ (Ideal  mode) »«ºó«½∩ÑΓ
  7400.         óá¼, ú½∩ñ∩  Γ«½∞¬« ¡á ¿ßσ«ñ¡δ⌐ ΓѬßΓ, «»αÑñѽ¿Γ∞, ¬á¬ íπñÑΓ óÑßΓ¿
  7401.         ßÑí∩ óδαáªÑ¡¿Ñ ¿½¿ «»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿. Åα¿ φΓ«¼ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿
  7402.         ñÑαªáΓ∞ ó »á¼∩Γ¿ óßÑ Γ«¡¬«ßΓ¿ MASM.  æ »«¼«Θ∞ε π½πτΦÑ¡¡«ú« αѪ¿¼á
  7403.         óδ »α«ßΓ« ß¼«ªÑΓÑ »¿ßáΓ∞ ∩ß¡δÑ ¿ τÑΓ¬¿Ñ óδαáªÑ¡¿∩,  ¬«Γ«αδÑ íπñπΓ
  7404.         óδ»«½¡∩Γ∞ß∩ Γá¬, ¬á¬ φΓ« í佫 ºáñπ¼á¡«.
  7405.  
  7406.              ô½πτΦÑ¡¡δ⌐ αѪ¿¼ ¿ß»«½∞ºπÑΓ »«τΓ¿ óßÑ ¬½ετÑóδÑ ß½«óá, «»Ñαá-
  7407.         µ¿¿ ¿ ¬«¡ßΓαπ¬µ¿¿ ∩ºδ¬á MASM.  ¥Γ« «º¡áτáÑΓ, τΓ« óδ ¼«ªÑΓÑ ¿ßß½Ñ-
  7408.         ñ«óáΓ∞  ¿ ¿ß»«½∞º«óáΓ∞ ßαÑñßΓóá π½πτΦÑ¡¡«ú« αѪ¿¼á »««τÑαÑñ¡«, ¡Ñ
  7409.         »α¿íÑúá∩ ¬ ¿ºπτÑ¡¿ε í«½∞Φ«ú«  τ¿ß½á  ¡«óδσ  »αáó¿½  ¿½¿  ¬½ετÑóδσ
  7410.         ß½«ó. éßÑ ßαÑñßΓóá π½πτΦÑ¡¡«ú« αѪ¿¼á »αÑñßΓáó½∩εΓ ß«í«⌐ αáßΦ¿αÑ-
  7411.         ¡¿∩ ¿½¿ ¼«ñ¿Σ¿¬áµ¿ε ó«º¼«ª¡«ßΓÑ⌐, ¿¼ÑεΘ¿σß∩ ó MASM.
  7412.  
  7413.              é ñá¡¡«⌐ ú½áóÑ «»¿ßδóáεΓß∩ ßαÑñßΓóá π½πτΦÑ¡¡«ú« αѪ¿¼á ¿ »«-
  7414.         ∩ß¡∩ÑΓß∩, ¬á¬ ¡«óδÑ ß¿¡Γá¬ß¿τÑ߬¿Ñ »αáó¿½á π½πτΦÑ¡¡«ú« αѪ¿¼á ¼«-
  7415.         úπΓ »«¼«τ∞ óá¼ ßφ¬«¡«¼¿Γ∞ óαѼ∩ ¿ πß¿½¿∩.  îδ ΓᬪѠ«íßπñ¿¼  »«ñ-
  7416.         α«í¡«  ¡«óδÑ  ó«º¼«ª¡«ßΓ¿ π½πτΦÑ¡¡«ú«  αѪ¿¼á  ¿ »«∩ß¡¿¼ αẽ¿τ¿∩
  7417.         ¼Ñªñπ ß¿¡Γá¬ß¿ß«¼ MASM ¿ ß¿¡Γá¬ß¿ß«¼ π½πτΦÑ¡¡«ú« αѪ¿¼á.
  7418.  
  7419.                               ùΓ« ΓᬫѠπ½πτΦÑ¡¡δ⌐ αѪ¿¼?                      
  7420.         -----------------------------------------------------------------
  7421.  
  7422.              é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ Æπαí« ÇßßѼí½Ñαá óóÑñÑ¡ ¡«óδ⌐ ß¿¡Γá¬ß¿ß
  7423.         óδαáªÑ¡¿⌐ ¿ «»Ñαá¡ñ«ó ¿¡ßΓαπ¬µ¿⌐. ¥Γ«Γ ¡«óδ⌐ ß¿¡Γá¬ß¿ß ¡Ñ «Γ½¿τá-
  7424.         ÑΓß∩ ßπΘÑßΓóÑ¡¡« «Γ ß¿¡Γá¬ß¿ßá MASM,  ¡« ∩ó½∩ÑΓß∩ í«½ÑÑ »α«ßΓ«⌐ ¿
  7425.         »«¡∩Γ¡«⌐ αÑ὿ºáµ¿Ñ⌐ «»Ñαᵿ⌐ ¿ ¬½ετÑóδσ ß½«ó MASM.  èα«¼Ñ Γ«ú« ó
  7426.         ¡Ñ¼  ¿ß»«½∞ºπεΓß∩  í«½ÑÑ «ß¼δ߽ѡ¡δÑ (ñ½∩ óáß ¿ Æπαí« ÇßßѼí½Ñαá)
  7427.         Σ«α¼δ.
  7428.  
  7429.              é π½πτΦÑ¡¡δ⌐ αѪ¿¼ ñ«íáó½Ñ¡á ßΓα«úá∩ »α«óÑα¬á Γ¿»«ó ó  óδαá-
  7430.         ªÑ¡¿∩σ.  ¥Γ«  »«¼«úáÑΓ ßóÑßΓ¿ ¬ ¼¿¡¿¼π¼π «Φ¿í¬¿,  ó«º¡¿¬áεΘ¿Ñ »α¿
  7431.         »α¿ßóá¿óá¡¿¿ αÑú¿ßΓαá¼ ¿ »ÑαѼѡ¡δ¼ º¡áτÑ¡¿⌐ ¡ÑóÑα¡δσ Γ¿»«ó ¿ »α¿
  7432.         ¿ß»«½∞º«óá¡¿¿ ¬«¡ßΓαπ¬µ¿⌐,  ¬«Γ«αδÑ óδú½∩ñ∩Γ ¬«ααÑ¬Γ¡δ¼¿ ó ¿ßσ«ñ-
  7433.         ¡«¼ ΓѬßΓÑ,  ¡« áßßÑ¼í½¿απεΓß∩ ß«óßѼ ¡Ñ ó Γ«Γ  ó¿ñ,  ¬«Γ«αδ⌐  óδ
  7434.  
  7435.         TASM2 #3-5/䫬              = 176 =
  7436.  
  7437.         «ª¿ñáÑΓÑ. é¼ÑßΓ« Γ«ú«, τΓ«íδ ñѽáΓ∞ αẽ¿τ¡δÑ »αÑñ»«½«ªÑ¡¿∩ «Γ¡«-
  7438.         ß¿Γѽ∞¡« º¡áτÑ¡¿⌐ ¿ óδαáªÑ¡¿⌐, π½πτΦÑ¡¡δ⌐ αѪ¿¼ »«ºó«½∩ÑΓ óá¼ »¿-
  7439.         ßáΓ∞ ΓѬßΓ, ¿¼ÑεΘ¿⌐ ½«ú¿τÑ߬¿⌐ ¿ φßΓÑΓ¿τÑ߬¿⌐ ß¼δß½.
  7440.  
  7441.              êº-ºá ßΓα«ú«⌐  »α«óÑન  Γ¿»á  óδαáªÑ¡¿∩  π½πτΦÑ¡¡«ú« αѪ¿¼á
  7442.         Æπαí« ÇßßѼí½Ñαá ú«αáºñ« í«½ÑÑ »«¡∩Γ¡δ ¿ ¼Ñ¡ÑÑ ß»«ß«íßΓóπεΓ »«½π-
  7443.         τÑ¡¿ε ¡Ñ»αÑñó¿ñÑ¡¡δσ αѺπ½∞ΓáΓ«ó.  é αѺπ½∞ΓáΓÑ ¼¡«ú¿Ñ ¿º »α«í½Ñ¼
  7444.         MASM, « ¬«Γ«αδσ ¼δ »αÑñπ»αѪñ὿ óáß ó »αÑñδñπΘ¿σ ú½áóáσ, ¿ßτѺá-
  7445.         εΓ »«ñ º«α¬¿¼ «¬«¼ π½πτΦÑ¡¡«ú« αѪ¿¼á.
  7446.  
  7447.              ô½πτΦÑ¡¡δ⌐ αѪ¿¼  ß«ñÑαª¿Γ  ΓᬪѠ α∩ñ ßαÑñßΓó,  «í½ÑúτáεΘ¿σ
  7448.         »α«µÑßß  »α«úαá¼¼¿α«óá¡¿∩  ¬á¬  ñ½∩  ¡«ó¿τ¬«ó,  Γᬠ¿ ñ½∩ «»δΓ¡δσ
  7449.         »«½∞º«óáΓѽÑ⌐. é«Γ ¡Ñ¬«Γ«αδÑ ¿º Γᬿσ ßαÑñßΓó:
  7450.  
  7451.           - ñπí½¿α«óá¡¿Ñ ¿¼Ñ¡ φ½Ñ¼Ñ¡Γ«ó ó« ¼¡«ªÑßΓóÑ¡¡δσ ßΓαπ¬Γπαáσ;
  7452.           - ß½«ª¡δÑ óδαáªÑ¡¿∩ HIGH ¿ LOW;
  7453.           - »αÑñ߬áºπѼá∩ «íαáí«Γ¬á ñ¿αÑ¬Γ¿ó EQU;
  7454.           - ¬«ααÑ¬Γ¡á∩ «íαáí«Γ¬á ßúαπ»»¿α«óá¡¡δσ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ;
  7455.           - π½πτΦÑ¡¡á∩ ß«ñÑαªáΓѽ∞¡«ßΓ∞ ñ¿αÑ¬Γ¿ó;
  7456.           - σ«α«Φ« ó«ß»α¿¡¿¼áѼδÑ óδαáªÑ¡¿∩, ºá¬½ετÑ¡¡δÑ ó ¬óáñαáΓ¡δѠ߬«í¬¿.
  7457.  
  7458.                         ä½∩ τÑú« ¿ß»«½∞ºπÑΓß∩ π½πτΦÑ¡¡δ⌐ αѪ¿¼?                
  7459.         -----------------------------------------------------------------
  7460.  
  7461.              àßΓ∞ ¼¡«ªÑßΓó«  »α¿τ¿¡,  »« ¬«Γ«αδ¼ óá¼ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞
  7462.         π½πτΦÑ¡¡δ⌐ αѪ¿¼ Æπαí« ÇßßѼí½Ñαá.  àß½¿ óδ ¿ºπτáÑΓÑ ∩ºδ¬ ÇßßѼí-
  7463.         ½Ñαá,  óδ  ß¼«ªÑΓÑ  ½Ñú¬« ßΓα«¿Γ∞ ñ½∩ »«½πτÑ¡¿∩ ªÑ½áѼ«ú« φΣΣѬΓá
  7464.         óδαáªÑ¡¿∩ ¿ «»ÑαáΓ«αδ π½πτΦÑ¡¡«ú« αѪ¿¼á.  éá¼ ¡Ñ »α¿ñÑΓß∩ σ«ñ¿Γ∞
  7465.         ó«¬απú  ñá  «¬«½« ¿ »α«í«óáΓ∞ αẽ¿τ¡δÑ óáα¿á¡Γδ,  »«¬á óδ ¡Ñ ¿ß-
  7466.         »«½∞ºπÑΓÑ ¿¡ßΓαπ¬µ¿ε,  ¬«Γ«αá∩ ñѽáÑΓ ¿¼Ñ¡¡« Γ«,  τΓ« óδ  σ«Γ¿ΓÑ.
  7467.         àß½¿ π óáß ¿¼ÑÑΓß∩ «»δΓ »α«úαá¼¼¿α«óá¡¿∩ ¡á ÇßßѼí½ÑαÑ, Γ« óδ ¼«-
  7468.         ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ßαÑñßΓóá π½πτΦÑ¡¡«ú«  αѪ¿¼á  Æπαí«  ÇßßѼí½Ñαá
  7469.         ñ½∩  αáºαáí«Γ¬¿ ß½«ª¡δσ »α«úαá¼¼,  ¿ß»«½∞ºπεΘ¿σ αáßΦ¿αÑ¡¿∩ ∩ºδ¬á,
  7470.         ΓᬿÑ, ¡á»α¿¼Ñα, ¬á¬ ó½«ªÑ¡¡δÑ ßΓαπ¬Γπαδ ¿ «íΩÑñ¿¡Ñ¡¿∩.
  7471.  
  7472.              é αѺπ½∞ΓáΓÑ í«½ÑÑ τÑΓ¬«ú« ß¿¡Γá¬ß¿ßá π½πτΦÑ¡¡δ⌐ αѪ¿¼ Æπαí«
  7473.         ÇßßѼí½Ñαá »«ºó«½∩ÑΓ áßßÑ¼í½¿α«óáΓ∞ Σá⌐½δ ¡á 30%  íδßΓαÑÑ,  τѼ ó
  7474.         αѪ¿¼Ñ MASM.  ùѼ í«½∞ΦÑ «íΩѼ óáΦ¿σ »α«úαá¼¼ ¿ »α«úαá¼¼¡δ󠬫¼»-
  7475.         ½Ñ¬ß«ó, ΓѼ í«½∞ΦÑ óαѼѡ¿ óδ ßφ¬«¡«¼¿ΓÑ »α¿ áßßÑ¼í½¿α«óá¡¿¿, »Ñ-
  7476.         αÑ⌐ñ∩ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼.
  7477.  
  7478.              æΓα«ú¿Ñ »αáó¿½á »α«óÑન Γ¿»«ó,  ¡á½áúáѼδÑ π½πτΦÑ¡¡δ¼ αѪ¿-
  7479.         ¼«¼, »«ºó«½∩εΓ Æπαí« ÇßßѼí½Ñαπ óδ∩ó½∩Γ∞ «Φ¿í¬¿, ¬«Γ«αδÑ ó »α«Γ¿-
  7480.         ó¡«¼  ß½πτáÑ óδ  «í¡áαπª¿½¿ íδ Γ«½∞¬« »α¿ «Γ½áñ¬Ñ óáΦÑ⌐ »α«úαá¼¼δ
  7481.         ¿½¿ ÑÑ óδ»«½¡Ñ¡¿¿. ¥Γ« á¡á½«ú¿τ¡« Γ«¼π, ¬á¬¿¼ «íαẫ¼ ¬«¼»¿½∩Γ«αδ
  7482.  
  7483.         TASM2 #3-5/䫬              = 177 =
  7484.  
  7485.         ∩ºδ¬«ó óδß«¬«ú« πα«ó¡∩ «¬áºδóáεΓ óá¼ »«¼«Θ∞, «Γ¼Ñτá∩ ß«¼¡¿Γѽ∞¡δÑ
  7486.         ¬«¡ßΓαπ¬µ¿¿ ¿ ¡Ñß««ΓóÑΓßΓó¿Ñ αẼÑα«ó ñá¡¡δσ.
  7487.  
  7488.              ò«Γ∩ ó  π½πτΦÑ¡¡«¼ αѪ¿¼Ñ Æπαí« ÇßßѼí½Ñαá ó ¡Ñ¬«Γ«αδσ óδαá-
  7489.         ªÑ¡¿∩σ ¿ß»«½∞ºπÑΓß∩ ñαπú«⌐ ß¿¡Γá¬ß¿ß,  óδ,  ΓѼ ¡Ñ ¼Ñ¡ÑÑ,  ¼«ªÑΓÑ
  7490.         »¿ßáΓ∞ »α«úαá¼¼δ, ¬«Γ«αδÑ íπñπΓ «ñ¿¡á¬«ó« σ«α«Φ« áßßÑ¼í½¿α«óáΓ∞ß∩
  7491.         ¬á¬ ó αѪ¿¼Ñ MASM,  Γᬠ¿ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ.  éδ ¼«ªÑΓÑ ΓᬪѠó
  7492.         «ñ¡«¼ ¿ Γ«¼ ªÑ ¿ßσ«ñ¡«¼ Σá⌐½Ñ  »ÑαѬ½ετáΓ∞ß∩  ¿º  αѪ¿¼á  MASM  ó
  7493.         π½πτΦÑ¡¡δ⌐  αѪ¿¼ ¿ «íαáΓ¡« ΓᬠτáßΓ«,  ¡á߬«½∞¬« φΓ« ¡Ñ«íσ«ñ¿¼«.
  7494.         ¥Γ« «ß«íÑ¡¡« »«½Ñº¡« »α¿ φ¬ß»Ñα¿¼Ñ¡Γ¿α«óá¡¿¿ ß« ßαÑñßΓóἿ  π½πτ-
  7495.         ΦÑ¡¡«ú« αѪ¿¼á,  ¿½¿ »α¿ »αÑ«íαẫóá¡¿¿ ¿¼ÑεΘ¿σß∩ »α«úαá¼¼, ¡á»¿-
  7496.         ßá¡¡δσ ó ß¿¡Γá¬ß¿ßÑ MASM.  éδ ¼«ªÑΓÑ »ÑαѬ½ετ¿Γ∞ß∩  ó  π½πτΦÑ¡¡δ⌐
  7497.         αѪ¿¼ ó ¡«óδσ τáßΓ∩σ »α«úαá¼¼δ, ñ«íáó½∩Ѽδσ ¬ ¿¼ÑεΘѼπß∩ ¿ßσ«ñ¡«-
  7498.         ¼π ¬«ñπ.  Åα¿ φΓ«¼ ó «ßΓá½∞¡δσ τáßΓ∩σ »α«úαá¼¼δ ß«σαá¡¿Γß∩ »«½¡á∩
  7499.         ß«ó¼ÑßΓ¿¼«ßΓ∞ ß MASM.
  7500.  
  7501.                     ÅÑαѬ½ετÑ¡¿Ñ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼ ¿ óδσ«ñ ¿º ¡Ñú«            
  7502.         -----------------------------------------------------------------
  7503.  
  7504.              ä½∩ »ÑαѬ½ετÑ¡¿∩  ¼Ñªñπ  αѪ¿¼«¼  MASM  ¿ π½πτΦÑ¡¡δ¼ αѪ¿¼«¼
  7505.         ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óδ IDEAL ¿ MASM. Æπαí« ÇßßѼí½Ñα óßÑúñá
  7506.         ¡áτ¿¡áÑΓ  áßßÑ¼í½¿α«óá¡¿Ñ ¿ßσ«ñ¡«ú« Σá⌐½á ó αѪ¿¼Ñ MASM.  ä½∩ »Ñ-
  7507.         αѬ½ετÑ¡¿∩ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼ »ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ  ½εíδσ ßαÑñßΓó
  7508.         φΓ«ú«  αѪ¿¼á  ó ¿ßσ«ñ¡δ⌐ Σá⌐½ ¡πª¡« ó¬½ετ¿Γ∞ ñ¿αÑ¬Γ¿óπ IDEAL.  æ
  7509.         φΓ«ú« ¼«¼Ñ¡Γá ¿ ñ« ß½ÑñπεΘÑ⌐ ñ¿αÑ¬Γ¿óδ MASM óßÑ  «»ÑαáΓ«αδ  íπñπΓ
  7510.         óÑßΓ¿ ßÑí∩ Γá¬,  ¬á¬ «»¿ßδóáÑΓß∩ ó ñá¡¡«⌐ ú½áóÑ. éδ ¼«ªÑΓÑ »ÑαѬ-
  7511.         ½ετáΓ∞ß∩ ¿º αѪ¿¼á MASM ó αѪ¿¼ IDEAL ó  ¿ßσ«ñ¡«¼  Σá⌐½Ñ  ßΓ«½∞¬«
  7512.         αáº,  ß¬«½∞¬« »«ΓαÑíπÑΓß∩ ó ó ½εí«¼ ¼ÑßΓÑ ¿ßσ«ñ¡«ú« Σá⌐½á. Åα¿óÑ-
  7513.         ñѼ »α¿¼Ñα:
  7514.  
  7515.                 DATA    SEGMENT         ; ¡áτὫ ó αѪ¿¼Ñ MASM
  7516.                 abc     LABEL BYTE      ; abc áñαÑßπÑΓß∩ ¬ xyz,
  7517.                                         ; ¬á¬ ¬ íá⌐Γπ
  7518.                 xyz     DW      0       ; «»αÑñѽ¿Γ∞ ß½«ó« »«
  7519.                                         ; ¼ÑΓ¬Ñ xyz
  7520.                 DATA    ENDS            ; ºáóÑαΦ¿Γ∞ ßÑú¼Ñ¡Γ
  7521.                                         ; ñá¡¡δσ
  7522.                         IDEAL           ; »ÑαÑ⌐Γ¿ ó π½πτΦÑ¡¡δ⌐
  7523.                                         ; αѪ¿¼
  7524.                 SEGMENT CODE            ; ¬½ετÑó«Ñ ß½«ó« SEGMENT
  7525.                                         ; ΓÑ»Ñα∞ ß½ÑñπÑΓ »Ñαóδ¼
  7526.                 PROC    MyProc          ; ¬½ετÑó«Ñ ß½«ó« PROC
  7527.                                         ; Γ«ªÑ ß½ÑñπÑΓ »Ñαóδ¼
  7528.                         .
  7529.                         .               ; ºñÑß∞ ¼«ª¡« »α«úαá¼¼¿α«óáΓ∞
  7530.  
  7531.         TASM2 #3-5/䫬              = 178 =
  7532.  
  7533.                         .               ; ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  7534.                 END     MyProc          ; »«óΓ«αÑ¡¿Ñ ¼ÑΓ¬¿ MyProc
  7535.                                         ; ¡Ñ«í∩ºáΓѽ∞¡«
  7536.                 ENDS                    ; »«óΓ«αÑ¡¿Ñ ¿¼Ñ¡¿ ßÑú¼Ñ¡Γá
  7537.                                         ; ¡Ñ ΓαÑíπÑΓß∩
  7538.                         MASM            ; »ÑαѬ½ετÑ¡¿Ñ «íαáΓ¡« ó
  7539.                                         ; αѪ¿¼ MASM
  7540.                 CODE    SEGMENT         ; »ÑαÑñ ¬½ετÑóδ¼ ß½«ó«¼ SEGMENT
  7541.                                         ; ΓÑ»Ñα∞ ΓαÑíπÑΓß∩ ¿¼∩
  7542.                 Func2   PROC            ; ¿¼∩ ΓÑ»Ñα∞ ΓᬪѠ߽ÑñπÑΓ »ÑαÑñ
  7543.                                         ; ¬½ετÑóδ¼ ß½«ó«¼ PROC
  7544.                         .
  7545.                         .               ; »α«úαá¼¼¿α«óá¡¿Ñ ó αѪ¿¼Ñ
  7546.                         .               ; MASM
  7547.                         IDEAL           ; »ÑαѬ½ετÑ¡¿Ñ «íαáΓ¡« ó
  7548.                         .               ; π½πτΦÑ¡¡δ⌐ αѪ¿¼
  7549.                         .               ; »α«úαá¼¼¿α«óá¡¿Ñ ó
  7550.                         .               ; π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  7551.                         MASM            ; ó«ºóαáΘÑ¡¿Ñ ó αѪ¿¼ MASM
  7552.                 Func2   ENDP            ; ¿¼∩ «»∩Γ∞ ΓαÑíπÑΓß∩ π¬áºδóáΓ∞
  7553.                                         ; »ÑαÑñ ¬½ετÑóδ¼ ß½«ó«¼
  7554.                 CODE    ENDS            ; ºñÑß∞ ΓᬪѠΓαÑíπÑΓß∩ ¿¼∩
  7555.  
  7556.              èᬠóδ ¼«ªÑΓÑ ºá¼ÑΓ¿Γ∞,  ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¬½ετÑóδÑ  ß½«óá
  7557.         ñ¿αÑ¬Γ¿ó  (¡á»α¿¼Ñα PROC ¿½¿ SEGMENT) π¬áºδóáεΓß∩ »ÑαÑñ ß««ΓóÑΓß-
  7558.         ΓóπεΘ¿¼¿ ¿¼Ñ¡á¼¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó, Γ« ÑßΓ∞ ó »«α∩ñ¬Ñ, «íαáΓ¡«¼ Γ«-
  7559.         ¼π,  ¬«Γ«αδ⌐ »α¿¡∩Γ ó MASM. èα«¼Ñ Γ«ú« ¿¼ÑÑΓß∩ ó«º¼«ª¡«ßΓ∞ »«óΓ«-
  7560.         α¿Γ∞ ¿¼∩ »α«µÑñπαδ ¿½¿ ßÑú¼Ñ¡Γá »«ß½Ñ  ñ¿αÑ¬Γ¿ó  ENDP  ¿½¿  ENDS.
  7561.         ä«íáó½Ñ¡¿Ñ φΓ«ú« ¿¼Ñ¡¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ ßÑú¼Ñ¡Γ ¿½¿ »α«µÑñπαπ,  ¬«-
  7562.         Γ«αá∩ ºá¬á¡τ¿óáÑΓß∩, ¿ ñѽáÑΓ »α«úαá¼¼π í«½ÑÑ »«¡∩Γ¡«⌐. ¥Γ« σ«α«-
  7563.         Φ¿⌐  »αá¬Γ¿τÑ߬¿⌐ »α¿Ñ¼,  «ß«íÑ¡¡« ó »α«úαá¼¼áσ,  ß«ñÑαªáΘ¿σ ¡Ñß-
  7564.         ¬«½∞¬« ó½«ªÑ¡¡δσ »α«µÑñπα ¿ ßÑú¼Ñ¡Γ«ó. Äñ¡á¬« π¬áºδóáΓ∞ ¿¼∩ ¿ñÑ¡-
  7565.         Γ¿Σ¿¬áΓ«αá »«ß½Ñ ENDP ¿½¿ ENDS ¡Ñ«í∩ºáΓѽ∞¡«.
  7566.  
  7567.  
  7568.  
  7569.  
  7570.         TASM2 #3-5/䫬              = 179 =
  7571.  
  7572.                                                                                
  7573.         ÄΓ½¿τ¿∩ π½πτΦÑ¡¡«ú« αѪ¿¼á ¿ αѪ¿¼á MASM
  7574.         -----------------------------------------------------------------
  7575.  
  7576.              é ñá¡¡«¼   αáºñѽѠ  ¼δ   «»¿ΦѼ   «ß¡«ó¡δÑ  αẽ¿τ¿∩  ¼Ñªñπ
  7577.         π½πτΦÑ¡¡δ¼ αѪ¿¼«¼ ¿ αѪ¿¼«¼ MASM.  àß½¿ óδ º¡á¬«¼δ  ß  MASM,  óδ
  7578.         ¼«ªÑΓÑ  »«ªÑ½áΓ∞  »«φ¬ß»Ñα¿¼Ñ¡Γ¿α«óáΓ∞  ß  «Γñѽ∞¡δ¼¿ ßαÑñßΓóἿ,
  7579.         »αÑ«íαáºπ∩ ¡Ñí«½∞Φ¿Ñ τáßΓ¿ ¿¼ÑεΘ¿σß∩ »α«úαá¼¼ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼.
  7580.         ìÑ  ºáíδóá⌐ΓÑ  Γ«½∞¬«  »α¿  φΓ«¼  ºá¬½ετáΓ∞  ¡«óδ⌐ ¿ßσ«ñ¡δ⌐ ¬«ñ ó
  7581.         ¬½ετÑóδÑ ß½«óá IDEAL  ¿  MASM.  æ½Ññπ∩  Γᬫ⌐  ßσѼѠ ¿  «ßóá¿óá∩
  7582.         π½πτΦÑ¡¡δ⌐  αѪ¿¼ Φáú ºá Φáú«¼,  óδ ¼«ªÑΓÑ áßßÑ¼í½¿α«óáΓ∞ ΓѬπΘπε
  7583.         »α«úαá¼¼π íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »ÑαÑß¼áΓα¿óáΓ∞  ¬áªñπε  ¿¡ßΓαπ¬µ¿ε  ¿
  7584.         ¿ß»«½∞º«óá¡¿∩   ß»Ñµ¿á½∞¡δσ   ßαÑñßΓó   π½πτΦÑ¡¡«ú«   αѪ¿¼á.   é
  7585.         ¬«¡µÑ-¬«¡µ«ó óδ, ¬«¡Ñτ¡«, ¼«ªÑΓÑ »α¿⌐Γ¿ ¬ αÑΦÑ¡¿ε »α«úαá¼¼¿α«óáΓ∞
  7586.         µÑ½¿¬«¼  ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ.  ï¿í« óδ ¼«ªÑΓÑ τÑαÑñ«óáΓ∞ ¼«ñπ½¿ ó
  7587.         αѪ¿¼Ñ MASM ¿ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ. éδí«α «ßΓáÑΓß∩ ºá óἿ.
  7588.  
  7589.                                                                                
  7590.         ïѬßѼδ π½πτΦÑ¡¡«ú« αѪ¿¼á
  7591.         -----------------------------------------------------------------
  7592.  
  7593.              Æπαí« ÇßßѼí½Ñα ßτ¿ΓδóáÑΓ  ¿  ó«ß»α¿¡¿¼áÑΓ  óáΦπ  »α«úαá¼¼π,
  7594.         αáºí¿óá∩ ΓѬßΓ ¡á «Γñѽ∞¡δÑ ß½«óá ¿½¿ ß¿¼ó«½δ, ¬«Γ«αδÑ ¡áºδóáεΓß∩
  7595.         ½Ñ¬ßѼἿ. Åα¿¼Ñαδ ½Ñ¬ßѼ ó¬½ετáεΓ ó ßÑí∩ ¼ÑΓ¬¿, ΓᬿѠ¬á¬ VALUE,
  7596.         NAME ¿½¿ AGE, »½εß ñαπú¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ τ¿ß½á, τáßΓ¿ óδαáªÑ¡¿⌐ ¿
  7597.         áα¿Σ¼ÑΓ¿τÑ߬¿Ñ «»Ñαᵿ¿ (ΓᬿѠ¬á¬ +, -, * ¿ /).
  7598.  
  7599.              äóá Γ¿»á ½Ñ¬ßѼ - ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ¿ τ¿ß½á ß  »½áóáεΘÑ⌐ Γ«τ¬«⌐
  7600.         - ¿¼ÑεΓ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ß½Ñú¬á αẽ¿τ¡δÑ Σ«α¼δ.  èᬠ«»¿ßδóá-
  7601.         ÑΓß∩ ñá½ÑÑ,  φΓ¿  ¿º¼Ñ¡Ñ¡¿∩  »«∩ß¡∩εΓ ¡Ñ¬«Γ«αδÑ ñóπß¼δ߽ѡ¡«ßΓ¿ ¿
  7602.         ¡Ñ«ñ¡«º¡áτ¡«ßΓ∞ ó ß¿¡Γá¬ß¿ßÑ MASM.
  7603.  
  7604.                                 ïѬßѼδ-¿ñÑ¡Γ¿Σ¿¬áΓ«αδ                         
  7605.         -----------------------------------------------------------------
  7606.  
  7607.              é ß½πτáÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó π½πτΦÑ¡¡«ú« αѪ¿¼á Γ«τ¬π ó ¬áτÑßΓóÑ
  7608.         φ½Ñ¼Ñ¡Γá  ¿¼Ñ¡¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ß»«½∞º«óáΓ∞ ¡Ñ ñ«»π߬áÑΓß∩. Æ«τ¬π
  7609.         ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« ¬á¬ «»Ñαᵿε φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ  ¿½¿  ó
  7610.         τ¿ß½Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  7611.  
  7612.              ¥½Ñ¼Ñ¡Γδ ßΓαπ¬Γπα ¿ «íΩÑñ¿¡Ñ¡¿⌐ (¡Ñ¬«Γ«αδÑ ¡áºδóáεΓ ¿σ »«½∩-
  7613.         ¼¿) ¡Ñ «»αÑñѽ∩εΓß∩,  ¬á¬ ú½«íá½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ (Γ« ÑßΓ∞  ¬á¬
  7614.         ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ,  ñ«ßΓπ»¡δÑ ¿º ½εí«⌐ τáßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ).  ¥½Ñ-
  7615.         ¼Ñ¡Γδ ßΓαπ¬Γπα ¿ «íΩÑñ¿¡Ñ¡¿⌐ ßπΘÑßΓóπεΓ Γ«½∞¬« ó¡πΓα¿ Γ«⌐  ßΓαπ¬-
  7616.         Γπαδ, ¬ ¬«Γ«α«⌐ «¡¿ »α¿¡áñ½ÑªáΓ. ¥Γ« »«ºó«½∩ÑΓ óá¼ ¿¼ÑΓ∞ ¡Ñ߬«½∞-
  7617.         ¬« ßΓαπ¬Γπα,  ß«ñÑαªáΘ¿σ  φ½Ñ¼Ñ¡Γδ  ß  «ñ¿¡á¬«ó묨  ¿¼Ñ¡á¼¿.  é¡Ñ
  7618.  
  7619.         TASM2 #3-5/䫬              = 180 =
  7620.  
  7621.         ßΓαπ¬Γπαδ óδ ΓᬪѠ¼«ªÑΓÑ ñπí½¿α«óáΓ∞ φΓ¿ ¿¼Ñ¡á ñ½∩ ñαπú¿σ µÑ½Ñ⌐,
  7622.         ¡á»α¿¼Ñα:
  7623.  
  7624.                 Pennies DW      0
  7625.                 STRUC   Heaven
  7626.                 Dimes   DW      ?
  7627.                 Nißkels DW      ?
  7628.                 Pennies DW      ?           ; ¬«¡Σ½¿¬Γá ºñÑß∞ ¡ÑΓ
  7629.                 ENDS
  7630.                 Take    Heaven <>
  7631.  
  7632.              é φΓ«¼ »α¿¼ÑαÑ »«¬áºá¡«,  ¬á¬ ß«ºñáεΓß∩ »ÑαѼѡ¡á∩  ß  ΓαѼ∩
  7633.         »«½∩¼¿ (ßΓαπ¬Γπαá ß ¿¼Ñ¡Ñ¼ Heaven). Å«½∩ Dimes ¿ Nickels π¡¿¬á½∞-
  7634.         ¡δ ñ½∩ ßΓαπ¬Γπαδ.  Äñ¡á¬« Pennies óßΓαÑτáÑΓß∩ ñóáªñδ - ó¡Ñ ßΓαπ¬-
  7635.         Γπαδ ¿ ó¡πΓα¿ ÑÑ.
  7636.  
  7637.              ¥Γ«Γ »α¿¼Ñα »«¬áºδóáÑΓ,  τΓ« «ñ¡« ¿ Γ«ªÑ ¿¼∩ (Pennies) ¼«ªÑΓ
  7638.         óßΓαÑτáΓ∞ß∩ ¬á¬ ó¡πΓα¿ ßΓαπ¬Γπαδ,  Γᬠ¿ ó¡Ñ ßΓαπ¬Γπαδ,  ¿ φΓ« ¡Ñ
  7639.         »α¿ó«ñ¿Γ ¬ ¬«¡Σ½¿¬Γπ, τΓ« ó MASM ßñѽáΓ∞ í佫 ¡Ñ½∞º∩.
  7640.  
  7641.              ÅÑαѼѡ¡á∩ Pennies  ó¡Ñ  ßΓαπ¬Γπαδ Heaven «Γ½¿τáÑΓß∩ «Γ φ½Ñ-
  7642.         ¼Ñ¡Γá Pennies,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó¡πΓα¿ ßΓαπ¬Γπαδ.  æßδ½¬á ¡á
  7643.         ñπí½¿¬áΓ  ¿¼Ñ¡¿  ó¡πΓα¿  ßΓαπ¬Γπαδ ΓαÑíπÑΓ ΓαÑσ φ½Ñ¼Ñ¡Γ«ó:  ¿¼Ñ¡¿
  7644.         ßΓαπ¬Γπαδ, Γ«τ¬¿, ¿ ¿¼Ñ¡¿ φ½Ñ¼Ñ¡Γá. é ñá¡¡«¼ »α¿¼ÑαÑ Take.Pennies
  7645.         αáó¡«  ß¼ÑΘÑ¡¿ε »«½∩ Pennies ó¡πΓα¿ Heaven.  Äñ¡á¬« Pennies αáó¡«
  7646.         ß¼ÑΘÑ¡¿ε »ÑαѼѡ¡«⌐ ó¡Ñ ßΓαπ¬Γπαδ.
  7647.  
  7648.  
  7649.  
  7650.         TASM2 #3-5/䫬              = 181 =
  7651.  
  7652.                                                                                
  7653.         äπí½¿α«óá¡¿Ñ ¿¼Ñ¡ φ½Ñ¼Ñ¡Γ«ó
  7654.         -----------------------------------------------------------------
  7655.  
  7656.              ô½πτΦÑ¡¡δ⌐ αѪ¿¼  »«ºó«½∩ÑΓ óá¼ ΓᬪѠñπí½¿α«óáΓ∞ ¿¼Ñ¡á φ½Ñ-
  7657.         ¼Ñ¡Γ«ó ó αẽ¿τ¡δσ ßΓαπ¬Γπαáσ.  ¥½Ñ¼Ñ¡Γδ ¼«úπΓ íδΓ∞  «ñ¡«ú«  Γ¿»á
  7658.         ¿½¿ αạδσ Γ¿»«ó, ¬á¬ ó ß½ÑñπεΘ¿σ ñóπσ ßΓαπ¬Γπαáσ, úñÑ «íÑ ßΓαπ¬-
  7659.         Γπαδ ß«ñÑαªáΓ »«½∩ Size «ñ¡«ú« Γ¿»á ¿ ó «ñ¡«⌐ ¿ Γ«⌐  ªÑ  »«º¿µ¿¿,
  7660.         »½εß »«½∩ Amount αạδσ Γ¿»«ó ¿ ó αẽ¿τ¡δσ »«º¿µ¿∩σ:
  7661.  
  7662.                 STRUC   SomeStuff
  7663.                 Size    DW      ?
  7664.                 Flag    DB      ?
  7665.                 Amount  DW      ?
  7666.                 ENDS
  7667.  
  7668.                 STRUC   OtherStuff
  7669.                 Size    DW      ?       ; ¬«¡Σ½¿¬Γá ºñÑß∞ ¡ÑΓ
  7670.                 Amount  DB      ?       ; ºñÑß∞ ΓᬪÑ
  7671.                 ENDS
  7672.  
  7673.  
  7674.  
  7675.  
  7676.         TASM2 #3-5/䫬              = 182 =
  7677.  
  7678.                 ïѬßѼδ, »αÑñßΓáó½∩εΘ¿Ñ ß«í«⌐ τ¿ß½á ß »½áóáεΘÑ⌐ Γ«τ¬«⌐         
  7679.         -----------------------------------------------------------------
  7680.  
  7681.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ Æπαí« ÇßßѼí½Ñαá ñÑß∩Γ¿τ¡δÑ τ¿ß½á ß »½á-
  7682.         óáεΘÑ⌐ Γ«τ¬«⌐ ñ«½ª¡δ óßÑúñá ó¬½ετáΓ∞ ó ßÑí∩ ß¿¼ó«½ Γ«τ¬¿ (.):
  7683.  
  7684.                 FP      DT      1.0e7   ; º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
  7685.                                         ; ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  7686.  
  7687.              çñÑß∞ «»αÑñѽ∩ÑΓß∩ 10-íá⌐Γ«ó«Ñ º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ß
  7688.         ¿¼Ñ¡Ñ¼ FP,  αáó¡«Ñ  1.0e7.  é  αѪ¿¼Ñ MASM óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞
  7689.         ΓᬪѠ߽ÑñπεΘπε Σ«α¼π (¬«Γ«αá∩ ΓᬪѠó«ß»α¿¡¿¼áÑΓß∩,  ¡« ∩ó½∩ÑΓß∩
  7690.         ¼Ñ¡ÑÑ »«¡∩Γ¡«⌐):
  7691.  
  7692.                 FP      DT      1E7     ; º¡áτÑ¡¿Ñ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐
  7693.                                         ; ó αѪ¿¼Ñ MASM
  7694.  
  7695.              î«ªÑΓ »«¬áºáΓ∞ß∩,  τΓ« ºñÑß∞ ¡ÑΓ ¡¿τÑú« »½«σ«ú«, «ñ¡á¬« Ñß½¿
  7696.         óδ ó »αÑñδñπΘÑ⌐ τáßΓ¿ »α«úαá¼¼δ ó¬½ετ¿ΓÑ ñ¿αÑ¬Γ¿óπ .RADIX 16, ¬«-
  7697.         Γ«αá∩ ¿º¼Ñ¡∩ÑΓ ¿ß»«½∞ºπѼ«Ñ »« π¼«½τá¡¿ε «ß¡«óá¡¿Ñ  ß ñÑß∩Γ¿τ¡«ú«
  7698.         ¡á ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ, Γ« MASM áßßÑ¼í½¿απÑΓ óáΦÑ º¡áτÑ¡¿Ñ ß »½áóá-
  7699.         εΘÑ⌐ Γ«τ¬«⌐, ¬á¬ ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ τ¿ß½« 01. ÆαÑíπ∩ «Γ óáß π¬áºá-
  7700.         ¡¿∩  ñÑß∩Γ¿τ¡«⌐ Γ«τ¬¿,  π½πτΦÑ¡¡δ⌐ αѪ¿¼ π½πτΦÑ¡¡δ⌐ αѪ¿¼ ¡¿¬«úñá
  7701.         ¡Ñ »α¿óÑΓ ¬ Γᬫ⌐ »πΓá¡¿µÑ.
  7702.  
  7703.                  ÆÑ¬ßΓ«óδÑ ¿ τ¿ß½«óδÑ »α¿ßóá¿óá¡¿∩ (ñ¿αÑ¬Γ¿óδ EQU ¿ =)         
  7704.         -----------------------------------------------------------------
  7705.  
  7706.              Ä»αÑñѽѡ¿∩ EQU,  ¬«Γ«αδÑ ¡áºδóáεΓß∩  ΓᬪѠ »α¿αáó¡¿óá¡¿∩¼¿
  7707.         ¿½¿ »α¿ßóá¿óá¡¿∩¼¿, ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ óßÑúñá «íαáíáΓδóáεΓß∩ ¬á¬
  7708.         ΓѬßΓ.  é αѪ¿¼Ñ MASM »α¿αáó¡¿óá¡¿∩  ¿¡«úñá  «íαáíáΓδóáεΓß∩,  ¬á¬
  7709.         ΓѬßΓ,  á ó ñαπú¿σ ß½πτá∩σ - ¬á¬ τ¿ß½á. Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿Ñ »α¿-
  7710.         ¼Ñαδ:
  7711.  
  7712.                 ; ÄíΩ∩ó¿Γ∞ ¡Ñ߬«½∞¬« »α¿αáó¡¿óá¡¿⌐
  7713.                 A       =       4
  7714.                 B       =       5
  7715.                 C       EQU     B + A
  7716.                 B       =       6
  7717.  
  7718.                 ; Ä»¿ßáΓ∞ »ÑαѼѡ¡πε
  7719.                 V       DW      C       ; 9 ó αѪ¿¼Ñ MASM, 10 ó
  7720.                                         ; π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  7721.  
  7722.              MASM óδτ¿ß½∩ÑΓ óδαáªÑ¡¿Ñ B + A »α¿ «íαáí«Γ¬Ñ  óδαáªÑ¡¿∩ EQU.
  7723.  
  7724.         TASM2 #3-5/䫬              = 183 =
  7725.  
  7726.         é φë༫¼Ñ¡Γ A αáó¡« 4, á B αáó¡« 5, Γᬿ¼ «íαẫ¼, C αáó¡« 9. é
  7727.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ φΓ« ªÑ óδαáªÑ¡¿Ñ «íαáíáΓδóáÑΓß∩ »«-ñαπú«¼π, ºá-
  7728.         »¿ßδóá∩  ó  ΓѬßΓ«ó«¼ ó¿ñÑ óßÑ,  τΓ« ß½ÑñπÑΓ ºá ñ¿αÑ¬Γ¿ó«⌐ EQU (ó
  7729.         ñá¡¡«¼ ß½πτáÑ B + A). é»«ß½ÑñßΓó¿¿ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ óδ»«½¡∩ÑΓ-
  7730.         ß∩ »«ñßΓá¡«ó¬á φΓ«⌐ ßΓ᫬¿ (¬«úñá óßΓαÑτáÑΓß∩ C). é ñá¡¡«¼ »α¿¼Ñ-
  7731.         αÑ,  »«ß¬«½∞¬π óδτ¿ß½Ñ¡¿Ñ óδαáªÑ¡¿Ñ «Γ¬½áñδóáÑΓß∩ ñ« «»¿ßá¡¿∩ »Ñ-
  7732.         αѼѡ¡«⌐ V,  ¿ Γᬠ¬á¬ B αá¡ÑÑ í佫 »ÑαÑ«»αÑñѽѡ«,  ¬á¬ 6,  Γ« ó
  7733.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ V íπñÑΓ αáó¡« 10 (6+4).
  7734.  
  7735.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ñ¿αÑ¬Γ¿óá EQU óßÑúñá  «»αÑñѽ∩ÑΓ ßΓ᫬π.
  7736.         ç¡á¬  αáóÑ¡ßΓóá (=) óßÑúñá «»αÑñѽ∩ÑΓ óδτ¿ß½∩Ѽ«Ñ óδαáªÑ¡¿Ñ.  ¥Γ«
  7737.         »αá󿽫 ½Ñú¬« πßó«¿Γ∞,  Ñß½¿ óδ ºá»«¼¡¿ΓÑ,  τΓ« ß¿¼ó«½  αáóÑ¡ßΓóá
  7738.         (=) »α¿ó«ñ¿Γ ¬ ¡Ñ¼Ññ½Ñ¡¡«¼π óδτ¿ß½Ñ¡¿ε óδαáªÑ¡¿⌐, á ñ¿αÑ¬Γ¿óá EQU
  7739.         «Γ¬½áñδóáÑΓ óδτ¿ß½Ñ¡¿Ñ óδαáªÑ¡¿∩ ñ« Γ«ú« ¼«¼Ñ¡Γá, ¬«úñá óßΓαÑΓ¿Γ-
  7740.         ß∩ ¿¼∩ ¬«¡ßΓá¡Γδ.  ê¡«úñá φΓ« ¡áºδóáεΓ "αá¡¡¿¼" ¿ "»«ºñ¡¿¼" »α¿ß-
  7741.         óá¿ó᡿Ѽ.
  7742.  
  7743.                                                                                
  7744.         éδαáªÑ¡¿∩ ¿ «»Ñαá¡ñδ
  7745.         -----------------------------------------------------------------
  7746.  
  7747.              Äß¡«ó¡«Ñ αẽ¿τ¿Ñ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ π½πτΦÑ¡¡«ú« αѪ¿¼á ¿ αÑ-
  7748.         ª¿¼á MASM ß«ßΓ«¿Γ ó Σπ¡¬µ¿¿, ¬«Γ«απε óδ»«½¡∩εΓ ¬óáñαáΓ¡δѠ߬«í¬¿.
  7749.         é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¬óáñαáΓ¡δѠ߬«í¬¿ óßÑúñá «Γ¡«ß∩Γß∩ ¬ ß«ñÑন-
  7750.         ¼«¼π ºá¬½ετáѼ«⌐ ó ¡¿σ óѽ¿τ¿¡δ.  èóáñαáΓ¡δÑ  ß¬«í¬¿  ¡¿¬«úñá  ¡Ñ
  7751.         »α¿ó«ñ∩Γ  ó »«ñαáºπ¼ÑóáѼ«¼π ß½«ªÑ¡¿ε.  Äñ¡á¬« ¼¡«ú¿Ñ ßΓá¡ñáαΓ¡δÑ
  7752.         ¬«¡ßΓαπ¬µ¿¿ MASM ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¡Ñ ñ«»π߬áεΓß∩.
  7753.  
  7754.                                                                                
  7755.         Ä»Ñαᵿ∩ ¬óáñαáΓ¡δσ ß¬«í«¬ []
  7756.         -----------------------------------------------------------------
  7757.  
  7758.              é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ ¬óáñαáΓ¡δѠ߬«í¬¿ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩
  7759.         ñ½∩ »«½πτÑ¡¿∩ ß«ñÑন¼«ú« φ½Ñ¼Ñ¡Γá. ìá»α¿¼Ñα:
  7760.  
  7761.                 mov     ax,wordptr
  7762.  
  7763.         »α¿ó«ñ¿Γ ¬ óδó«ñπ »αÑñπ»αѪñáεΘÑú« ß««íΘÑ¡¿∩,  Ñß½¿ óδ  »δΓáÑΓÑß∞
  7764.         ºáúαπº¿Γ∞  π¬áºáΓѽ∞  (wordptr) ó αÑú¿ßΓα (AX).  è«ααÑ¬Γ¡«⌐ íπñÑΓ
  7765.         ß½ÑñπεΘá∩ Σ«α¼á:
  7766.  
  7767.                 mov     ax,[wordptr]
  7768.  
  7769.              çñÑß∞ ∩ß¡«,  τΓ« óδ ºáúαπªáÑΓÑ ß«ñÑন¼«Ñ ∩τÑ⌐¬¿, áñαÑßπѼ«⌐
  7770.         ß »«¼«Θ∞ε wordptr (ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ DS) ó αÑú¿ßΓα AX.
  7771.  
  7772.  
  7773.         TASM2 #3-5/䫬              = 184 =
  7774.  
  7775.              àß½¿ óδ  σ«Γ¿ΓÑ  ß«ß½áΓ∞ß∩ ¡á ß¼ÑΘÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó ßÑú-
  7776.         ¼Ñ¡ΓÑ,  Γ« óδ ñ«½ª¡δ ∩ó¡« ¿ß»«½∞º«óáΓ∞ «»Ñαᵿε OFFSET, ¡á»α¿¼Ñα:
  7777.  
  7778.                 mov     ax,OFFSET wordptr
  7779.  
  7780.                                    Åα¿¼Ñαδ «»Ñαá¡ñ«ó                           
  7781.         -----------------------------------------------------------------
  7782.  
  7783.              äáóá⌐ΓÑ αáßß¼«Γα¿¼ ¡Ñ߬«½∞¬« τáßΓ« »α¿ó«ñ∩Θ¿σ ¬ »πΓá¡¿µÑ, ¡«
  7784.         ∩ó½∩εΘ¿σß∩ Γ¿»¿τ¡δ¼¿,  ºá¬½ετÑ¡¡δσ ó ¬óáñαáΓ¡δѠ߬«í¬¿ «»Ñαá¡ñ«ó,
  7785.         ¬«Γ«αδÑ  ó«ß»α¿¡¿¼áÑΓ  αѪ¿¼ MASM,  á ºáΓѼ ßαáó¡¿¼ φΓ¿ »α¿¼Ñαδ ß
  7786.         ¬«ααÑ¬Γ¡δ¼¿ ¿ í«½ÑÑ ½Ñú¬¿¼¿ ñ½∩ ó«ß»α¿∩Γ¿∩ Σ«α¼á¼¿,  ¬«Γ«αδÑ  ¿ß-
  7787.         »«½∞ºπεΓß∩ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ Æπαí« ÇßßѼí½Ñαá.  èᬠóδ πó¿ñ¿ΓÑ,
  7788.         τÑΓ¬«Ñ ¿ß»«½∞º«óá¡¿Ñ ¬óáñαáΓ¡δσ ß¬«í«¬ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ,  ¿ß¬-
  7789.         ½ετáεΘÑÑ óß∩¬πε ñóπß¼δ߽ѡ¡«ßΓ∞, »α¿ó«ñ¿Γ ¬ »«½¡«⌐ «»αÑñѽѡ¡«ßΓ¿
  7790.         Γ«ú«, τΓ« óδ ¡á¼ÑαÑó὿ß∞ ßñѽáΓ∞.
  7791.  
  7792.                 mov     ax,[bx][si]     ; αѪ¿¼ MASM
  7793.  
  7794.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ φΓ« »α¿ó«ñ¿Γ  ¬  ß¿¡Γá¬ß¿τÑ߬«⌐  «Φ¿í¬Ñ.
  7795.         àß½¿ ¬óáñαáΓ¡δѠ߬«í¬¿ «»αÑñѽ∩εΓ ß«ñÑন¼«Ñ »á¼∩Γ¿,  Γ« φΓá ¿¡ß-
  7796.         Γαπ¬µ¿∩, «τÑó¿ñ¡«,  ºáúαπªáÑΓ º¡áτÑ¡¿Ñ,  áñαÑßπѼ«Ñ ß »«¼«Θ∞ε αÑ-
  7797.         ú¿ßΓαá BX,  »½εß º¡áτÑ¡¿Ñ,  áñαÑßπѼ«Ñ ß »«¼«Θ∞ε αÑú¿ßΓαá SI. è«-
  7798.         ¡Ñτ¡«, óδ ¼«ªÑΓÑ »αÑñ»«½áúáΓ∞ ßñѽáΓ∞ ¡Ñ φΓ«. é«º¼«ª¡« óδ »αÑñ»«-
  7799.         ½áúáÑΓÑ ßñѽáΓ∞ ß½ÑñπεΘÑÑ (¿ φΓ«ú« ΓαÑíπÑΓ π½πτΦÑ¡¡δ⌐ αѪ¿¼):
  7800.  
  7801.                 mov     ax,[bx+si]      ; π½πτΦÑ¡¡δ⌐ αѪ¿¼
  7802.  
  7803.              ÆÑ»Ñα∞ ñá¡¡á∩  ¿¡ßΓαπ¬µ¿∩ »«¡∩Γ¡á.  æ«ñÑন¼«Ñ ∩τÑ⌐¬¿ »á¼∩Γ¿
  7804.         »« áñαÑßπ OFFSET BX+SI,  «Γ¡«ß¿Γѽ∞¡« ΓѬπΘÑú«  ßÑú¼Ñ¡Γá  ñá¡¡δσ,
  7805.         áñαÑßπѼ«ú« ß »«¼«Θ∞ε αÑú¿ßΓαá  DS,  ºáúαπªáÑΓß∩  ó  αÑú¿ßΓα  AX.
  7806.         (ÉẼÑα  ∩τÑ⌐¬¿  »á¼∩Γ¿ »αÑñßΓáó½∩ÑΓ ß«í«⌐ 16-í¿Γ«ó«Ñ ß½«ó«,  Γá¬
  7807.         ¬á¬ AX - φΓ« 16-í¿Γ«óδ⌐ αÑú¿ßΓα. àß½¿ óδ ºá¼Ñ¡¿ΓÑ AX AL, ¿½¿ ñαπ-
  7808.         ú¿¼  8-í¿Γ«óδ¼  αÑú¿ßΓα«¼,  Γ« ∩τÑ⌐¬á »á¼∩Γ¿ íπñÑΓ ¿¼ÑΓ∞ αẼÑα ó
  7809.         íá⌐Γ.) é«Γ á¡á½«ú¿τ¡δ⌐ »α¿¼Ñα:
  7810.  
  7811.                 mov     ax,es:[bx][si]         ; αѪ¿¼ MASM
  7812.  
  7813.              é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ  φΓ« ΓᬪѠ»α¿ó«ñ¿Γ ¬ «Φ¿í¬Ñ.  ¥Γá ¿¡ß-
  7814.         Γαπ¬µ¿∩ óδú½∩ñ¿Γ Γá¬,  ¬á¬ íπñΓ« ó ¡Ñ⌐ ú«ó«α¿Γß∩ ß½ÑñπεΘÑÑ: "»α¿-
  7815.         ¼Ñ¡¿Γ∞ »αÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ES:  ¬ º¡áτÑ¡¿ε, áñαÑßπÑ-
  7816.         ¼«¼π ß »«¼«Θ∞ε αÑú¿ßΓαá BX, ¿ ß½«ª¿Γ∞ óßÑ φΓ« ß ß«ñÑন¼δ¼ ∩τÑ⌐¬¿
  7817.         »á¼∩Γ¿,  áñαÑßπѼ«⌐  ß  »«¼«Θ∞ε SI,  ºáúαπªá∩ αѺπ½∞ΓáΓ ó αÑú¿ßΓα
  7818.         AX".  ¥Γ«,  ¬«¡Ñτ¡«,  íÑßß¼δ߽ѡ¡«, ¿ óδ, óÑα«∩Γ¡«, »«ñαáºπ¼Ñó὿
  7819.         ß½ÑñπεΘÑÑ:
  7820.  
  7821.         TASM2 #3-5/䫬              = 185 =
  7822.  
  7823.  
  7824.                 mov     ax,[es:bx+si]           ; π½πτΦÑ¡¡δ⌐ αѪ¿¼
  7825.  
  7826.              ÅαѬαáß¡«! Åα¿  φΓ«¼  ß¬½áñδóáÑΓß∩ ß«ñÑন¼«Ñ αÑú¿ßΓα«ó AX ¿
  7827.         SI,  τΓ« ñáÑΓ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩ «Γ¡«ß¿Γѽ∞¡« αÑú¿ßΓαá ES, »ÑαÑ«»-
  7828.         αÑñѽѡ¡«ú« ¿º ¿ß»«½∞ºπѼ«ú« »« π¼«½τá¡¿ε ßÑú¼Ñ¡Γá ñá¡¡δσ DS. 16-
  7829.         í¿Γ«ó«Ñ ß«ñÑন¼«Ñ φΓ«⌐ ∩τÑ⌐¬¿ »á¼∩Γ¿ ºáúαπªáÑΓß∩ ó  αÑú¿ßΓα  AX.
  7830.         é«Γ ÑΘÑ «ñ¿¡ τáßΓ« óßΓαÑτáεΘ¿⌐ß∩ ó ÇßßѼí½ÑαÑ »α¿¼Ñα:
  7831.  
  7832.                 mov     ax,6[bx]                ; αѪ¿¼ MASM
  7833.  
  7834.              îáΓѼáΓ¿¬¿ ¼«úπΓ »«ñπ¼áΓ∞, τΓ« ºñÑß∞ º¡áτÑ¡¿Ñ ∩τÑ⌐¬¿ »á¼∩Γ¿,
  7835.         áñαÑßπѼ«⌐ ß  »«¼«Θ∞ε αÑú¿ßΓαá BX,  π¼¡«ªáÑΓß∩ ¡á 6.  ê½¿ φΓ« φΓ«
  7836.         ¬á¬«⌐-Γ« ¡Ñ«»¿ßá¡¡δ⌐ ¼ÑΓ«ñ ¿¡ñѬßᵿ¿ ¼áßß¿óá? Ç ¼«ªÑΓ íδΓ∞ »α«ß-
  7837.         Γ« «»ÑτáΓ¬á? é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, ¬á¬ »«¬áºδóáÑΓ Σ«α¼á π½πτΦÑ¡¡«ú«
  7838.         αѪ¿¼á, φΓ« «º¡áτáÑΓ ß½ÑñπεΘÑÑ:
  7839.  
  7840.                 mov     ax,[bx+6]               ; π½πτΦÑ¡¡δ⌐ αѪ¿¼
  7841.  
  7842.              è«¡Ñτ¡«! éδ  σ«Γ¿ΓÑ ºáúαπº¿Γ∞ ó αÑú¿ßΓα AX ß«ñÑন¼«Ñ ∩τÑ⌐¬¿
  7843.         ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ, «ΓßΓ«∩ΘÑ⌐ ¡á 6 íá⌐Γ«ó «Γ ß¼ÑΘÑ¡¿∩, ºá-
  7844.         ñá¡¡«ú« αÑú¿ßΓα«¼ BX.  ƒß¡ÑÑ ¡Ñ ß¬áªÑΦ∞. Äñ¡á¬« ó αѪ¿¼Ñ MASM óδ-
  7845.         αáªÑ¡¿∩ ¡Ñ óßÑúñá ¿¼ÑεΓ Γᬫ⌐ »«¡∩Γ¡δ⌐ ó¿ñ:
  7846.  
  7847.                 mov     ax,es:[bp+8][si+6]      ; αѪ¿¼ MASM
  7848.  
  7849.              ÅαÑñ»«½«ª¿¼, óδ  íÑαÑΓÑ  º¡áτÑ¡¿Ñ,  «ΓßΓ«∩ΘÑÑ ¡á 8 íá⌐Γ«ó «Γ
  7850.         BP,  »α¿¼Ñ¡∩ÑΓÑ »αÑΣ¿¬ß »ÑαÑ«»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ES:,  ¿...  ìÑΓ,
  7851.         »ÑαÑ«»αÑñѽѡ¿Ñ  ñ«½ª¡«  »α¿¼Ñ¡∩Γ∞ß∩ ¬ º¡áτÑ¡¿ε,  «ΓßΓ«∩ΘѼπ ¡á 6
  7852.         íá⌐Γ«ó «Γ SI.  ìÑΓ,  φΓ« ¡Ñ Γá¬, óÑα«∩Γ¡« ¡πª¡« óº∩Γ∞ º¡áτÑ¡¿Ñ »«
  7853.         áñαÑßπ  BP+8,  ß½«ª¿Γ∞  ß  ß«ñÑন¼δ¼  [SI+6],  »α¿¼Ñ¡¿Γ∞ »αÑΣ¿¬ß
  7854.         »ÑαÑ«»αÑñѽѡ¿∩... Äñ¡á¬« «ßΓáó¿¼ φΓ«. ô½πτΦÑ¡¡δ⌐ αѪ¿¼ »«ºó«½∩ÑΓ
  7855.         »α«ΘÑ ºá»¿ßδóáΓ∞ ¿ τ¿ΓáΓ∞ ΓᬿѠ߽«ª¡δÑ «»Ñαá¡ñδ:
  7856.  
  7857.                 mov     ax,[es:bp+si+14]
  7858.  
  7859.              ÄτÑó¿ñ¡«, º¡áτÑ¡¿Ñ,  αáß»«½«ªÑ¡¡«Ñ »«  ß¼ÑΘÑ¡¿ε  BP+SI+14  ó
  7860.         ßÑú¼Ñ¡ΓÑ ES ºáúαπªáÑΓß∩ ó αÑú¿ßΓα AX.  ¥Γ« »α«ßΓ« ¿ »«¡∩Γ¡«. Å«⌐-
  7861.         ñѼ ñá½∞ΦÑ:
  7862.  
  7863.                 mov     al,byte ptr [bx]        ; αѪ¿¼ MASM
  7864.  
  7865.              MASM «τÑó¿ñ¡« »«ºó«½∩ÑΓ óá¼ ºáñáΓ∞ ß«ñÑন¼«Ñ ∩τÑѬ »á¼∩Γ¿ ß
  7866.         »«¼«Θ∞ε  íá⌐Γ«óδσ  π¬áºáΓѽÑ⌐,  »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ó φΓ«⌐ ¿¡ßΓαπ¬µ¿¿
  7867.         óÑα«∩Γ¡« ñѽáÑΓß∩ ¿¼Ñ¡¡« φΓ«.  éδ ¼«ªÑΓÑ,  ¬«¡Ñτ¡«,  ßßδ½áΓ∞ß∩ ¡á
  7868.         íá⌐Γδ  ¿½¿ ß½«óá Γ«½∞¬« ß »«¼«Θ∞ε π¬áºáΓѽÑ⌐ (αÑú¿ßΓα«ó ¿ ¼ÑΓ«¬),
  7869.  
  7870.         TASM2 #3-5/䫬              = 186 =
  7871.  
  7872.         τΓ« ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ßΓá¡«ó¿Γß∩ ñ«ßΓáΓ«τ¡« «τÑó¿ñ¡δ¼:
  7873.  
  7874.                 mov     al,[byte ptr bx]        ; π½πτΦÑ¡¡δ⌐ αѪ¿¼
  7875.  
  7876.              ÄτÑó¿ñ¡«, óδ π¬áºδóáΓÑ Æπαí« ÇßßѼí½Ñαπ, τΓ« BX - φΓ« íá⌐Γ«-
  7877.         óδ⌐ π¬áºáΓѽ∞, ºáúαπªá∩ ó αÑú¿ßΓα AL íá⌐Γ, «ΓßΓ«∩Θ¿⌐ ¡á BX íá⌐Γ«ó
  7878.         «Γ ¡áτá½á ΓѬπΘÑú« ßÑú¼Ñ¡Γá ñá¡¡δσ.  Åα¿óÑñѼ ñ½∩ »«½¡«Γδ ¬áαΓ¿¡δ
  7879.         ÑΘÑ «ñ¿¡ »α¿¼Ñα:
  7880.  
  7881.                 rep     movs    byte ptr [di],[si]      ; αѪ¿¼ MASM
  7882.  
  7883.              MASM «τÑó¿ñ¡« »«ºó«½∩ÑΓ óá¼ »αÑ«íαẫóδóáΓ∞ ß¿¼ó«½δ, áñαÑßπ-
  7884.         Ñ¼δÑ ß »«¼«Θ∞ε αÑú¿ßΓαá DI (¿ ó«º¼«ª¡« SI?) ó íá⌐Γ«óδÑ π¬áºáΓѽ¿?
  7885.         è«¡Ñτ¡«, óδ φΓ«ú« ßñѽáΓ∞ ¡Ñ ¼«ªÑΓÑ. èᬠφΓ« ¼«ª¡« ó¿ñÑΓ∞ ó π½πτ-
  7886.         ΦÑ¡¡«¼ αѪ¿¼Ñ, φΓ« ñ«½ª¡« «º¡áτáΓ∞ ß½ÑñπεΘÑÑ:
  7887.  
  7888.                 rep     mov     [byte ptr di],[byte ptr si]     ; π½πτ-
  7889.                                                          ; ΦÑ¡¡δ⌐ αѪ¿¼
  7890.  
  7891.              ò«Γ∩ Γá¬á∩ ºá»¿ß∞ ¿ ñ½¿¡¡ÑÑ,  ∩ß¡«,  τΓ«  αÑú¿ßΓαδ DI ¿ SI -
  7892.         φΓ« íá⌐Γ«óδÑ π¬áºáΓѽ¿ ñ½∩ ¿¡ßΓαπ¬µ¿¿ MOVS.
  7893.  
  7894.              è«¡Ñτ¡«, φΓ¿ »α¿¼Ñαδ ¡Ñ »«½¡δÑ,  ¿ óδ,  óÑα«∩Γ¡«,  ¡á⌐ñÑΓÑ ó
  7895.         MASM  ¼¡«ú«  ñαπú¿σ »α¿ó«ñ∩Θ¿σ ¬ »πΓá¡¿µÑ «»Ñαá¡ñ«ó ß ¬óáñαáΓ¡δ¼¿
  7896.         ß¬«í¬á¼¿.  è«úñá φΓ« »α«¿ßσ«ñ¿Γ, »«»δΓá⌐ΓÑß∞ »ÑαÑ⌐Γ¿ ó π½πτΦÑ¡¡δ⌐
  7897.         αѪ¿¼,  σ«Γ∩ íδ ñ½∩ «ñ¡«⌐ ¿¡ßΓαπ¬µ¿¿. çáΓѼ ¿ß»«½∞ºπ⌐ΓÑ »α¿¼Ñαδ ¿
  7898.         »ÑαÑ»¿Φ¿ΓÑ ¿¡ßΓαπ¬µ¿ε ó Γᬫ¼ ó¿ñÑ, ¬«Γ«αδ⌐ óδ ¼«ªÑΓÑ »«¡∩Γ∞. éδ-
  7899.         »«½¡¿ó φΓ«, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ π½πτΦÑ¡¡δ⌐ αѪ¿¼ ¡Ñ Γ«½∞¬« ñ½∩
  7900.         Γ«ú«,  τΓ«íδ »¿ßáΓ∞ í«½ÑÑ »«¡∩Γ¡δÑ ¿ τ¿ΓáѼδÑ »α«úαá¼¼δ, ¡« ¿ ñ½∩
  7901.         Γ«ú«,  τΓ«íδ  ½πτΦÑ  »«¡∩Γ∞  ¬«¡ßΓαπ¬µ¿¿,  ó ¬«Γ«αδσ ¿ß»«½∞ºπεΓß∩
  7902.         ¬óáñαáΓ¡δѠ߬«í¬¿, ¬«Γ«αδÑ ó MASM óδú½∩ñ∩Γ óÑß∞¼á Γπ¼á¡¡«.
  7903.  
  7904.                                                                                
  7905.                   Ä»Ñαᵿ¿
  7906.         -----------------------------------------------------------------
  7907.  
  7908.              êº¼Ñ¡Ñ¡¿∩, ó¡ÑßÑ¡¡δÑ ó «»Ñαᵿ¿ óδαáªÑ¡¿⌐ ó π½πτΦÑ¡¡«¼ αѪ¿-
  7909.         ¼Ñ,  »«ºó«½∩εΓ »«óδß¿Γ∞ ¼«Θ¡«ßΓ∞ ¿ ú¿í¬«ßΓ∞  ¡Ñ¬«Γ«αδσ  «»Ñαᵿ⌐,
  7910.         «ßΓáó¿ó íѺ ¿º¼Ñ¡Ñ¡¿∩ «íΘÑÑ »«óÑñÑ¡¿Ñ óδαáªÑ¡¿⌐.  ä½∩ Γ«ú«, τΓ«íδ
  7911.         ß«ñÑ⌐ßΓó«óáΓ∞ ¡Ñ¬«Γ«αδ¼  ¬«¼í¿¡áµ¿∩¼  «»Ñαᵿ⌐,  ¿º¼Ñ¡Ñ¡  »«α∩ñ«¬
  7912.         ßΓáαΦ¿¡ßΓóᠡѬ«Γ«αδσ «»Ñαᵿ⌐.  (æ¼. â½áóπ 2 ó "æ»αáó«τ¡«¼ απ¬«-
  7913.         ó«ñßΓóÑ",  úñÑ »α¿ó«ñ¿Γß∩ Γáí½¿µá ßΓáαΦ¿¡ßΓóá «»Ñαᵿ⌐  ¿  ñáÑΓß∩
  7914.         »«½¡«Ñ  «»¿ßá¡¿Ñ óßÑσ «»Ñαᵿ⌐ αѪ¿¼á MASM ¿ π½πτΦÑ¡¡«ú« αѪ¿¼á.)
  7915.  
  7916.                                                                                
  7917.         Æ«τ¬¿ ó φ½Ñ¼Ñ¡Γáσ ßΓαπ¬Γπαδ
  7918.  
  7919.         TASM2 #3-5/䫬              = 187 =
  7920.  
  7921.         -----------------------------------------------------------------
  7922.  
  7923.              Ç¬¬παáΓ¡« ºáñáóá⌐ΓÑ Γ«τ¬π (.) ó φ½Ñ¼Ñ¡Γáσ ßΓαπ¬Γπαδ,  ¡á ¬«-
  7924.         Γ«αδÑ  óδ  ßßδ½áÑΓÑß∞.  Ä»Ñαᵿ∩  Γ«τ¬¿  ñ½∩ φ½Ñ¼Ñ¡Γ«ó ßΓαπ¬Γπα ó
  7925.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ∩ó½∩ÑΓß∩ í«½ÑÑ ßΓα«ú«⌐. éδαáªÑ¡¿Ñ ß½Ñóá «Γ Γ«τ-
  7926.         ¬¿  ñ«½ª¡«  »αÑñßΓáó½∩Γ∞ ß«í«⌐ ¿¼∩ φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ.  êß»«½∞ºπ∩
  7927.         πªÑ »α¿ó«ñ¿¼δÑ αá¡ÑÑ »α¿¼Ñαδ  ßΓαπ¬Γπα  SomeStuff  ¿  OtherStuff,
  7928.         ºáúαπº¿¼  ΓÑ»Ñα∞  ó αÑú¿ßΓαδ º¡áτÑ¡¿∩ ¬«¡¬αÑΓ¡δσ φ½Ñ¼Ñ¡Γ«ó ßΓαπ¬-
  7929.         Γπα:
  7930.  
  7931.         ; Ä»¿ΦѼ »ÑαѼѡ¡δÑ ß »«¼«Θ∞ε ßΓαπ¬Γπα¡δσ Γ¿»«ó
  7932.         S_Stuff SomeStuff <>
  7933.         O_Stuff OtherStuff <>
  7934.         mov     ax,[S_Stuff.Amount]     ; ºáúαπº¿Γ∞ º¡áτÑ¡¿Ñ αẼÑα«¼ ó
  7935.                                         ; ß½«ó«
  7936.         mov     bl,[O_Stuff.Amount]     ; ºáúαπº¿Γ∞ º¡áτÑ¡¿Ñ αẼÑα«¼ ó
  7937.                                         ; íá⌐Γ
  7938.  
  7939.  
  7940.  
  7941.  
  7942.         TASM2 #3-5/䫬              = 188 =
  7943.  
  7944.                                 ô¬áºáΓѽ¿ ¡á ßΓαπ¬Γπαδ                         
  7945.         -----------------------------------------------------------------
  7946.  
  7947.              ùáßΓ« óá¼ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ ¿ß»«½∞º«óáΓ∞ αÑú¿ßΓα, ß«ñÑαªá-
  7948.         Θ¿⌐ áñαÑß ßΓαπ¬Γπαδ,  ñαπú¿¼¿  ß½«óἿ,  ß¼ÑΘÑ¡¿Ñ  »Ñαó«ú«  íá⌐Γá
  7949.         ßΓαπ¬Γπαδ ó »á¼∩Γ¿.  ï¿í« π óá¼ ¼«ªÑΓ íδΓ∞ »ÑαѼѡ¡á∩ ó »á¼∩Γ¿, ß
  7950.         »«¼«Θ∞ε ¬«Γ«α«⌐ ¼«ª¡« áñαÑß«óáΓ∞ß∩ ¬ ßΓαπ¬ΓπαÑ.  é  φΓ¿σ  ß½πτá∩σ
  7951.         ñ½∩ ßß佬¿ ¡á ¬«¡¬αÑΓ¡δ⌐ φ½Ñ¼Ñ¡Γ ßΓαπ¬Γπαδ »« ¿¼Ñ¡¿ óδ ñ«½ª¡δ ß«-
  7952.         «íΘ¿Γ∞ Æπαí« ÇßßѼí½Ñαπ, ¡á ¬á¬πε ßΓαπ¬Γπαπ óδ ßßδ½áÑΓÑß∞:
  7953.  
  7954.                 mov     cx,[(SomeStuff ptr bx).Amount)
  7955.  
  7956.             ¥Γ« »«ºó«½∩ÑΓ Æπαí« ÇßßѼí½Ñαπ «»αÑñѽ¿Γ∞, τΓ« αÑú¿ßΓα BX ∩ó-
  7957.         ½∩ÑΓß∩ π¬áºáΓѽѼ ¡á SomeStaff,  ¿ τΓ« óδ σ«Γ¿ΓÑ ºáúαπº¿Γ∞ ß«ñÑα-
  7958.         ª¿¼«Ñ »«½∩ Amount ¿º ßΓαπ¬Γπαδ ó αÑú¿ßΓα CX. çñÑß∞ ΓαÑíπÑΓß∩ π¬á-
  7959.         ºδóáΓ∞ ß¬«í¬¿, Γᬠ¬á¬ «»Ñαᵿ∩ Γ«τ¬¿ ¿¼ÑÑΓ í«½ÑÑ óδß«¬¿⌐ »α¿«α¿-
  7960.         ΓÑΓ,  τѼ «»Ñαᵿ∩ PTR.  üѺ ß¬«í«¬ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ  ñѽáÑΓß∩
  7961.         »«»δΓ¬á ßó∩ºáΓ∞ ß BX Amount,  τΓ«,  ¬«¡Ñτ¡«, ¡Ñ󫺼«ª¡«,  Γᬠ¬á¬
  7962.         αÑú¿ßΓαδ ¡Ñ ¿¼ÑεΓ ¿¼Ñ¡ »«½Ñ⌐. ê¼Ñ¡á »«½Ñ⌐ ¿¼ÑεΓ Γ«½∞¬« ßΓαπ¬Γπαδ,
  7963.         Γᬿ¼ «íαẫ¼, óδ ñ«½ª¡δ »ÑαÑñ ßß佬«⌐ ¡á »«½∩ ßΓαπ¬Γπαδ, ¬«Γ«αδÑ
  7964.         áñαÑßπεΓß∩ ß »«¼«Θ∞ε αÑú¿ßΓα«ó, óδ ñ«½ª¡δ »αÑ«íαẫóáΓ∞ π¬áºáΓѽ¿
  7965.         ¡á ßΓαπ¬Γπαδ.
  7966.  
  7967.  
  7968.  
  7969.  
  7970.         TASM2 #3-5/䫬              = 189 =
  7971.  
  7972.                                                                                
  7973.         Ä»Ñαᵿ∩ SYMTYPE
  7974.         -----------------------------------------------------------------
  7975.  
  7976.              Æá¬ ¬á¬ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ Æπαí«  ÇßßѼí½Ñαá  ¿ñÑ¡Γ¿Σ¿¬áΓ«α
  7977.         ¡Ñ ¼«ªÑΓ ¡áτ¿¡áΓ∞ß∩ ß Γ«τ¬¿,  «»Ñαᵿ∩ .TYPE MASM »ÑαÑ¿¼Ñ¡«óá¡á ó
  7978.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ó SYMTYPE (ß¼.  â½áóπ 1 "æ»αáó«τ¡«ú«  απ¬«ó«ñß-
  7979.         Γóá"). ìÑß¼«Γα∩ ¡á φΓ« ¿º¼Ñ¡Ñ¡¿Ñ ó ¿¼Ñ¡¿, ñ¿αÑ¬Γ¿óá ó «í«¿σ αѪ¿-
  7980.         ¼áσ αáí«ΓáÑΓ «ñ¿¡á¬«ó«,  ó«ºóαáΘá∩  º¡áτÑ¡¿Ñ,  »«¬áºδóáεΘÑÑ  Γ¿»δ
  7981.         αẽ¿τ¡δσ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó:
  7982.  
  7983.                 Abyte   DB      0
  7984.                 Aword   DW      0
  7985.                 Array   DD      10 DUP (8)
  7986.                         Btype = SYMTYPE Abyte   ; 1
  7987.                 Wtype   =       SYMTYPE Aword   ; 2
  7988.                 Atype   =       SYMTYPE Array   ; 4
  7989.  
  7990.                                   Ä»Ñαᵿ¿ HIGH ¿ LOW                          
  7991.         -----------------------------------------------------------------
  7992.  
  7993.              é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ «»Ñαᵿ¿ HIGH ¿ LOW ¿¼ÑεΓ ñóá º¡áτÑ¡¿∩.
  7994.         Äíδτ¡« «»Ñαᵿ∩ HIGH «»αÑñѽ∩ÑΓ  ßΓáαΦ¿⌐  (í«½ÑÑ  º¡áτáΘ¿⌐)  íá⌐Γ
  7995.         ¬«¡ßΓá¡Γδ, á LOW «»αÑñѽ∩ÑΓ ¼½áñΦ¿⌐ (¼Ñ¡ÑÑ º¡áτáΘ¿⌐) íá⌐Γ, ¡á»α¿-
  7996.         ¼Ñα:
  7997.  
  7998.                 MaxVal = 1234h
  7999.                         mov     ah, HIGH MaxVal ; ºáúαπªáÑΓ ó AH 12h
  8000.                         mov     ah, LOW  MaxVal ; ºáúαπªáÑΓ ó AH 34h
  8001.  
  8002.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ «»Ñαᵿ¿ HIGH ¿ LOW  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞
  8003.         ñ½∩ óδí«αá ßΓáαΦÑ⌐ ¿½¿ ¼½áñΦÑ⌐ τáßΓ¿ óδαáªÑ¡¿∩, úñÑ ¿¼ÑÑΓß∩ ßßδ½-
  8004.         ¬á ¡á »á¼∩Γ∞:
  8005.  
  8006.                 WordVal DW      0
  8007.                 DbVal   DD      0
  8008.                 QVal    DQ      0
  8009.                         mov     bl, [BYTE LOW WordVal]
  8010.                         mov     ax, [WORD HIGH DbVal]
  8011.                         mov     ax, [WORD LOW QVal]
  8012.  
  8013.              ÅÑαóá∩ ¿¡ßΓαπ¬µ¿∩  MOV  ºáúαπªáÑΓ  ó αÑú¿ßΓα BL ¼½áñΦ¿⌐ íá⌐Γ
  8014.         ñóπσíá⌐Γ«ó«ú« ß½«óá ß ¼ÑΓ¬«⌐ WordVal.  éΓ«αá∩ ¿¡ßΓαπ¬µ¿∩ MOV ºáú-
  8015.         απªáÑΓ  ó  AX  ßΓáαΦÑÑ ß½«ó« 4-íá⌐Γ«ó«ú« º¡áτÑ¡¿∩,  ºá»¿ßá¡¡«ú« ó
  8016.         DbVal. ÆαÑΓ∞∩ ¿¡ßΓαπ¬µ¿∩ MOV ºáúαπªáÑΓ ó αÑú¿ßΓα AX ¼½áñΦÑÑ ß½«ó«
  8017.         8-íá⌐Γ«ó«ú« (τÑΓóÑα¡«Ñ ß½«ó«) º¡áτÑ¡¿∩ ó QVal.  çá¼ÑΓ¿¼, τΓ« ß¿¡-
  8018.  
  8019.         TASM2 #3-5/䫬              = 190 =
  8020.  
  8021.         Γá¬ß¿ß ºñÑß∞ Γ«Γ ªÑ,  τΓ« ¿ ñ½∩ «»Ñαᵿ¿ PTR: ¬½ετÑóδÑ ß½«óá BYTE
  8022.         ¿½¿ WORD π¬áºδóáεΓß∩ »ÑαÑñ «»Ñαᵿ∩¼¿ LOW ¿½¿ HIGH,  »½εß óδαáªÑ-
  8023.         ¡¿Ñ ß« ßß佬«⌐ ¡á »á¼∩Γ∞.
  8024.  
  8025.              éδ ¼«ªÑΓÑ ΓᬪѠ¿ß»«½∞º«óáΓ∞ «»Ñαᵿ¿ LOW ¿  HIGH  ß«ó¼ÑßΓ¡«
  8026.         ñ½∩  óδñѽѡ¿∩  ¡πª¡«⌐ óá¼ ¿¡Σ«α¼áµ¿¿ ¿º º¡áτÑ¡¿∩,  ß«ßΓ«∩ΘÑú« ¿º
  8027.         ¡Ñ߬«½∞¬¿σ íá⌐Γ«ó:
  8028.  
  8029.                 DbVal   DD      12345678h
  8030.                         mov     al,[BYTE LOW WORD HIGH DVal]  ; ºáúαπªáÑΓ
  8031.                                                               ; 34h ó AL
  8032.  
  8033.              é ß«τÑΓá¡¿¿ ß BYTE ¿ WORD ¬½ετÑóδÑ ß½«óá LOW ¿ HIGH óδñѽ∩εΓ
  8034.         íá⌐Γδ  ¿  ß½«óá  ¿º ½εí«⌐ »«º¿µ¿¿ ó »ÑαѼѡ¡«⌐.  çñÑß∞ DVal - φΓ«
  8035.         ñó«⌐¡«Ñ ß½«ó« 4-íá⌐Γ«ó«⌐ óѽ¿τ¿¡δ.  ùΓ«íδ  ½πτΦÑ  »«¡∩Γ∞  ß½«ª¡δÑ
  8036.         ¬«¼í¿¡áµ¿¿, á¡á½«ú¿τ¡δÑ »α¿óÑñÑ¡¡«⌐, τ¿Γá⌐ΓÑ óδαáªÑ¡¿Ñ ß½Ñóá-¡á»-
  8037.         αáó«.  é φΓ«¼ ß½πτáÑ ¿¡ßΓαπ¬µ¿∩ MOV ºáúαπªáÑΓ ó AL "¼½áñΦ¿⌐  íá⌐Γ
  8038.         (LOW BYTE) ßΓáαΦÑú« ß½«óá (WORD HIGH) º¡áτÑ¡¿∩ DVal".
  8039.  
  8040.                                                                                
  8041.         ìÑ«í∩ºáΓѽ∞¡á∩ «»Ñαᵿ∩ PTR
  8042.         -----------------------------------------------------------------
  8043.  
  8044.              é óδαáªÑ¡¿∩σ ¼«ª¡« ¿ß»«½∞º«óáΓ∞  ß«¬αáΘÑ¡¡δÑ »ÑαÑ«»αÑñѽѡ¿∩
  8045.         π¬áºáΓѽÑ⌐.  ùΓ«íδ ßñѽáΓ∞ φΓ«, ¼«ª¡« «»πßΓ¿Γ∞ «»Ñαᵿε PTR. ìá»-
  8046.         α¿¼Ñα:
  8047.  
  8048.                 [BYTE PTR OverTheRainbow]
  8049.  
  8050.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ß«¬αáΘÑ¡¿Ñ íπñÑΓ óδú½∩ñÑΓ∞ Γá¬:
  8051.  
  8052.                 [BYTE OverTheRainBow]
  8053.  
  8054.                                      Ä»Ñαᵿ∩ SIZE                             
  8055.         -----------------------------------------------------------------
  8056.  
  8057.              Ä»Ñαᵿ∩ SIZE ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ß««íΘáÑΓ  « ñÑ⌐ßΓó¿Γѽ∞¡«¼
  8058.         τ¿ß½Ñ íá⌐Γ,  ºá¡¿¼áѼδσ φ½Ñ¼Ñ¡Γ«¼ ñá¡¡δσ. ¥Γ« »«ºó«½∩ÑΓ ½Ñú¬« «»-
  8059.         αÑñѽ∩Γ∞ ñ½¿¡π ßΓ᫬:
  8060.  
  8061.            theTitle     DB      "The Sun Also RIses"
  8062.            TheAuthor    DB      "Ernest Heminhway", 0
  8063.            titleSize    =       Size theTitle   ; IDEAL--18, MASM--1
  8064.            authorSize   =       Size theAutor   ; IDEAL--16, MASM--1
  8065.  
  8066.  
  8067.         TASM2 #3-5/䫬              = 191 =
  8068.  
  8069.              é ñá¡¡«¼ »α¿¼ÑαÑ theTitle ¿ theAutor - φΓ« ßΓ᫬¿.  é αѪ¿¼Ñ
  8070.         MASM  «»Ñαᵿ∩ SIZE »α¿ßóá¿óáÑΓ ñ½¿¡π (LENGTH) ¿¼Ñ¡¿,  π¼¡«ªÑ¡¡πε
  8071.         ¡á ÑÑ Γ¿» (TYPE).  ä½¿¡á αáó¡á τ¿ß½π óδñѽѡ¡δσ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ,
  8072.         ó  ñá¡¡«¼  ß½πτáÑ 1 (σ«Γ∩ ßΓα«¬á ¿ ß«ßΓ«¿Γ ¿º ¼¡«ªÑßΓóá ß¿¼ó«½«ó,
  8073.         LENGTH ¡á «ß¡«óá¡¿¿ ñ¿αÑ¬Γ¿óδ DB αáßß¼áΓα¿óáÑΓ ßΓ᫬¿,  ¬á¬ «ñ¡«-
  8074.         íá⌐Γ«óδÑ φ½Ñ¼Ñ¡Γδ). ç¡áτÑ¡¿Ñ TYPE ñ½∩ DB ΓᬪѠαáó¡« 1. é ¿Γ«úÑ ó
  8075.         αѪ¿¼Ñ MASM ¿ titleSize, ¿ authorSize, αáó¡δ 1, τΓ« óα∩ñ ½¿ ¼«ªÑΓ
  8076.         »«¼«τ∞ ¡á¼ óδτ¿ß½¿Γ∞ ñ½¿¡π ßΓ᫬¿.
  8077.  
  8078.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ «»Ñαᵿ∩ SIZE ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ, ºá-
  8079.         ¡¿¼áѼδσ  »Ñαóδ¼ φ½Ñ¼Ñ¡Γ«¼ »«ß½Ñ ñ¿αÑ¬Γ¿ó óδñѽѡ¿∩ »á¼∩Γ¿ (Γᬿσ
  8080.         ¬á¬  DB  ¿½¿  DW).  Å«φΓ«¼π  titleSize  αáó¡«  τ¿ß½π  ß¿¼ó«½«ó  ó
  8081.         theTitle.  Ç¡á½«ú¿τ¡«,  º¡áτÑ¡¿Ñ autorSize αáó¡« τ¿ß½π ß¿¼ó«½«ó ó
  8082.         ßΓα«¬Ñ theAuthor.  çá¼ÑΓ¿¼, «ñ¡á¬«, τΓ« theAuthor ºáóÑαΦáÑΓß∩ ¡π-
  8083.         ½Ñóδ¼ íá⌐Γ«¼, «Γ¼ÑτáεΘ¿¼ ¬«¡Ñµ ßΓ᫬¿. Ä»Ñαᵿ∩ SIZE φëàíá⌐Γ ¡Ñ
  8084.         πτ¿ΓδóáÑΓ, ó«ºóαáΘá∩ Γ«½∞¬« τ¿ß½« ß¿¼ó«½«ó ó »αÑñΦÑßΓóπεΘÑ⌐ ßΓα«-
  8085.         ¬Ñ.  öá¬Γ¿τÑ߬¿,  «»Ñαᵿ∩  SIZE  ó«ºóαáΘáÑΓ ñ½¿¡π Γ«½∞¬« »Ñαó«ú«
  8086.         φ½Ñ¼Ñ¡Γá ó ½εí«¼ ß»¿ß¬Ñ ¿º ¼¡«ªÑßΓóá º¡áτÑ¡¿⌐. ìá»α¿¼Ñα:
  8087.  
  8088.           CountDown       DB      9,8,7,6,5,4,3,2,1,"Blast off"
  8089.           TwoLines        DB      "First line",13,10,"Second line"
  8090.           CDsize                SIZE CountDown  ; 1
  8091.           TLsize                SIZE TwoLines   ; 10
  8092.  
  8093.              çñÑß∞ CountDown áñαÑßπÑΓß∩ ¬ 9-íá⌐Γ«óδ¼ º¡áτÑ¡¿∩¼, ß½ÑñπεΘ¿¼
  8094.         ºá  ßΓ᫬«⌐  "Blast  off".  ìÑß¼«Γα∩  ¡á  φΓ«,  αẼÑα  CountDown
  8095.         (CDsize) ¬á¬ ó αѪ¿¼Ñ MASM,  Γᬠ¿ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ, íπñÑΓ αá-
  8096.         óÑ¡  1,  Γ«  ÑßΓ∞ αẼÑαπ »Ñαó«ú« φ½Ñ¼Ñ¡Γá ó ß»¿ß¬Ñ.  ä½∩ óΓ«α«ú«
  8097.         »α¿¼Ñαá,  TwoLines (¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓ  ß«í«⌐  Γ¿»¿τ¡δ⌐  ß»«ß«í
  8098.         σαá¡Ñ¡¿∩ ñóπσ ßΓ᫬, ¬«Γ«αδÑ αáºñѽѡδ ß¿¼ó«½á¼¿ ó«ºóαáΓá ¬áαÑΓ¬¿
  8099.         (13) ¿ »ÑαÑó«ñá ßΓ᫬¿ (10)) φΓ« ¡Ñ Γá¬.  äóÑ ßΓ᫬¿  »«¼ÑτÑ¡δ  ó
  8100.         »α«úαἼѠ«ñ¡¿¼ ¿¼Ñ¡Ñ¼ TwoLines.  Ä»Ñαᵿ∩ SIZE íπñÑΓ ß¡«óá ó«ºó-
  8101.         αáΘáΓ∞ αẼÑα »Ñαó«ú« φ½Ñ¼Ñ¡Γá »«ß½Ññ«óáΓѽ∞¡«ßΓ¿,  ó ñá¡¡«¼ ß½π-
  8102.         τáÑ  ßΓ᫬¿  "First  line".  é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ TLSize αáó¡« 10,
  8103.         τ¿ß½π ß¿¼ó«½«ó  ó ßΓ᫬Ñ.  é αѪ¿¼Ñ MASM º¡áτÑ¡¿Ñ TLSIZE αáó¡« 1,
  8104.         αẼÑαπ »Ñαó«ú« φ½Ñ¼Ñ¡Γá DB, Γ« ÑßΓ∞ «ñ¡«¼π íá⌐Γπ (ß¿¼ó«½π).
  8105.  
  8106.  
  8107.  
  8108.  
  8109.         TASM2 #3-5/䫬              = 192 =
  8110.  
  8111.                                                                                
  8112.         ä¿αÑ¬Γ¿óδ
  8113.         -----------------------------------------------------------------
  8114.  
  8115.             ä¿αÑ¬Γ¿óδ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ αáí«ΓáεΓ á¡á½«ú¿τ¡« αѪ¿¼π MASM
  8116.         ¿ ó í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ¿¼ÑεΓ ΓÑ ªÑ ¿¼Ñ¡á. Äñ¡á¬« ¼Ñªñπ á¡á½«ú¿τ-
  8117.         ¡δ¼¿ ñ¿αÑ¬Γ¿óἿ ó «í«¿σ αѪ¿¼áσ ¿¼ÑεΓß∩ ó᪡δÑ  «Γ½¿τ¿∩,  τΓ«  ¿
  8118.         »«∩ß¡∩ÑΓß∩ ó ñá¡¡«¼ αáºñѽÑ.
  8119.  
  8120.                                  ô»αáó½Ñ¡¿Ñ ½¿ßΓ¿¡ú«¼                          
  8121.         -----------------------------------------------------------------
  8122.  
  8123.              Å«ß¬«½∞¬π ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¡Ñ  ¼«ªÑΓ  ¡áτ¿-
  8124.         ¡áΓ∞ß∩ ß Γ«τ¬¿, óßÑ ñ¿αÑ¬Γ¿óδ π»αáó½Ñ¡¿∩ ½¿ßΓ¿¡ú«¼ MASM ¡áτ¿¡áεΓ-
  8125.         ß∩ ß« º¡á¬á %.  èα«¼Ñ Γ«ú«, τΓ«íδ í«½ÑÑ Γ«τ¡« «»¿ßδóáΓ∞ π»αáó½∩Ñ-
  8126.         ¼δÑ   ñá¡¡δ¼¿  ñ¿αÑ¬Γ¿óἿ  «»Ñαᵿ¿,  ¿º¼Ñ¡Ñ¡«  ¡Ñ߬«½∞¬«  ¿¼Ñ¡.
  8127.         ä¿αÑ¬Γ¿óδ π»αáó½Ñ¡¿∩ ½¿ßΓ¿¡ú«¼ ó «í«¿σ αѪ¿¼áσ »α¿óÑñÑ¡δ ó ß½Ññπ-
  8128.         εΘ¿σ Γáí½¿µáσ.
  8129.  
  8130.                 ------------------------------------------
  8131.                 ÉѪ¿¼ MASM                ô½πτΦÑ¡¡δ⌐ αѪ¿¼
  8132.                 ------------------------------------------
  8133.                 .CREF                           %CREF
  8134.                 .LALL                           %MACS
  8135.                 .LFCOND                         %CONDS
  8136.                 .LIST                           %LIST
  8137.                 .SFCOND                         %NOCONDS
  8138.                 .XALL                           %NOMACS
  8139.                 .XCREF                          %NOCREF
  8140.                 .XLIST                          %NOLIST
  8141.                 ------------------------------------------
  8142.  
  8143.             Æá¬ ¬á¬ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ óßÑ ñ¿αÑ¬Γ¿óδ π»αáó½Ñ¡¿∩  ½¿ßΓ¿¡-
  8144.         ú«¼ ¡áτ¿¡áεΓß∩ ß ß¿¼ó«½á %,  ñ¿αÑ¬Γ¿óá %OUTS αѪ¿¼á MASM »αÑ«íαá-
  8145.         º«óá¡á ó ñ¿αÑ¬Γ¿óπ DISPLAY.
  8146.  
  8147.                 DISPLAY "çá»π߬ ñαá⌐óÑαá óó«ñá-óδó«ñá ÇßßѼí½Ñαá"
  8148.  
  8149.  
  8150.  
  8151.  
  8152.         TASM2 #3-5/䫬              = 193 =
  8153.  
  8154.                             ä¿αÑ¬Γ¿óδ, ¡áτ¿¡áεΘ¿Ñß∩ ß Γ«τ¬¿                    
  8155.         -----------------------------------------------------------------
  8156.  
  8157.              äαπú¿Ñ ñ¿αÑ¬Γ¿óδ  MASM,  ¬«Γ«αδÑ  ¡áτ¿¡áεΓß∩ ß ß¿¼ó«½á Γ«τ¬¿
  8158.         (.),  ñ½∩ ∩ß¡«ßΓ¿ »ÑαÑ¿¼Ñ¡«óá¡δ. ìá»α¿¼Ñα, óßÑ ñ¿αÑ¬Γ¿óδ π»αáó½Ñ-
  8159.         ¡¿∩ »α«µÑßß«α«¼,  ¡á»α¿¼Ñα .286, ¬«Γ«αδÑ óδú½∩ñ∩Γ ß¬«αÑÑ ¬á¬ τ¿ß-
  8160.         ½á,  á ¡Ñ ¬á¬ ñ¿αÑ¬Γ¿óδ,  ¡áτ¿¡áεΓß∩ ΓÑ»Ñα∞ ß ß¿¼ó«½á P, ¡á»α¿¼Ñα
  8161.         P286N.  éßÑ ñ¿αÑ¬Γ¿óδ óδó«ñá ß««íΘÑ¡¿∩ «í «Φ¿í¬Ñ ó¿ñá .ERRxxx »Ñ-
  8162.         αÑ¿¼Ñ¡«óá¡δ ó ERRIFxxx.  ìѬ«Γ«αδÑ ñαπú¿Ñ ñ¿αÑ¬Γ¿óδ ¡áºδóáεΓß∩ »«
  8163.         »αѪ¡Ñ¼π, ¡« ó ¡¿σ «ΓßπΓßΓóπÑΓ »Ñαóá∩ Γ«τ¬á.
  8164.  
  8165.              é ß½ÑñπεΘÑ⌐ Γáí½¿µÑ »α¿óÑñÑ¡ ß»¿ß«¬ óßÑσ ñ¿αÑ¬Γ¿ó,  ¡áτ¿¡áε-
  8166.         Θ¿σß∩ ß Γ«τ¬¿ ó αѪ¿¼Ñ MASM,  ¿ ¿σ φ¬ó¿óá½Ñ¡Γδ ó π½πτΦÑ¡¡«¼ αѪ¿-
  8167.         ¼Ñ.
  8168.  
  8169.                 ---------------------------------------------
  8170.                 ÉѪ¿¼ MASM                   ô½πτΦÑ¡¡δ⌐ αѪ¿¼
  8171.                 ---------------------------------------------
  8172.                 .186                               P186
  8173.                 .286                               P286N
  8174.                 .286C                              P286N
  8175.                 .286P                              P286
  8176.                 .287                               P287
  8177.                 .386                               P386N
  8178.                 .386C                              P386N
  8179.                 .386P                              P386
  8180.                 .387                               P387
  8181.                 .8086                              P8086
  8182.                 .8087                              P8087
  8183.                 .CODE                              CODESEG
  8184.                 .CONST                             CONST
  8185.                 .DATA                              DATASEG
  8186.                 .DATA?                             UDATASEG
  8187.                 .ERR                               ERR
  8188.                 .ERR1                              ERRIF1
  8189.                 .ERR2                              ERRIF2
  8190.                 .ERRB                              ERRIFB
  8191.                 .ERRDEF                            ERRIFDEF
  8192.                 .ERRDIF                            ERRIFDIF
  8193.                 .ERRDIFI                           ERRIFDIFI
  8194.                 .ERRE                              ERRIFE
  8195.                 .ERRIDN                            ERRIFIDN
  8196.                 .ERRIDNI                           ERRIFIDNI
  8197.                 .ERRNB                             ERRIFNB
  8198.                 .ERRNDEF                           ERRIFNDEF
  8199.                 .ERRNZ                             ERRIF
  8200.  
  8201.         TASM2 #3-5/䫬              = 194 =
  8202.  
  8203.                 .FARDATA                           FARDATA
  8204.                 .FARDATA?                          UFARDATA
  8205.                 .MODEL                             MODEL
  8206.                 .RADIX                             RADIX
  8207.                 .STACK                             STACK
  8208.                 ---------------------------------------------
  8209.  
  8210.                    ÄíαáΓ¡δ⌐ »«α∩ñ«¬ ¿¼Ñ¡¿ ñ¿αÑ¬Γ¿óδ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá           
  8211.         -----------------------------------------------------------------
  8212.  
  8213.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ »«α∩ñ«¬ ß¿¡Γá¬ß¿τÑ߬«ú«  á¡á½¿ºá  »α«ΘÑ,
  8214.         τѼ ó MASM.  àß½¿ »Ñαóá∩ ½Ñ¬ßѼᠻαÑñßΓáó½∩ÑΓ ß«í«⌐ ¬½ετÑó«Ñ ß½«-
  8215.         ó«, Γ« «¡á «»αÑñѽ∩ÑΓ «»Ñαᵿε, ¬«Γ«αá∩ ñ«½ª¡á óδ»«½¡∩Γ∞ß∩ ñ¿αѬ-
  8216.         Γ¿ó«⌐.  àß½¿ »Ñαóá∩ ½Ñ¬ßѼá - φΓ« ¡Ñ ¬½ετÑó«Ñ ß½«ó«,  Γ« «»Ñαᵿε
  8217.         «»αÑñѽ∩ÑΓ óΓ«αá∩ ½Ñ¬ßѼá.
  8218.  
  8219.              é ß««ΓóÑΓßΓó¿¿ ß φΓ¿¼ ¿º¼Ñ¡Ñ¡¿Ñ¼ ¿¼ÑεΓ «íαáΓ¡δσ »«α∩ñ«¬ ¿¼Ñ-
  8220.         ¡¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ ñ¿αÑ¬Γ¿óδ. Å«ñα«í¡ÑÑ φΓ« ¼«ª¡« πó¿ñÑΓ∞ ó ß½Ñ-
  8221.         ñπεΘÑ⌐ Γáí½¿µÑ:
  8222.  
  8223.                 ------------------------------------------------------
  8224.                 ÉѪ¿¼ MASM                            ô½πτΦÑ¡¡δ⌐ αѪ¿¼
  8225.                 ------------------------------------------------------
  8226.                 ¿¼∩ ENDP                        ENDP[¿¼∩]
  8227.                 ¿¼∩ ENDS                        ENDS[¿¼∩]
  8228.                 ¿¼∩ GROUP ßÑú¼Ñ¡Γδ              GROUP ¿¼∩ ßÑú¼Ñ¡Γδ
  8229.                 ¿¼∩ LABEL Γ¿»                   LABEL ¿¼∩ Γ¿»
  8230.                 ¿¼∩ MACRO áαúπ¼Ñ¡Γδ             MACRO ¿¼∩ áαúπ¼Ñ¡Γδ
  8231.                 ¿¼∩ PROC Γ¿»                    PROC ¿¼∩ Γ¿»
  8232.                 ¿¼∩ RECORD áαúπ¼Ñ¡Γδ            RECORD ¿¼∩ áαúπ¼Ñ¡Γδ
  8233.                 ¿¼∩ SEGMENT áαúπ¼Ñ¡Γδ           SEGMENT ¿¼∩ áαúπ¼Ñ¡Γδ
  8234.                 ¿¼∩ STRUC                       STRUC ¿¼∩
  8235.                 ¿¼∩ UNION                       UNION ¿¼∩
  8236.                 ------------------------------------------------------
  8237.  
  8238.              çá¼ÑΓ¿¼, τΓ« ENDS ¿ ENDP ¡Ñ ΓαÑíπεΓ π¬áºá¡¿∩ ß««ΓóÑΓßΓóπεΘ¿σ
  8239.         ¿¼Ñ¡ »α¿ ºá¬αδΓ¿¿ «»αÑñѽѡ¿∩.  àß½¿ óδ π¬áºδóáÑΓÑ ¿¼∩, ºáñáóá⌐ΓÑ
  8240.         Ñú«  Γᬿ¼  ªÑ,  ¬á¬ ó »αÑñΦÑßΓóπεΘÑ⌐ ñ¿αÑ¬Γ¿óÑ SEGMENT ¿½¿ PROC.
  8241.         ìѬ«Γ«αδÑ »α«úαá¼¼¿ßΓδ óßÑúñá ó¬½ετáεΓ ¿¼Ñ¡á,  τΓ«íδ π½πτΦ¿Γ∞ τ¿-
  8242.         ΓáѼ«ßΓ∞  »α«úαá¼¼δ.  ¥Γ« «ß«íÑ¡¡« »«½Ñº¡« »α¿ ¿ß»«½∞º«óá¡¿¿ ó½«-
  8243.         ªÑ¡¡δσ »α«µÑñπα ¿½¿ ßÑú¼Ñ¡Γ«ó.  ¥Γ« «ß«íÑ¡¡« »«½Ñº¡«  ñѽáΓ∞  »α¿
  8244.         ¿ß»«½∞º«óá¡¿¿  ó½«ªÑ¡¡δσ  ßÑú¼Ñ¡Γ«ó ¿½¿ »α«µÑñπα,  ¡« ¡Ñ ∩ó½∩ÑΓß∩
  8245.         «í∩ºáΓѽ∞¡δ¼.
  8246.  
  8247.              ìѬ«Γ«αδÑ ñ¿αÑ¬Γ¿óδ ó αѪ¿¼Ñ  MASM  ¿  ó  π½πτΦÑ¡¡«¼  αѪ¿¼Ñ
  8248.  
  8249.         TASM2 #3-5/䫬              = 195 =
  8250.  
  8251.         ¿ñÑ¡Γ¿τ¡δ. ìá»α¿¼Ñα, ß½ÑñπεΘ¿Ñ ñ¿αÑ¬Γ¿óδ «»αÑñѽ∩εΓ ¿ñÑ¡Γ¿Σ¿¬áΓ«-
  8252.         αδ,  ¬á¬ τáßΓ∞ ß¿¡Γá¬ß¿ßá ∩ºδ¬á,  ¿ Γᬿ¼ «íαẫ¼ ó «í«¿σ αѪ¿¼áσ
  8253.         ß«ó»áñáεΓ.
  8254.  
  8255.                 =       DD      DQ
  8256.                 :       DF      DT
  8257.                 DB      DP      DW
  8258.                 EQU
  8259.  
  8260.  
  8261.  
  8262.  
  8263.         TASM2 #3-5/䫬              = 196 =
  8264.  
  8265.              çᬽετÑ¡¡δÑ ó ¬áóδτ¬¿ ßΓ᫬¿, ∩ó½∩εΘ¿Ñß∩ áαúπ¼Ñ¡ΓἿ ñ¿αÑ¬Γ¿ó     
  8266.         -----------------------------------------------------------------
  8267.  
  8268.              ä¿αÑ¬Γ¿óá INCLUDE ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ó«ß»α¿¡¿¼áÑΓ ó ¬áτÑßΓ-
  8269.         óÑ áαúπ¼Ñ¡ΓᠺᬽετÑ¡¡«Ñ ó ¬áóδτ¬¿ ¿¼∩ Σá⌐½á:
  8270.  
  8271.                 INCLUDE "MYDEFS.INC"
  8272.  
  8273.              é αѪ¿¼Ñ MASM  ¬áóδτ¬¿ ¡Ñ ΓαÑí«ó὿ß∞:
  8274.  
  8275.                 INCLUDE MYDEFS.INC
  8276.  
  8277.              ä¿αÑ¬Γ¿óδ %TITLE ¿ %SUBTTL ΓᬪѠΓαÑíπεΓ,  τΓ«íδ π¬áºδóáѼδÑ
  8278.         ó ¡¿σ ßΓ᫬¿ ºá¬½ετ὿ß∞ ó ¬áóδτ¬¿:
  8279.  
  8280.                 %TITLE  "îá¬α««»αÑñѽѡ¿∩" ; ¬«¼¼Ñ¡Γáα¿⌐ ¿ú¡«α¿απÑΓß∩
  8281.                 %SUBTTL "ü½«¬ ßΓαπ¬Γπα¿α«óá¡¡δσ ¼á¬α«¬«¼á¡ñ" ; ¬«¼¼Ñ¡Γá-
  8282.                                                 ; α¿⌐ ¿ú¡«α¿απÑΓß∩
  8283.  
  8284.              èᬠ»«¬áºδóáεΓ φΓ¿ »α¿¼Ñαδ,  ΓαÑí«óá¡¿∩ π¬áºδóáΓ∞ ¬áóδτ¬¿, ó
  8285.         ¬«Γ«αδÑ ºá¬½ετáεΓß∩ ºáú«½«ó¬¿ ¿ »«ñºáú«½«ó¬¿,  »«ºó«½∩εΓ óá¼  ñ«-
  8286.         íáó½∩Γ∞ ó ¬«¡µÑ φΓ¿σ ßΓ᫬ ¬«¼¼Ñ¡Γáα¿¿.  é Σá⌐½ ½¿ßΓ¿¡úá φΓ¿ ¬«¼-
  8287.         ¼Ñ¡Γáα¿¿ ¡Ñ ó¬½ετáεΓß∩. é αѪ¿¼Ñ MASM óßÑ τΓ« ß½ÑñπÑΓ ºá ñ¿αÑ¬Γ¿-
  8288.         óἿ .TITLE ¿ .SUBTTL ßΓá¡«ó¿Γß∩ τáßΓ∞ε ßΓ᫬¿ ºáú«½«ó¬á (ó¬½ετá∩
  8289.         ½εíδÑ ¬«¼¼Ñ¡Γáα¿¿).
  8290.  
  8291.                                                                                
  8292.         æÑú¼Ñ¡Γδ ¿ úαπ»»δ
  8293.         -----------------------------------------------------------------
  8294.  
  8295.              æ»«ß«í, ß  »«¼«Θ∞ε  ¬«Γ«α«ú«  Æπαí« ÇßßѼí½Ñα «íαáíáΓδóáÑΓ ó
  8296.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ßÑú¼Ñ¡Γδ ¿ úαπ»»δ,  ¼«ªÑΓ ó¡ÑßΓ¿ í«½∞Φ«Ñ αẽ¿-
  8297.         τ¿Ñ  ó Σ«α¼¿α«óá¡¿Ñ ¿ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼.  èᬠ¿ í«½∞Φ¿¡ßΓóπ ½ε-
  8298.         ñÑ⌐, óá¼, óÑα«∩Γ¡«, ¡Ñ ºáσ«τÑΓß∩ ½«¼áΓ∞ ú«½«óπ ¡áñ «Φ¿í¬á¼¿, ó«º-
  8299.         ¡¿¬áεΘ¿¼¿ ¿º-ºá óºá¿¼«ñÑ⌐ßΓó¿∩ ßÑú¼Ñ¡Γ«ó ¿ úαπ»».
  8300.  
  8301.              ü«½∞Φ¿¡ßΓó« Γαπñ¡«ßΓÑ⌐  ó φΓ«¼ »α«µÑßßѠ󫺡¿¬áÑΓ ¿º-ºá »α«-
  8302.         ¿ºó«½∞¡«ú« σáαá¬ΓÑαá »αÑñ»«½«ªÑ¡¿⌐ ó MASM (¿  ß½Ññ«óáΓѽ∞¡« Æπαí«
  8303.         ÇßßѼí½Ñα«¼ ó αѪ¿¼Ñ MASM) « ßß佬áσ ¡á ñá¡¡δÑ ¿½¿ ¬«ñ ó úαπ»»áσ.
  8304.         è ßτáßΓ∞ε,  π½πτΦÑ¡¡δ⌐ αѪ¿¼ ßú½áª¿óáÑΓ ¡Ñ¬«Γ«αδÑ ¡á¿í«½ÑÑ  ∩ó¡δÑ
  8305.         »α«í½Ñ¼δ, ¬«Γ«αδÑ ¼«úπΓ óδºóáΓ∞ ñ¿αÑ¬Γ¿óδ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ¿
  8306.         úαπ»» ó MASM. Äí φΓ«¼ ¼δ ¿ αáß߬áªÑ¼ ñá½ÑÑ.
  8307.  
  8308.                    ä«ßΓπ» ¬ ñá¡¡δ¼ ó ßÑú¼Ñ¡ΓÑ, »α¿¡áñ½ÑªáΘѼ úαπ»»Ñ            
  8309.         -----------------------------------------------------------------
  8310.  
  8311.         TASM2 #3-5/䫬              = 197 =
  8312.  
  8313.  
  8314.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ½εí«⌐ φ½Ñ¼Ñ¡Γ ñá¡¡δσ ó ßÑú¼Ñ¡ΓÑ,  ∩ó½∩ε-
  8315.         ΘѼß∩ τáßΓ∞ε úαπ»»δ,  αáßß¼áΓα¿óáÑΓß∩  ßΓα«ú« ¬á¬ φ½Ñ¼Ñ¡Γ úαπ»»δ,
  8316.         á ¡Ñ ßÑú¼Ñ¡Γá. é Æπαí« ÇßßѼí½ÑαÑ ñ½∩ αáß»«º¡áóá¡¿∩ φ½Ñ¼Ñ¡Γá ñá¡-
  8317.         ¡δσ,  ¬á¬ φ½Ñ¼Ñ¡Γá ßÑú¼Ñ¡Γá, ¡πª¡« ¿ß»«½∞º«óáΓ∞ ∩ó¡«Ñ »ÑαÑ«»αÑñÑ-
  8318.         ½Ñ¡¿Ñ ßÑú¼Ñ¡Γá.
  8319.  
  8320.              é αѪ¿¼Ñ MASM φΓ« ¿¡ΓÑα»αÑΓ¿απÑΓß∩ »«-ñαπú«¼π.  ê¡«úñá ¿ñÑ¡-
  8321.         Γ¿Σ¿¬áΓ«αδ ßτ¿ΓáÑΓß∩ τáßΓ∞ε ßÑú¼Ñ¡Γá, á ¡Ñ τáßΓ∞ε úαπ»»δ. é τáßΓ-
  8322.         ¡«ßΓ¿,  ó  αѪ¿¼Ñ MASM ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¿¡ΓÑα»αÑΓ¿απÑΓß∩,  ¬á¬ τáßΓ∞
  8323.         ßÑú¼Ñ¡Γá, ¬«úñá «¡ ¿ß»«½∞ºπÑΓß∩, ¬á¬ π¬áºáΓѽ∞ ¡á óδñѽѡ¡δÑ ñá¡-
  8324.         ¡δÑ. ¥Γ« ¼«ªÑΓ óδºóáΓ∞ »πΓá¡¿µπ, Γᬠ¬á¬ ¬«úñá óδ ¡Ñ»«ßαÑñßΓóÑ¡¡«
  8325.         «íαáΘáÑΓÑß∞ ¬ ñá¡¡δ¼ íѺ «»Ñαᵿ¿ OFFSET,  MASM ¡Ñ¬«ααÑ¬Γ¡« úÑ¡Ñ-
  8326.         α¿απÑΓ ßß佬π ¡á ßÑú¼Ñ¡Γ ó¼ÑßΓ« ßß佬¿ ¡á úαπ»»π.
  8327.  
  8328.              Åα¿¼Ñα »«¼«ªÑΓ ¡á¼ »«∩ß¡¿Γ∞, ¬á¬ ½Ñú¬« ¼«ª¡« ¡áª¿Γ∞ ¡Ñ»α¿∩Γ-
  8329.         ¡«ßΓ¿ ¿º-ºá ß»Ñµ¿Σ¿¬¿ áñαÑßᵿ¿ ó MASM.  Éáßß¼«Γα¿¼ ß½ÑñπεΘπε ¡Ñ-
  8330.         »«½¡πε »α«úαá¼¼π MASM, ó ¬«Γ«α«⌐ «»¿ßδóáεΓß∩ Γα¿ ßÑú¼Ñ¡Γá ñá¡¡δσ:
  8331.  
  8332.         dseg1   SEGMENT para public 'data'
  8333.         v1      db      0
  8334.         dseg1   ENDS
  8335.  
  8336.         dseg2   SEGMENT para public 'data'
  8337.         v2      db      0
  8338.         dseg2   ENDS
  8339.  
  8340.         dseg3   SEGMENT para public 'data'
  8341.         v3      db      0
  8342.         dseg3   ENDS
  8343.  
  8344.         DGROUP  GROUP   dseg1,dseg2,dseg3
  8345.         cseg    SEGMENT para    public  'code'
  8346.  
  8347.                 ASSUME  cs:cseg,ds:DGROUP
  8348.  
  8349.         start:
  8350.                 mov     ax,OFFSET v1
  8351.                 mov     bx,OFFSET v2
  8352.                 mov     cx,OFFSET v3
  8353.         cseg    ENDS
  8354.                 END     start
  8355.  
  8356.              Æα¿ ßÑú¼Ñ¡Γá  dseg1,  dseg2  ¿  dseg3 úαπ»»¿απεΓß∩ »«ñ «ñ¡¿¼
  8357.         ¿¼Ñ¡Ñ¼ DGROUP.  é αѺπ½∞ΓáΓÑ óßÑ »ÑαѼѡ¡δÑ  «Γñѽ∞¡δσ  ßÑú¼Ñ¡Γ«ó
  8358.         σαá¡∩Γß∩ ó »á¼∩Γ¿ ó¼ÑßΓÑ. é ¿ßσ«ñ¡«¼ ΓѬßΓÑ »α«úαá¼¼δ ó ¬áªñ«¼ ¿º
  8359.  
  8360.         TASM2 #3-5/䫬              = 198 =
  8361.  
  8362.         «Γñѽ∞¡δσ ßÑú¼Ñ¡Γ«ó «»¿ßδóáÑΓß∩ íá⌐Γ«óá∩ »ÑαѼѡ¡á∩ (¼ÑΓ¬¿ v1, v2
  8363.         ¿ v3).
  8364.  
  8365.              é ¬«ñÑ ñá¡¡«⌐ »α«úαá¼¼δ MASM ó αÑú¿ßΓαδ AX, BX ¿ CX ºáúαπªá-
  8366.         εΓß∩ ß¼ÑΘÑ¡¿∩ áñαÑß«ó φΓ¿σ »ÑαѼѡ¡δσ. é ß««ΓóÑΓßΓó¿¿ ß »αÑñΦÑßΓ-
  8367.         óπεΘÑ⌐ ñ¿αÑ¬Γ¿óδ ASSUME ¿ ¿º-ºá Γ«ú«,  τΓ« ßÑú¼Ñ¡Γδ ñá¡¡δσ ßúαπ»-
  8368.         »¿α«óá¡δ ó¼ÑßΓÑ,  óδ ¼«ªÑΓÑ »«ñπ¼áΓ∞,  τΓ« MASM  íπñÑΓ  óδτ¿ß½∩Γ∞
  8369.         ß¼ÑΘÑ¡¿∩ »ÑαѼѡ¡δσ «Γ¡«ß¿Γѽ∞¡« óßÑ⌐ úαπ»»δ,  ó ¬«Γ«α«⌐ »ÑαѼѡ-
  8370.         ¡δÑ «τÑó¿ñ¡« σαá¡∩Γß∩ ó »á¼∩Γ¿.
  8371.  
  8372.              ì« »α«¿º«⌐ñÑΓ ß«óßѼ ¡Ñ φΓ«!  é«»αѬ¿ óáΦ¿¼ ¡á¼ÑαÑ¡¿∩¼  MASM
  8373.         óδτ¿ß½∩ÑΓ  ß¼ÑΘÑ¡¿∩  »ÑαѼѡ¡δσ  «Γ¡«ß¿Γѽ∞¡« «Γñѽ∞¡δσ ßÑú¼Ñ¡Γ«ó
  8374.         dseg1,  dseg2 ¿ dseg3.  Ä¡ ñѽáÑΓ φΓ« ¡Ñß¼«Γα∩ ¡á Γ«, τΓ« óßÑ Γα¿
  8375.         ßÑú¼Ñ¡Γá ñá¡¡δσ ßúαπ»»¿α«óá¡δ ó »á¼∩Γ¿ ó «ñ¿¡ ßÑú¼Ñ¡Γ ñá¡¡δσ, áñ-
  8376.         αÑßπѼδ⌐ τÑαѺ αÑú¿ßΓα DS. üÑßß¼δ߽ѡ¡« «»αÑñѽ∩Γ∞ ß¼ÑΘÑ¡¿∩ »ÑαÑ-
  8377.         ¼Ñ¡¡δσ «Γ¡«ß¿Γѽ∞¡« «Γñѽ∞¡δσ  ßÑú¼Ñ¡Γ«ó ó ΓѬßΓÑ »α«úαá¼¼δ, ¬«ú-
  8378.         ñá  φΓ¿  ßÑú¼Ñ¡Γδ  ß¬«¼í¿¡¿α«óá¡δ  ó  »á¼∩Γ¿  ó   «ñ¿¡   ßÑú¼Ñ¡Γ.
  8379.         àñ¿¡ßΓóÑ¡¡δ⌐  ß»«ß«í  ßß佬¿ ¡á ΓᬿѠ»ÑαѼѡ¡δÑ ß«ßΓ«¿Γ ó ßß佬Ñ
  8380.         ¡á ¿σ ß¼ÑΘÑ¡¿∩ «Γ¡«ß¿Γѽ∞¡« óßÑ⌐ úαπ»»δ.
  8381.  
  8382.              ùΓ«íδ ¿ºíáó¿Γ∞ß∩ ó MASM «Γ φΓ«⌐  »α«í½Ñ¼δ,  óá¼  »«ΓαÑíπÑΓß∩
  8383.         ¡áα∩ñπ ß ¬½ετÑóδ¼ ß½«ó«¼ OFFSET ºáñáóáΓ∞ ¿¼∩ úαπ»»δ:
  8384.  
  8385.                 mov     ax,OFFSET DGROUP:v1
  8386.                 mov     bx,OFFSET DGROUP:v2
  8387.                 mov     cx,OFFSET DGROUP:v3
  8388.  
  8389.              ò«Γ∩ ΓÑ»Ñα∞  φΓ« áßßÑ¼í½¿απÑΓß∩ ¬«ααÑ¬Γ¡« ¿ ºáúαπªáεΓß∩ ß¼Ñ-
  8390.         ΘÑ¡¿∩ »ÑαѼѡ¡δσ v1, v2 ¿ v3 «Γ¡«ß¿Γѽ∞¡« DGROUP (úñÑ ß«íαá¡δ «Γ-
  8391.         ñѽ∞¡δÑ  ßÑú¼Ñ¡Γδ),  óδ  ¼«ªÑΓÑ  ½Ñú¬« ºáíδΓ∞ ºáñáΓ∞ ¬óá½¿Σ¿¬áΓ«α
  8392.         DGROUP.  àß½¿ óδ ßñѽáÑΓÑ φΓπ «Φ¿í¬π, º¡áτÑ¡¿∩ ß¼ÑΘÑ¡¿⌐ ¡Ñ »«ºó«-
  8393.         ½∩Γ ¬«ααÑ¬Γ¡« «»αÑñѽ¿Γ∞ »ÑαѼѡ¡δÑ ó »á¼∩Γ¿,  ¿ óδ ¡Ñ »«½πτ¿ΓÑ ó
  8394.         MASM ¡¿¬á¬«ú« π¬áºá¡¿∩,  τΓ« τΓ«-Γ« »α«¿º«Φ½« ¡Ñ Γá¬.  ô½πτΦÑ¡¡δ⌐
  8395.         αѪ¿¼ »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ Γᬿσ ¡Ñ»α¿∩Γ¡«ßΓÑ⌐:
  8396.  
  8397.                 IDEAL
  8398.         SEGMENT dseg1 para public 'data'
  8399.         v1      db      0
  8400.         ENDS
  8401.  
  8402.         SEGMENT dseg2 para public 'data'
  8403.         v2      db      0
  8404.         ENDS
  8405.  
  8406.         SEGMENT dseg3 para public 'data'
  8407.         v3      db      0
  8408.  
  8409.         TASM2 #3-5/䫬              = 199 =
  8410.  
  8411.         ENDS
  8412.  
  8413.         GROUP   DGROUP   dseg1,dseg2,dseg3
  8414.         SEGMENT cseg para public 'code'
  8415.  
  8416.                 ASSUME  cs:cseg,ds:DGROUP
  8417.  
  8418.         start:
  8419.                 mov     ax,OFFSET v1
  8420.                 mov     bx,OFFSET v2
  8421.                 mov     cx,OFFSET v3
  8422.         ENDS
  8423.                 END     start
  8424.  
  8425.              æ¼ÑΘÑ¡¿∩ »ÑαѼѡ¡δσ v1,  v2 ¿ v3 ¬«ααÑ¬Γ¡« óδτ¿ß½∩εΓß∩ «Γ¡«-
  8426.         ß¿Γѽ∞¡«  úαπ»»δ,  ó ¬«Γ«α«⌐ ß«íαá¡δ «Γñѽ∞¡δÑ ßÑú¼Ñ¡Γδ,  ¬«Γ«αδ¼
  8427.         »α¿¡áñ½ÑªáΓ »ÑαѼѡ¡δÑ.  é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¬óá½¿Σ¿¬áΓ«α  DGROUP
  8428.         ñ½∩ ßß佬¿ ¡á »ÑαѼѡ¡δÑ ó ßÑú¼Ñ¡Γáσ úαπ»»δ ¡Ñ ΓαÑíπÑΓß∩. é αѪ¿-
  8429.         ¼Ñ MASM φëà¬óá½¿Σ¿¬áΓ«α ΓᬪѠ¡Ñ ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼δ¼,  ¡«, τΓ«
  8430.         σπªÑ óßÑú«,  ¡Ñ óδñáÑΓß∩ ¡¿¬á¬¿σ »αÑñπ»αѪñÑ¡¿⌐, Ñß½¿ óδ ºáí뫨 ó
  8431.         ¬«¡¬αÑΓ¡«⌐ ßßδ½¬Ñ «»αÑñѽ¿Γ∞ ¿¼∩ úαπ»»δ.
  8432.  
  8433.                       Ä»αÑñѽѡ¿Ñ ó ¬«ñÑ í½¿ª¡¿σ ¿ ñá½∞¡¿σ ¼ÑΓ«¬               
  8434.         -----------------------------------------------------------------
  8435.  
  8436.              Åα¿ «»αÑñѽѡ¿¿  í½¿ª¡¿σ ¿½¿ ñá½∞¡¿σ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ó LABEL
  8437.         ¿½¿ PROC ßß佬¿ ¡á ¿ñÑ¡Γ¿Σ¿¬áΓ«α ñѽáεΓß∩ «Γ¡«ß¿Γѽ∞¡«  úαπ»»δ, ó
  8438.         ¬«Γ«α«⌐ ß«ñÑনΓß∩ ßÑú¼Ñ¡Γ.  àß½¿ ßÑú¼Ñ¡Γ, úñÑ ß«ñÑনΓß∩ ¿ñÑ¡Γ¿-
  8439.         Σ¿¬áΓ«α, ¡Ñ ∩ó½∩ÑΓß∩ τáßΓ∞ε úαπ»»δ, Γ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α αáßß¼áΓα¿óá-
  8440.         ÑΓß∩  «Γ¡«ß¿Γѽ∞¡« ßÑú¼Ñ¡Γá.  ¥Γ« «º¡áτáÑΓ,  τΓ« óá¼ ¡Ñ ¡πª¡« ¿ß-
  8441.         »«½∞º«óáΓ∞ ñ¿αÑ¬Γ¿óπ  ASSUME  CS  ñ½∩ ßÑú¼Ñ¡Γá,  τΓ«íδ «»αÑñѽ¿Γ∞
  8442.         ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ í½¿ª¡Ñú« ¿½¿ ñá½∞¡Ñú« Γ¿»á. àß½¿ ºá»¿ßáΓ∞ Σαáú¼Ñ¡Γ
  8443.         »α«úαá¼¼δ ó αѪ¿¼Ñ MASM:
  8444.  
  8445.                 CODE    SEGMENT
  8446.                 ASSUME  CS:CODE
  8447.                 XYZ     PROC    FAR
  8448.                         .
  8449.                         .                       ; ¬«ñ »α«µÑñπαδ MASM
  8450.                         .
  8451.                 XYZ     ENDP
  8452.                 CODE    ENDS
  8453.  
  8454.         Γ« ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ «¡ »α¿¼ÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  8455.  
  8456.  
  8457.         TASM2 #3-5/䫬              = 200 =
  8458.  
  8459.                 CODE    SEGMENT
  8460.                 PROC    XYZ FAR
  8461.                         .
  8462.                         .    ; ¬«ñ »α«µÑñπαδ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  8463.                         .
  8464.                 ENDP
  8465.                 ENDS
  8466.  
  8467.  
  8468.              ¥Γ¿ ¿º¼Ñ¡Ñ¡¿∩ ¡Ñ ñ«íáó½∩εΓ ¡«óδσ ó«º¼«ª¡«ßΓÑ⌐ »« ßαáó¡Ñ¡¿ε ß
  8469.         αѪ¿¼«¼ MASM. Äñ¡á¬« φΓ« »«ºó«½∩ÑΓ «ßó«í«ñ¿Γ∞ óáß «Γ ¡Ñ«íσ«ñ¿¼«ß-
  8470.         Γ¿ π¬áºδóáΓ∞ ÇßßѼí½Ñαπ Γ«, τΓ« π½πτΦÑ¡¡δ⌐ αѪ¿¼ ¼«ªÑΓ «»αÑñѽ¿Γ∞
  8471.         ßá¼.
  8472.  
  8473.                   é¡ÑΦ¡¿Ñ, «íΘÑñ«ßΓπ»¡δÑ ¿ ú½«íá½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ           
  8474.         -----------------------------------------------------------------
  8475.  
  8476.              éß∩¬¿⌐ αáº,  ¬«úñá óδ ñ«½ª¡δ  ºáñáóáΓ∞  Γ¿»  (BYTE,  WORD  ¿
  8477.         Γ.ñ.), ¡á»α¿¼Ñα ó ñ¿αÑ¬Γ¿óáσ EXTRN ¿½¿ GLOBAL, ¼«ª¡« ¿ß»«½∞º«óáΓ∞
  8478.         ¿¼∩ ßΓαπ¬Γπαδ:
  8479.  
  8480.                 STRUC   MoreStuff
  8481.                 HisStuff        DB      0
  8482.                 HerStuff        DW      0
  8483.                 ItsStuff        DB      0
  8484.                 ENDS
  8485.                 EXTRN   SNAME:MoreStuff
  8486.  
  8487.              ¥Γ« ßó«⌐ßΓó«  ó  ß«τÑΓá¡¿¿  ß «»¿ßá¡¡δ¼¿ αá¡ÑÑ π½πτΦÑ¡¿∩¼¿ ó
  8488.         «»Ñαᵿ¿ Γ«τ¬¿ »«ºó«½∩ÑΓ óá¼ ßßδ½áΓ∞ß∩ ¡á φ½Ñ¼Ñ¡Γδ ßΓαπ¬Γπα,  ¬«-
  8489.         Γ«αδÑ  ∩ó½∩εΓß∩  ó¡ÑΦ¡¿¼¿ »« «Γ¡«ΦÑ¡¿ε ¬ óáΦѼπ ¿ßσ«ñ¡«¼π ¼«ñπ½ε.
  8490.         ¥Γ« á¡á½«ú¿τ¡« Γ«¼π,  ¬á¬ Ñß½¿ íδ óδ «»αÑñѽ¿½¿ φ½Ñ¼Ñ¡Γδ ßΓαπ¬Γπα
  8491.         ó «í«¿σ ¼«ñπ½∩σ. Ä»Ñαᵿ∩ SIZE ΓᬪѠ¬«ααÑ¬Γ¡« ß««íΘáÑΓ « αẼÑαÑ
  8492.         ó¡ÑΦ¡¿σ ßΓαπ¬Γπα ñá¡¡δσ. èáªñδ⌐ «íΘÑñ«ßΓπ»¡δ⌐ ß¿¼ó«½ ó π½πτΦÑ¡¡«¼
  8493.         αѪ¿¼Ñ  «»αÑñѽ∩ÑΓß∩  »α¿  ºáñá¡¿¿ ñ¿αÑ¬Γ¿óδ PUBLIC.  ¥Γ« »«½Ñº¡«
  8494.         ΓᬪѠñ½∩ »ÑαÑ«»αÑñѽѡ¿∩ »ÑαѼѡ¡δσ.  é MASM  óßÑ  «íΘÑñ«ßΓπ»¡δÑ
  8495.         ß¿¼ó«½δ »ÑαÑτ¿ß½∩εΓß∩ ó ¬«¡µÑ »α«úαá¼¼δ,  τΓ« «úαá¡¿τ¿óáÑΓ ß»«ß«-
  8496.         íδ, ß »«¼«Θ∞ε ¬«Γ«αδσ óδ ¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ ß¿¼ó«½δ. ìá»α¿¼Ñα:
  8497.  
  8498.                 Perfect = 0
  8499.                         Public Perfect  ; «íΩ∩ó¿Γ∞ Perfect «íΘÑñ«ßΓπ»¡δ¼
  8500.                 Perfect = 10            ; »ÑαÑ«»αÑñѽ¿Γ∞ º¡áτÑ¡¿Ñ Perfect
  8501.  
  8502.              é αѪ¿¼Ñ MASM PUBLIC Perfect αáó¡« 8,  σ«Γ∩ ó ¼«ñπ½Ñ Perfect
  8503.         »ÑαÑ«»αÑñѽ∩ÑΓß∩ »«ß½Ñ «»¿ßá¡¿∩ PUBLIC. é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ, »«ß-
  8504.  
  8505.         TASM2 #3-5/䫬              = 201 =
  8506.  
  8507.         ¬«½∞¬π «íΘÑñ«ßΓπ»¡δ¼¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ßΓá¡«ó∩Γß∩ ó  ¬«¡µÑ  ¼«ñπ½∩,
  8508.         ñαπú«⌐  ¼«ñπ½∞,  ¬«Γ«αδ⌐ ¿¼»«αΓ¿απÑΓ φëà¿ñÑ¡Γ¿Σ¿¬áΓ«α ß »«¼«Θ∞ε
  8509.         «»¿ßá¡¿∩ EXTRN, »«½πτáÑΓ º¡áτÑ¡¿Ñ Perfect 10.
  8510.  
  8511.  
  8512.  
  8513.  
  8514.         TASM2 #3-5/䫬              = 202 =
  8515.  
  8516.                                                                                
  8517.         äαπú¿Ñ «Γ½¿τ¿∩
  8518.         -----------------------------------------------------------------
  8519.  
  8520.              é ñá¡¡«¼  αáºñѽѠ«»¿ßδóáÑΓß∩ ¡Ñ߬«½∞¬« ñ«»«½¡¿Γѽ∞¡δσ «Γ½¿-
  8521.         τ¿⌐ αѪ¿¼á MASM «Γ π½πτΦÑ¡¡«ú« αѪ¿¼á.
  8522.  
  8523.                                Å«ñáó½Ñ¡¿Ñ ¬«ααÑ¬Γ¿α«ó«¬                        
  8524.         -----------------------------------------------------------------
  8525.  
  8526.              é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ Æπαí« ÇßßѼí½Ñα ¡Ñ úÑ¡Ñα¿απÑΓ ßÑú¼Ñ¡Γ¡δσ
  8527.         ¬«ααÑ¬Γ¿α«ó«¬ ñ½∩ τáßΓ¡δσ ßÑú¼Ñ¡Γ«ó (private), ¬«Γ«αδÑ óδαáó¡¿óá-
  8528.         εΓß∩  ¡á  úαá¡¿µπ ßΓαá¡¿µδ ¿½¿ »áαáúαáΣá.  Æá¬ ¬á¬ ¬«¼»«¡«óΘ¿¬ ¡Ñ
  8529.         ΓαÑíπÑΓ »«ñ«í¡δ󠬫ααÑ¬Γ¿α«ó«¬,  »α¿ áßßÑ¼í½¿α«óá¡¿¿  »α«úαá¼¼  ó
  8530.         π½πτΦÑ¡¡«¼  αѪ¿¼Ñ ¼«ªÑΓ íδΓ∞ »«½πτÑ¡ «íΩÑ¬Γ¡δ⌐ ¬«ñ ¼Ñ¡∞ΦÑú« «íΩ-
  8531.         Ñ¼á,  ¬«¼»«¡«ó¬π ¬«Γ«αδ󠬫¼»«¡«óΘ¿¬ óδ»«½¡∩ÑΓ í«½ÑÑ íδßΓα«,  τѼ
  8532.         ¬«¼»«¡«ó¬π «íΩÑ¬Γ¡δσ Σá⌐½«ó, ßúÑ¡Ñα¿α«óá¡¡δσ ó αѪ¿¼Ñ MASM. äá½ÑÑ
  8533.         »«¬áºδóáÑΓß∩,  ¬á¬¿¼ «íαẫ¼ ΓᬿѠ¬«ααÑ¬Γ¿α«ó¬¿  »α«¿ºó«ñ∩Γß∩  ó
  8534.         αѪ¿¼Ñ MASM (¡« ¡Ñ ó αѪ¿¼Ñ IDEAL):
  8535.  
  8536.                 SEGMENT DATA PRIVATE PARA
  8537.                 VAR1    DB      0
  8538.                 VAR2    DW      0
  8539.                 ENDS
  8540.                 SEGMENT CODE
  8541.                         ASSUME ds:DATA
  8542.                         mov     ax,VAR2 ; ¬«ααÑ¬Γ¿α«ó«¬ ¡Ñ ΓαÑíπÑΓß∩
  8543.                 ENDS
  8544.  
  8545.              ¥Γ« αẽ¿τ¿Ñ ¡Ñ ó½¿∩ÑΓ ¡á ¬«ñ,  ¬«Γ«αδ⌐ óδ »¿ΦÑΓÑ.  çñÑß∞ «í
  8546.         φΓ«¼ π»«¼¿¡áÑΓß∩ Γ«½∞¬« ñ½∩ óáΦÑú« ßóÑñÑ¡¿∩.
  8547.  
  8548.                                                                                
  8549.         Ä»Ñαá¡ñ ¿¡ßΓαπ¬µ¿¿ BOUND
  8550.         -----------------------------------------------------------------
  8551.  
  8552.              é ¿¡ßΓαπ¬µ¿¿ BOUND ΓαÑíπÑΓß∩  π¬áºδóáΓ∞  «»Ñαá¡ñ  Γ¿»á  WORD
  8553.         (ß½«ó«), á ¡Ñ DWORD (ñó«⌐¡«Ñ ß½«ó«). ¥Γ« »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞
  8554.         ¡¿ª¡εε  ¿ óÑασ¡εε úαá¡¿µπ ó ó¿ñÑ ñóπ󠬫¡ßΓá¡Γ αẼÑα«¼  ó ß½«ó«,
  8555.         τΓ« πßΓαá¡∩ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ »αÑ«íαẫóá¡¿∩ «»Ñαá¡ñá ó DWORD ∩ó¡δ¼
  8556.         «íαẫ¼ (ß »«¼«Θ∞ε DWORD PTR).  é αѪ¿¼Ñ MASM óδ  ñ«½ª¡δ  ºá»¿ßδ-
  8557.         óáΓ∞:
  8558.  
  8559.                 BOUNDS  DW      1,4      ; ¡¿ª¡∩∩ ¿ óÑασ¡∩∩ úαá¡¿µδ
  8560.                 BOUND   DWORD PTR BOUNDS ; ΓαÑíπÑΓß∩ ó αѪ¿¼Ñ MASM
  8561.  
  8562.  
  8563.         TASM2 #3-5/䫬              = 203 =
  8564.  
  8565.              Äñ¡á¬« ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ΓαÑíπÑΓß∩ Γ«½∞¬« ºá»¿ßáΓ∞:
  8566.  
  8567.                 BOUNDS  DW      1,4     ; ¡¿ª¡∩∩ ¿ óÑασ¡∩∩ úαá¡¿µδ
  8568.                 BOUND   [BOUNDS]        ; ñ«»π߬áÑΓß∩ ó π½πτΦÑ¡¡«¼
  8569.                                         ; αѪ¿¼Ñ
  8570.  
  8571.                               è«¼¼Ñ¡Γáα¿¿ ó ¼á¬α«¬«¼á¡ñáσ                      
  8572.         -----------------------------------------------------------------
  8573.  
  8574.              é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ ¬«¼¼Ñ¡Γáα¿¿ ó ¼á¬α«¬«¼á¡ñáσ ¿¡ΓÑα»αÑΓ¿-
  8575.         απεΓß∩,  ¬á¬ ßΓ᫬¿.  ùΓ«íδ »«ñßΓáó¿Γ∞ ó ¼á¬α«¬«¼¼Ñ¡Γáα¿⌐  »πßΓ«⌐
  8576.         »áαá¼ÑΓα, óδ ñ«½ª¡δ π¬áºáΓ∞ »ÑαÑñ »áαá¼ÑΓα«¼ á¼»Ñαßá¡ñ (&):
  8577.  
  8578.                 MACRO DOUBLE ARC
  8579.                         SHL     arg,1   ; π¼¡«ª¿Γ∞ &ARG ¡á 2
  8580.                 ENDM
  8581.  
  8582.              è«úñá φΓá  ¼á¬α«¬«¼á¡ñá óδºδóáÑΓß∩ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ß »«-
  8583.         ¼«Θ∞ε ó맮óá DOUBLE BX, Γ« ó Σá⌐½Ñ ½¿ßΓ¿¡úá óδóÑñÑΓß∩:
  8584.  
  8585.                 SHL     bx,1    ; π¼¡«ª¿Γ∞ BX ¡á 2
  8586.  
  8587.              æ ñαπú«⌐ ßΓ«α«¡δ, Ñß½¿ ¼á¬α«¬«¼á¡ñá «»αÑñѽѡá ß½ÑñπεΘ¿¼ «í-
  8588.         αẫ¼:
  8589.  
  8590.                 MACRO DOUBLE ARC
  8591.                         SHL     arg,1   ; π¼¡«ª¿Γ∞ ARG ¡á 2
  8592.                 ENDM
  8593.  
  8594.         Γ« ó Σá⌐½Ñ ½¿ßΓ¿¡úá ARG ºá¼Ñ¡Ñ¡« ¡Ñ íπñÑΓ:
  8595.  
  8596.                 SHL     bx,1   ; π¼¡«ª¿Γ∞ ARG ¡á 2
  8597.  
  8598.  
  8599.  
  8600.  
  8601.         TASM2 #3-5/䫬              = 204 =
  8602.  
  8603.                                                                                
  8604.         ï«¬á½∞¡δÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ
  8605.         -----------------------------------------------------------------
  8606.  
  8607.              êß»«½∞º«ó᡿Ѡ󫺼«ª¡«ßΓÑ⌐ ½«¬á½∞¡δσ  ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó  Æπαí«
  8608.         ÇßßѼí½Ñαá  »α¿ »ÑαÑσ«ñÑ ó π½πτΦÑ¡¡δ⌐ αѪ¿¼ αáºαÑΦáÑΓß∩ áóΓ«¼áΓ¿-
  8609.         τÑ߬¿ (Γ«τ¡« ΓᬪÑ, ¬á¬ Ñß½¿ íδ óδ π¬áºá½¿ ñ¿αÑ¬Γ¿óπ LOCALS).
  8610.  
  8611.             æαáó¡Ñ¡¿Ñ »α«úαá¼¼¿α«óá¡¿∩ ó αѪ¿¼Ñ MASM ¿ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ     
  8612.         -----------------------------------------------------------------
  8613.  
  8614.              ùΓ«íδ ½«ú¿τÑ߬¿  ºáóÑαΦ¿Γ∞  ñá¡¡πε  ú½áóπ ¿ ñáΓ∞ óá¼ «¬«¡τá-
  8615.         Γѽ∞¡«Ñ µÑ½«ßΓ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ « αѪ¿¼Ñ MASM ¿ π½πτΦÑ¡¡«¼  αѪ¿-
  8616.         ¼Ñ  ¿  αẽ¿τ¿∩σ  ¼Ñªñπ  ¡¿¼¿,  ¼δ »α¿óÑñѼ »α¿¼Ñα «ñ¡«⌐ ¿ Γ«⌐ ªÑ
  8617.         »α«úαá¼¼δ,  ¡á»¿ßá¡¡«⌐ ñ½∩ αѪ¿¼Ñ MASM ¿ ñ½∩ π½πτΦÑ¡¡«ú«  αѪ¿¼á.
  8618.         êºπτ¿ó φΓ¿ »α¿¼Ñαδ ¿ »α«τ¿Γá󠬫¼¼Ñ¡Γáα¿¿ ó ½¿ßΓ¿¡úáσ, óδ ß¼«ªÑΓÑ
  8619.         «µÑ¡¿Γ∞ »αÑ¿¼πΘÑßΓóá, »αÑñ«ßΓáó½∩ѼδÑ ß¿¡Γá¬ß¿ß«¼ π½πτΦÑ¡¡«ú« αÑ-
  8620.         ª¿¼á.
  8621.  
  8622.              ôτΓ¿ΓÑ Γ«½∞¬«,  τΓ«  ñá¡¡δÑ  »α«úαá¼¼δ ¡Ñ ∩ó½∩εΓß∩ »α¿¼ÑαἿ
  8623.         σ«α«ΦÑú« ßΓ¿½∩  »α«úαá¼¼¿α«óá¡¿∩:  ¿¡ßΓαπ¬µ¿¿  »α«ßΓ«  »«¬áºδóáεΓ
  8624.         ¬«¡µÑ»µ¿¿ π½πτΦÑ¡¡«ú« αѪ¿¼á,  « ¬«Γ«αδσ ú«ó«α¿½«ß∞ ó ñá¡¡«⌐ ú½á-
  8625.         óÑ, ¿ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ó ¬áτÑßΓóÑ «íαẵá ñ½∩ ñѼ«¡ßΓαᵿ¿ ¡á-
  8626.         ¿í«½ÑÑ «íΘ¿σ ó«º¼«ª¡«ßΓÑ⌐ π½πτΦÑ¡¡«ú« αѪ¿¼á ¿ Ñú« «Γ½¿τ¿⌐ «Γ αÑ-
  8627.         ª¿¼á MASM.
  8628.  
  8629.              Åα«úαá¼¼á ñá¡¡«ú« »α¿¼Ñαá ßτ¿ΓδóáÑΓ ßΓ᫬π ß φ¬αá¡á,  »αÑ«í-
  8630.         αáºπÑΓ  ΓѬßΓ  ó »α«»¿ß¡δÑ íπ¬óδ (óÑασ¡¿⌐ αÑú¿ßΓα),  ¿ »ÑαÑñ ΓѼ,
  8631.         ¬á¬ óÑα¡πΓ∞ß∩ ó DOS,  óδó«ñ¿Γ αѺπ½∞ΓáΓ ¡á φ¬αá¡. ùΓ«íδ «Γ¼ÑΓ¿Γ∞,
  8632.         úñÑ  ¿ßσ«ñ¡δ⌐ ¬«ñ ñá¡¡«⌐ »α«úαá¼¼δ αẽ¿τáÑΓß∩ ó αѪ¿¼áσ MASM ¿ ó
  8633.         π½πτΦÑ¡¡«¼ αѪ¿¼Ñ (IDEAL),  ¼δ ñ«íá󿽿 ó ΓѬßΓ »α«úαá¼¼δ ¡π¼Ñα«-
  8634.         óá¡¡δÑ ¬«¼¼Ñ¡Γáα¿¿ (¬«Γ«αδÑ ¡áτ¿¡áεΓß∩ ß Γ«τ¬¿ ß ºá»∩Γ«⌐). ìá»α¿-
  8635.         ¼Ñα,  ¬«¼¼Ñ¡Γáα¿⌐ ; #4 »«¬áºδóáÑΓ óá¼, τΓ« ¡πª¡« τ¿ΓáΓ∞ ß««ΓóÑΓß-
  8636.         ΓóπεΘÑÑ  «»¿ßá¡¿Ñ  ß ¡«¼Ñα«¼ 4,  ß½ÑñπεΘÑÑ ºá ½¿ßΓ¿¡ú«¼ ó αáºñѽÑ
  8637.         "ǡ὿º αѪ¿¼á MASM ¿ π½πτΦÑ¡¡«ú« αѪ¿¼á".  èα«¼Ñ Γ«ú«, ñ½∩ óδñÑ-
  8638.         ½Ñ¡¿∩  «Γ½¿τ¿⌐  π½πτΦÑ¡¡«ú« αѪ¿¼á,  ¼δ ¿ß¬½ετ¿½¿ ¿º Ñú« »α¿¼Ñα«ó
  8639.         í«½∞Φ¿¡ßΓó« ¬«¼¼Ñ¡Γáα¿Ñó.  ùΓ«íδ »«¡∩Γ∞, ¬á¬ αáí«ΓáÑΓ ñá¡¡δ⌐ »α¿-
  8640.         ¼Ñα, »α«τ¿Γá⌐ΓÑ »Ñαóπε »α«úαá¼¼π. ä½∩ ßαáó¡Ñ¡¿∩ ¿ óδ∩ó½Ñ¡¿∩ π½πτ-
  8641.         ΦÑ¡¿⌐ π½πτΦÑ¡¡«ú« αѪ¿¼á »α«τ¿Γá⌐ΓÑ ΓᬪѠóΓ«απε »α«úαá¼¼π.
  8642.                             Åα¿¼Ñα »α«úαá¼¼δ ó αѪ¿¼Ñ MASM                     
  8643.         -----------------------------------------------------------------
  8644.  
  8645.         ; öá⌐½ <masexmpl.asm>
  8646.         ; Åα¿¼Ñα »α«úαá¼¼δ »αÑ«íαẫóá¡¿∩ ßΓ᫬¿ ó »α«»¿ß¡δÑ íπ¬óδ
  8647.         ; ó αѪ¿¼Ñ MASM
  8648.  
  8649.         TASM2 #3-5/䫬              = 205 =
  8650.  
  8651.                 TITLE   Example MASM Program ; φëଫ¼¼Ñ¡Γáα¿⌐ ó¬½ετáÑΓ-
  8652.                                              ; ß∩ ó ºáú«½«ó«¬
  8653.                 .286
  8654.         DataSize        = 128                ; αẼÑα íπΣÑα«ó óó«ñá-
  8655.                                              ; óδó«ñá
  8656.         dosint          MACRO intmun
  8657.                 mov     ah,intnum            ; »α¿ßó«¿Γ∞ ¡«¼Ñα FN AH
  8658.                 int     21h                  ; óδºóáΓ∞ Σπ¡¬µ¿ε DOS
  8659.                                              ; &INTNUM
  8660.         ENDM
  8661.  
  8662.         stk     SEGMENT STASK
  8663.                 db      100h    DUP (?)      ; ºáαѺÑαó¿α«óáΓ∞
  8664.                                              ; »α«ßΓαá¡ßΓó« ó ßΓѬÑ
  8665.         stk     ENDS
  8666.  
  8667.         data    SEGMENT WORD
  8668.         inbuf   db      bufsize DUP (?)      ; íπΣÑα óó«ñá
  8669.         outbuf  db      bufsize DUP (?)      ; íπΣÑα óδó«ñá
  8670.         data    ENDS
  8671.  
  8672.         DGROUP  GROUP   stk,data             ; ßúαπ»»¿α«óáΓ∞ ßÑú¼Ñ¡Γδ
  8673.                                              ; ßΓѬᠿ ñá¡¡δσ
  8674.  
  8675.         code    SEGMENT WORD
  8676.                 ASSUME  cs:code              ; »«½«ª¿¼, CS - φΓ«
  8677.                                              ; ßÑú¼Ñ¡Γ ¬«ñá
  8678.         start:
  8679.                 mov     ax,DGROUP            ; »α¿ßó«¿Γ∞ áñαÑß ßÑú¼Ñ¡Γá
  8680.                 mov     ds,ax                ; DGROUP DS
  8681.                 ASSUME  DS:DGROUP            ; »« π¼«½τá¡¿ε ßÑú¼Ñ¡Γ«¼
  8682.                                              ; ñá¡¡δσ íπñÑΓ DS
  8683.                 mov     dx,OFFSET DGROUP:inbuf ; ºáúαπº¿Γ∞ ó DX
  8684.                                              ; ß¼ÑΘÑ¡¿Ñ inbuf (íπΣÑα
  8685.                                              ; óó«ñá)
  8686.                 xor     bx,bx                ; ßΓá¡ñáαΓ¡δ⌐ óó«ñá
  8687.                 call    readline             ; ßτ¿ΓáΓ∞ «ñ¡π ßΓ᫬π
  8688.                 mov     bx,ax                ; »α¿ßó«¿Γ∞ BX ñ½¿¡π
  8689.                 mov     inbuf[bx],0          ; ñ«íáó¿Γ∞ ºáóÑαΦáεΘ¿⌐
  8690.                                              ; ¡π½Ñó«⌐ ß¿¼ó«½
  8691.                 push    ax                   ; ß«σαá¡¿Γ∞ αÑú¿ßΓα AX
  8692.                                              ; ó ßΓѬÑ
  8693.                 call    mungline             ; »αÑ«íαẫóáΓ∞ ßΓ᫬π
  8694.                                              ; ó óÑασ¡¿⌐ αÑú¿ßΓα
  8695.                 pop     cx                   ; ó«ßßΓá¡«ó¿Γ∞ ßτÑΓτ¿¬
  8696.                 mov     dx,OFFSET DGROUP:outbuf ; ºáúαπº¿Γ∞ ó AX
  8697.  
  8698.         TASM2 #3-5/䫬              = 206 =
  8699.  
  8700.                                              ; ß¼ÑΘÑ¡¿Ñ outbuf (íπΣÑα
  8701.                                              ; óδó«ñá)
  8702.                 mov     bx,1                 ; ßΓá¡ñáαΓ¡δ⌐ óδó«ñ
  8703.                 dosint  40h                  ; Σπ¡¬µ¿∩ ºá»¿ß¿ Σá⌐½á
  8704.                 dosint  4ch                  ; óδσ«ñ ó DOS
  8705.  
  8706.         ; æτ¿ΓáΓ∞ ßΓ᫬π (dx => íπΣÑα), ó«ºóαáΓ¿Γ∞ ó AX º¡áτÑ¡¿Ñ
  8707.         ; ßτÑΓτ¿¬á
  8708.         readline        PROC    near
  8709.                 mov     cx,bufsize           ; ºáñáΓ∞ αẼÑα íπΣÑαá
  8710.                 dosint  3fh                  ; Σπ¡¬µ¿∩ τΓÑ¡¿∩ Σá⌐½á
  8711.                 and     ax,ax                ; πßΓá¡«ó¿Γ∞ ñ½∩ ßτÑΓτ¿¬á
  8712.                                              ; Σ½áú ¡π½∩
  8713.                 ret                          ; ó«ºóαáΓ ó óδºδóáεΘπε
  8714.                                              ; »α«úαá¼¼π
  8715.         readline        ENDP
  8716.  
  8717.         ; ÅαÑ«íαẫóáΓ∞ ßΓ᫬π ó óÑασ¡¿⌐ αÑú¿ßΓα
  8718.         mungline        PROC NEAR
  8719.                 mov     si,OFFSET DGROUP:inbuf ; áñαÑßᵿ∩ ¬ inbuf
  8720.                                              ; τÑαѺ SI
  8721.                 mov     di,0                 ; ¿¡¿µ¿á½¿º¿α«óáΓ∞ DI
  8722.         @@loop:
  8723.                 cmp     BYTE PTR[si],0       ; ¬«¡Ñµ ΓѬßΓá?
  8724.                 je      @@done               ; Ñß½¿ ñá, Γ« »ÑαÑ⌐Γ¿
  8725.                                              ; ¡á @@done
  8726.                 mov     al,[si]              ; ¿¡áτÑ »«½πτ¿Γ∞ ß½ÑñπεΘ¿⌐
  8727.                                              ; ß¿¼ó«½
  8728.                 and     al,not 'a' - 'A'     ; »αÑ«íαẫóáΓ∞ ó óÑασ¡¿⌐
  8729.                                              ; αÑú¿ßΓα
  8730.                 mov     outbuf[di],al        ; ºá»¿ßáΓ∞ ó íπΣÑα óδó«ñá
  8731.                 inc     si                   ; ½πτΦÑ ¿ß»«½∞º«óáΓ∞ lodsb,
  8732.                                              ; stosb ...
  8733.                 inc     di                   ; φΓ« »α«ßΓ« »α¿¼Ñα!
  8734.                 jmp     @@loop               ; »α«ñ«½ª¿Γ∞ »αÑ«íαẫóá¡¿Ñ
  8735.                                              ; ΓѬßΓá
  8736.         @@done: ret
  8737.         mungline        ENDP                 ; ¬«¡Ñµ »α«µÑñπαδ
  8738.         code    ENDS                         ; ¬«¡Ñµ ßÑú¼Ñ¡Γá
  8739.                 END     start                ; ¬«¡Ñµ ΓѬßΓá ¿ Γ«τ¬á
  8740.                                              ; óσ«ñá DOS
  8741.                          Åα¿¼Ñα »α«úαá¼¼δ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ                  
  8742.         -----------------------------------------------------------------
  8743.  
  8744.         ; öá⌐½ <masexmpl.asm>
  8745.  
  8746.         TASM2 #3-5/䫬              = 207 =
  8747.  
  8748.         ; Åα¿¼Ñα »α«úαá¼¼δ »αÑ«íαẫóá¡¿∩ ßΓ᫬¿ ó »α«»¿ß¡δÑ íπ¬óδ
  8749.         ; ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  8750.                 IDEAL                                                ; #1
  8751.                 #TITLE   Example MASM Program "»α¿¼Ñα αѪ¿¼Ñ IDEAL"  ; #2
  8752.                                                π½πτΦÑ¡¡«¼ αѪ¿¼Ñ
  8753.                 P286N                                                ; #3
  8754.         BufSize        = 128
  8755.  
  8756.         MACRO   dosint  intmun                                       ; #4
  8757.                 mov     ah,intnum
  8758.                 int     21h
  8759.         ENDM
  8760.  
  8761.         SEGMENT stk     STASK                                        ; #5
  8762.                 db      100h    DUP (?)
  8763.         ENDS                                                         ; #6
  8764.  
  8765.         SEGMENT DATA    WORD                                         ; #7
  8766.         inbuf   db      bufsize DUP (?)
  8767.         outbuf  db      bufsize DUP (?)
  8768.         ENDS    DATA                                                 ; #8
  8769.  
  8770.         GROUP   DGROUP  stk,data                                     ; #9
  8771.  
  8772.         SEGMENT CODE    WORD                                        ; #10
  8773.                 ASSUME  cs:code
  8774.         start:
  8775.                 mov     ax,DGROUP
  8776.                 mov     ds,ax
  8777.                 ASSUME  DS:DGROUP
  8778.                 mov     dx,OFFSET inbuf                             ; #11
  8779.                 xor     bx,bx
  8780.                 call    readline
  8781.                 mov     bx,ax
  8782.                 mov     [inbuf + bx],0                              ; #12
  8783.                 push    ax
  8784.                 call    mungline
  8785.                 pop     cx
  8786.                 mov     dx,OFFSET outbuf                            ; #13
  8787.                 mov     bx,1
  8788.                 dosint  40h
  8789.                 dosint  4ch
  8790.  
  8791.         ; æτ¿ΓáΓ∞ ßΓ᫬π (dx => íπΣÑα), ó«ºóαáΓ¿Γ∞ ó AX º¡áτÑ¡¿Ñ
  8792.         ; ßτÑΓτ¿¬á
  8793.         PROC    readline   near                                     ; #14
  8794.  
  8795.         TASM2 #3-5/䫬              = 208 =
  8796.  
  8797.                 mov     cx,bufsize
  8798.                 dosint  3fh
  8799.                 and     ax,ax
  8800.                 ret
  8801.         ENDP                                                        ; #15
  8802.  
  8803.         ; ÅαÑ«íαẫóáΓ∞ ßΓ᫬π ó óÑασ¡¿⌐ αÑú¿ßΓα
  8804.         PROC    mungline   NEAR                                     ; #16
  8805.                 mov     si,OFFSET inbuf                             ; #17
  8806.                 mov     di,0
  8807.         @@loop:
  8808.                 cmp     [BYTE si],0                                 ; #18
  8809.                 je      @@done
  8810.                 mov     al,[si]
  8811.                 and     al,not 'a' - 'A'
  8812.                 mov     [outbuf + di],al                            ; #19
  8813.                 inc     si
  8814.                 inc     di
  8815.  
  8816.         ; LODSB/STOSB
  8817.                 jmp     @@loop
  8818.         @@done: ret
  8819.         ENDP    mungline                                            ; #20
  8820.         ENDS                                                        ; #21
  8821.                 END     start
  8822.  
  8823.                         Ç¡á½¿º αѪ¿¼á MASM ¿ π½πτΦÑ¡¡«ú« αѪ¿¼á                
  8824.         -----------------------------------------------------------------
  8825.  
  8826.              äá½ÑÑ »«ñα«í¡« «»¿ßδóáεΓß∩ αẽ¿τ¿∩ ¼Ñªñ𠬫¡ßΓαπ¬µ¿∩¼¿, ñ¿-
  8827.         αÑ¬Γ¿óἿ  ¿  «»Ñαá¡ñἿ  αѪ¿¼á MASM ¿ π½πτΦÑ¡¡«ú« αѪ¿¼á ó ñóπσ
  8828.         »αÑñδñπΘ¿σ »α«úαá¼¼áσ.  ì«¼Ñαá «Γ¡«ß∩Γß∩ ¬ ¬«¼¼Ñ¡Γáα¿∩¼ »α«úαá¼¼δ
  8829.         ñ½∩ π½πτΦÑ¡¡«ú« αѪ¿¼á. æαáó¡¿ΓÑ «Γ¼ÑτÑ¡¡δÑ ¬«¼¼Ñ¡Γáα¿∩¼¿ ßΓ᫬á-
  8830.         ¼¿ ß αѪ¿¼«¼ MASM.
  8831.  
  8832.              1. êß»«½∞ºπ⌐ΓÑ ñ½∩ »ÑαÑσ«ñá  ó  π½πτΦÑ¡¡δ⌐  αѪ¿¼  ñ¿αÑ¬Γ¿óπ
  8833.                 IDEAL.  Å«  π¼«½τá¡¿ε Æπαí« ÇßßѼí½Ñα óßÑúñá ¡áτ¿¡áÑΓ áß-
  8834.                 ßÑ¼í½¿α«óá¡¿Ñ ¿ßσ«ñ¡«ú« Σá⌐½á ó αѪ¿¼Ñ MASM. éá¼ ΓαÑíπÑΓ-
  8835.                 ß∩ π¬áºδóáΓ∞ ñ¿αÑ¬Γ¿óπ MASM Γ«½∞¬« ó Γ«¼ ß½πτáÑ, ¬«úñá óδ
  8836.                 σ«Γ¿ΓÑ »ÑαѬ½ετ¿Γ∞ß∩ «íαáΓ¡« ó αѪ¿¼ MASM,  »ÑαÑ⌐ñ∩ αá¡ÑÑ
  8837.                 ó π½πτΦÑ¡¡δ⌐ αѪ¿¼.
  8838.  
  8839.              2. ç¡á¬ »α«µÑ¡Γá ó ñ¿αÑ¬Γ¿óÑ %TITLE ¡á»«¼¿¡áÑΓ óá¼,  τΓ« φΓá
  8840.                 ñ¿αÑ¬Γ¿óá ó½¿∩ÑΓ ¡á Σá⌐½ ½¿ßΓ¿¡úá (Ñß½¿ óδ αÑΦ¿½¿ ß«ºñáΓ∞
  8841.                 Ñú«,  π¬áºáó  ¿¼∩ Σá⌐½á ½¿ßΓ¿¡úá ¿½¿ ¿ß»«½∞º«óáó »áαá¼ÑΓα
  8842.  
  8843.         TASM2 #3-5/䫬              = 209 =
  8844.  
  8845.                 ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ /L  »α¿  áßßÑ¼í½¿α«óá¡¿¿  »α«úαá¼¼δ).  é
  8846.                 π½πτΦÑ¡¡«¼  αѪ¿¼Ñ  ¿ß»«½∞ºπÑΓß∩  ñ¿αÑ¬Γ¿óá %TITLE,  á ¡Ñ
  8847.                 TITLE (íѺ º¡á¬á »α«µÑ¡Γá), ¿ ¬α«¼Ñ Γ«ú« ßΓ᫬π ºáú«½«ó¬á
  8848.                 ΓαÑíπÑΓß∩  ºá¬½ετáΓ∞  ó  ¬áóδτ¬¿ ("").  ¥Γ« »«ºó«½∩ÑΓ óá¼
  8849.                 π¬áºáΓ∞ ¡á ñá¡¡«⌐ ßΓα«¬Ñ ¬«¼¼Ñ¡Γáα¿⌐,  ¬«Γ«αδ⌐  ó  αѪ¿¼Ñ
  8850.                 MASM ßΓá½ íδ τáßΓ∞ε ºáú«½«ó¬á.
  8851.  
  8852.              3. ä¿αÑ¬Γ¿óá  .286 αѪ¿¼á MASM ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ »α¿¡¿¼áÑΓ
  8853.                 ó¿ñ P286N.  Æá¬ ¬á¬ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ¡Ñ
  8854.                 ¼«úπΓ  ¡áτ¿¡áΓ∞ß∩ ß Γ«τ¬¿,  óßÑ ñ¿αÑ¬Γ¿óδ ¡áº¡áτÑ¡¿∩ »α«-
  8855.                 µÑßß«αá MASM ¿ ñαπú¿Ñ ñ¿αÑ¬Γ¿óδ,  ¡áτ¿¡áεΘ¿Ñß∩  ß  Γ«τ¬¿,
  8856.                 ¿º¼Ñ¡Ñ¡δ.  ¥Γ«Γ «»ÑαáΓ«α ó ½¿ßΓ¿¡úÑ ¡Ñ ¡ÑßÑΓ ¡¿¬á¬«ú« »«-
  8857.                 ½Ñº¡«ú« ß¼δß½á, «¡ ß½πª¿Γ Γ«½∞¬« ñ½∩ Γ«ú«, τΓ«íδ »«¬áºáΓ∞
  8858.                 αẽ¿τ¿∩ ¼Ñªñπ αѪ¿¼«¼ MASM ¿ π½πτΦÑ¡¡δ¼ αѪ¿¼«¼.  é ñá¡-
  8859.                 ¡«⌐ »α«úαἼѠ¿¡ßΓαπ¬µ¿¿ »α«µÑßß«αá 80286 ¡Ñ  ¿ß»«½∞ºπεΓ-
  8860.                 ß∩.
  8861.  
  8862.              4. é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¿¼∩ ¼á¬α«¬«¼á¡ñδ ß½ÑñπÑΓ »«ß½Ñ ñ¿αѬ-
  8863.                 Γ¿óδ MACRO, á ¡Ñ »ÑαÑñ ¡Ñ⌐, ¬á¬ ó αѪ¿¼Ñ MASM.
  8864.  
  8865.              5. ê¼∩ ßÑú¼Ñ¡Γá ó ñ¿αÑ¬Γ¿óÑ SEGMENT ß½ÑñπÑΓ ó π½πτΦÑ¡¡«¼ αÑ-
  8866.                 ª¿¼Ñ ºá ñ¿αÑ¬Γ¿ó«⌐.
  8867.  
  8868.              6. é  π½πτΦÑ¡¡«¼  αѪ¿¼Ñ »α¿ ¿ß»«½∞º«óá¡¿¿ ñ½∩ ºá¬αδΓ¿∩ ßÑú-
  8869.                 ¼Ñ¡Γá ENDS óá¼ ¡Ñ  ¡πª¡«  π¬áºδóáΓ∞  ß««ΓóÑΓßΓóπεΘÑÑ  ¿¼∩
  8870.                 ßÑú¼Ñ¡Γá,  ¬á¬ φΓ« ΓαÑí«óὫß∞ ó αѪ¿¼Ñ MASM. àß½¿ óδ σ«-
  8871.                 Γ¿ΓÑ, ¿¼∩ ¼«ª¡« πñ὿Γ∞ (DATA).
  8872.  
  8873.              7. Æ« ªÑ, τΓ« ¿ ó 5. ÅÑαÑñ ¿¼Ñ¡Ñ¼ ΓᬪѠπ¬áºδóáÑΓß∩ ¬½ετÑó«Ñ
  8874.                 ß½«ó« SEGMENT.
  8875.  
  8876.              8. àß½¿  óδ  π¬áºδóáÑΓÑ ó ñ¿αÑ¬Γ¿óÑ ENDS ß««ΓóÑΓßΓóπεΘÑÑ ¿¼∩
  8877.                 ßÑú¼Ñ¡Γá,  Γ« φΓ« ¿¼∩ ß½ÑñπÑΓ »«ß½Ñ ñ¿αÑ¬Γ¿óδ, á ¡Ñ »ÑαÑñ
  8878.                 ¡Ñ⌐, ¬á¬ ó αѪ¿¼Ñ MASM.
  8879.  
  8880.              9. é  π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ñ¿αÑ¬Γ¿óá GROUP »αÑñΦÑßΓóπÑΓ ¿¼Ñ¡¿ ó
  8881.                 úαπ»»Ñ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ (DGROUP).  äá½ÑÑ  ß½ÑñπÑΓ  ß»¿ß«¬
  8882.                 ßÑú¼Ñ¡Γ«ó ñá¡¡δσ,  ¬«Γ«αδÑ óδ «íΩÑñ¿¡∩ÑΓÑ »«ñ ñá¡¡δ¼ ¿¼Ñ-
  8883.                 ¡Ñ¼. é MASM GROUP ¿ ¿¼∩ ºáαѺÑαó¿α«óá¡δ.
  8884.  
  8885.             10. Ç¡á½«ú¿τ¡« »π¡¬Γπ 5.  è½ετÑó«Ñ ß½«ó« SEGMENT »αÑñΦÑßΓóπÑΓ
  8886.                 ¿¼Ñ¡¿.
  8887.  
  8888.             11. çñÑß∞  ó «»Ñαᵿ¿ OFFSET ¡Ñ ¡πª¡« ¿ß»«½∞º«óáΓ∞ ¬óá½¿Σ¿¬á-
  8889.                 Γ«α úαπ»»δ.  é π½πτΦÑ¡¡«¼  αѪ¿¼Ñ  INBUF  αáßß¼áΓα¿óáÑΓß∩
  8890.                 «Γ¡«ß¿Γѽ∞¡« ¡áτá½á DGROUP, Γᬠ¬á¬ INBUF ¡áσ«ñ¿Γß∩ ó «ñ-
  8891.  
  8892.         TASM2 #3-5/䫬              = 210 =
  8893.  
  8894.                 ¡«¼ ¿º ßÑú¼Ñ¡Γ«ó,  «íΩÑñ¿¡Ñ¡¡δσ »«ñ ñá¡¡δ¼ ¿¼Ñ¡Ñ¼ úαπ»»δ.
  8895.                 é MASM,  τΓ«íδ ¬«ααÑ¬Γ¡« «»αÑñѽ¿Γ∞ ß¼ÑΘÑ¡¿∩ »ÑαѼѡ¡δσ ó
  8896.                 ßÑú¼Ñ¡Γáσ úαπ»»δ,  óá¼ ¡πª¡« í佫 ¡Ñ  ºáíδóáΓ∞  π¬áºδóáΓ∞
  8897.                 DGROUP:inbuf.
  8898.  
  8899.             12. Ä»Ñαá¡ñ [INBUF+BX] ñ«»πßΓ¿¼ ó «í«¿σ αѪ¿¼áσ, «ñ¡á¬« ßΓα«-
  8900.                 ¬π INBUF[BX] αѪ¿¼á MASM ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ¿ß»«½∞º«óáΓ∞
  8901.                 ¡Ñ ñ«»π߬áÑΓß∩.  é φΓ«¼ αѪ¿¼Ñ óßÑ «»Ñαá¡ñδ ß« ßß佬«⌐ ¡á
  8902.                 »á¼∩Γ∞ ñ«½ª¡δ ºá¬½ετáΓ∞ß∩ ó ¬óáñαáΓ¡δѠ߬«í¬¿.
  8903.  
  8904.             13. Ç¡á½«ú¿τ¡« »π¡¬Γπ 11.  çñÑß∞ óá¼ ΓᬪѠ¡Ñ ¡πª¡«  ºáñáóáΓ∞
  8905.                 ¿¼∩  úαπ»»δ,  τΓ«íδ ºáαѺÑαó¿α«óáΓ∞ »ÑαѼѡ¡πε ó ßÑú¼Ñ¡ΓÑ
  8906.                 úαπ»»δ.  é  MASM,  τΓ«íδ  »«½πτ¿Γ∞  ¬«ααÑ¬Γ¡«Ñ   ß¼ÑΘÑ¡¿Ñ
  8907.                 OUTBUF, ¡πª¡« í佫 ºá»¿ßδóáΓ∞: DGROUP:outbuf. àß½¿ ºáíδΓ∞
  8908.                 « ¬óá½¿Σ¿¬áΓ«αÑ DGROUP, Γ« ó »α¿¼ÑαÑ óδó«ñ íδ½ íδ ºá»¿ßá¡
  8909.                 ó ßΓѬ,  »α¿ φΓ«¼ MASM ¡Ñ óδñá½ íδ ¡¿¬á¬¿σ »αÑñπ»αѪñÑ¡¿⌐
  8910.                 « ¡Ñ»αáó¿½∞¡«⌐ αáí«ΓÑ.
  8911.  
  8912.             14. ê¼∩ »α«µÑñπαδ ó ñ¿αÑ¬Γ¿óÑ PROC ß½ÑñπÑΓ »«ß½Ñ ñ¿αÑ¬Γ¿óδ, á
  8913.                 ¡Ñ »ÑαÑñ ¡Ñ⌐, ¬á¬ ó αѪ¿¼Ñ MASM.
  8914.  
  8915.             15. è«úñá óδ ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ ñ½∩ ºáóÑαΦÑ¡¿∩ »α«µÑñπαδ ¿ß-
  8916.                 »«½∞ºπÑΓÑ ENDP,  óá¼ ¡Ñ ¡πª¡« π¬áºδóáΓ∞ ¿¼∩ ß««ΓóÑΓßΓóπε-
  8917.                 ΘÑ⌐ »α«µÑñπαδ, ¬á¬ φΓ« ¡πª¡« í佫 ñѽáΓ∞ ó αѪ¿¼Ñ MASM.
  8918.  
  8919.             16. Ç¡á½«ú¿τ¡«  »π¡¬Γπ 14.  ä¿αÑ¬Γ¿óá PROC »αÑñΦÑßΓóπÑΓ ¿¼Ñ¡¿
  8920.                 »α«µÑñπαδ.
  8921.  
  8922.             17. Ç¡á½«ú¿τ¡« »π¡¬Γπ 11. çñÑß∞ óá¼ ΓᬪѠ¡Ñ ¡πª¡« ºá»¿ßδóáΓ∞
  8923.                 DGROUP:inbuf, ¬á¬ ó MASM.
  8924.  
  8925.             18. é  π½πτΦÑ¡¡«¼  αѪ¿¼Ñ  »α¿ πßΓá¡«ó¬Ñ αẼÑαá óδαáªÑ¡¿∩ óδ
  8926.                 ¼«ªÑΓÑ «»π߬áΓ∞ o»Ñαᵿε PTR.  éδαáªÑ¡¿Ñ αѪ¿¼á MASM BYTE
  8927.                 PTR ABC ¿ñÑ¡Γ¿τ¡« óδαáªÑ¡¿ε BYTE ABC ó π½πτΦÑ¡¡«¼ αѪ¿¼Ñ.
  8928.  
  8929.             19. Ç¡á½«ú¿τ¡«  »π¡¬Γπ 12.  é π½πτΦÑ¡¡«¼ αѪ¿¼Ñ »α¿ ßßδ½¬Ñ ¡á
  8930.                 ß«ñÑন¼«Ñ »á¼∩Γ¿ ¡πª¡« óßÑúñᠺᬽετáΓ∞  ΓᬫѠóδαáªÑ¡¿Ñ
  8931.                 ó ¬óáñαáΓ¡δѠ߬«í¬¿.
  8932.  
  8933.             20. ê¼∩  »α«µÑñπαδ  ¼«ª¡« (¡Ñ«í∩ºáΓѽ∞¡«) π¬áºδóáΓ∞ »«ß½Ñ ñ¿-
  8934.                 αÑ¬Γ¿óδ ENDP, á ¡Ñ »ÑαÑñ ¡Ñ⌐, ¬á¬ ó αѪ¿¼Ñ MASM.
  8935.  
  8936.             21. Ç¡á½«ú¿τ¡« »π¡¬Γπ 6. é ñ¿αÑ¬Γ¿óÑ ENDS ¡Ñ ΓαÑíπÑΓß∩ π¬áºδ-
  8937.                 óáΓ∞  ¿¼∩ ß««ΓóÑΓßΓóπεΘÑú« ßÑú¼Ñ¡Γá,  σ«Γ∩ »α¿ ªÑ½á¡¿¿ óδ
  8938.                 ¼«ªÑΓÑ ñ«íáó¿Γ∞ φΓ« ¿¼∩.
  8939.  
  8940.  
  8941.         TASM2 #3-5/䫬              = 211 =
  8942.  
  8943.                                       ï¿ΓÑαáΓπαá                               
  8944.         -----------------------------------------------------------------
  8945.  
  8946.         CrawWord, John H.,  Patrick P.  Gelsinger. Programming the 80386.
  8947.         Alamedis:  Sybex, Inc., 1987. (è¡¿úá »« »α«úαá¼¼¿α«óá¡¿ε ñ½∩ »α«-
  8948.         µÑßß«αá 80386).
  8949.  
  8950.         Duncan, Ray.  Advanced MS-DOS.  Redmond:  Microsoft Press,  1986.
  8951.         (Éáºó¿Γ«Ñ »α«úαá¼¼¿α«óá¡¿Ñ ñ½∩ MS-DOS).
  8952.  
  8953.         Lafore, Robert. Assembly Language Primer for the IBM PC & XT, New
  8954.         York:  The Waite Group,  1984.  (ôτÑí¡¿¬ »« ∩ºδ¬π ÇßßѼí½Ñαá  ñ½∩
  8955.         ¬«¼»∞εΓÑα«ó IBM PC ¿ XT).
  8956.  
  8957.         Murray, William H.,  Chris Pappas.  80386/80286 Assembly Language
  8958.         Programming. Berkeley: Osborne/McGraw-Hill, 1986. (Éπ¬«ó«ñßΓó« »«
  8959.         »α«úαá¼¼¿α«óá¡¿ε    ¡á    ∩ºδ¬Ñ    ÇßßѼí½Ñαá   ñ½∩   »α«µÑßß«α«ó
  8960.         80286/80386).
  8961.  
  8962.         Norton, Peter,  John Socha. Peter Norton's Assembly Lánguage Book
  8963.         for the IBM PC.  New York: Brady Communications, 1986. (Éπ¬«ó«ñß-
  8964.         Γóá ì«αΓ«¡á »« »α«úαá¼¼¿α«óá¡¿ε ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá).
  8965.  
  8966.         Rector, Russel,  George   Alexy,   The   8086   Book.   Berkeley:
  8967.         Osborne/McGraw-Hill, 1980. (Éπ¬«ó«ñßΓó« »« »α«µÑßß«απ 8086).
  8968.  
  8969.         Sargent, Thomas   P.   An   Introduction   to  Assembly  Language
  8970.         Programming for the 8086 Family.  New York:  John Willey &  Sons,
  8971.         Inc.,  1985.  (éóÑñÑ¡¿Ñ  ó  ∩ºδ¬ ÇßßѼí½Ñαá ñ½∩ »α«µÑßß«α«ó ßÑα¿¿
  8972.         8086).
  8973.  
  8974.         Turley, James L. Advanced 80386 Programming Techniques. Berkeley:
  8975.         Osborne/McGraw Hill,  1988.  (Éáºó¿ΓδÑ ¼ÑΓ«ñδ »α«úαá¼¼¿α«óá¡¿∩ ¡á
  8976.         ÇßßѼí½ÑαÑ ñ½∩ »α«µÑßß«αá 80386).
  8977.  
  8978.         Wilton, Richard. Programmer's Guide to PC and PS/2 Video Systems.
  8979.         Redmond:  Microsoft Press, 1987. (Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá »« ó¿-
  8980.         ñѫ߿ßΓѼἠ¬«¼»∞εΓÑα«ó PC ¿ PS/2).
  8981.  
  8982.  
  8983.  
  8984.  
  8985.         TASM2 #3-5/䫬              = 212 =
  8986.  
  8987.                Åα¿½«ªÑ¡¿Ñ A. ê¡ΓÑαΣÑ⌐ß Æπαí« ÇßßѼí½Ñαá ¿ Æπαí« üÑ⌐ß¿¬á        
  8988.         -----------------------------------------------------------------
  8989.  
  8990.              Åα«úαá¼¼¿ßΓá¼, αáí«ΓáεΘ¿¼ ß Æπαí« üÑ⌐ß¿¬«¼, º¡áτ¿Γѽ∞¡«  «í-
  8991.         ½ÑúτáÑΓ  ª¿º¡∞  ß«ó¼ÑßΓ¿¼«ßΓ∞  (ß¡¿ºπ  óóÑασ)  Æπαí« ÇßßѼí½Ñαá ß
  8992.         îá¬α«áßßѼí½Ñα«¼  Σ¿α¼δ Microsoft. é ñá¡¡«⌐ ú½áóÑ ¼δ »α¿óÑñѼ ¡Ñ-
  8993.         ¬«Γ«αδÑ »α¿¼Ñαδ (¬á¬ ß«ñÑαªáΘ¿Ñß∩ ó απ¬«ó«ñßΓóÑ »« Æπαí« üÑ⌐ß¿¬π,
  8994.         Γᬠ¿ ñαπú¿Ñ) ¿ »«¬áªÑ¼, ¬á¬ Æπαí« ÇßßѼí½Ñα ¼«ªÑΓ αáßΦ¿α¿Γ∞ ßó«¿
  8995.         ó«º¼«ª¡«ßΓ¿ ß »«¼«Θ∞ε Æπαí« üÑ⌐ß¿¬á.
  8996.  
  8997.                    Åα¿¼Ñτá¡¿Ñ: è«úñá ¼δ ú«ó«α¿¼ « Æπαí« üÑ⌐ß¿¬Ñ, φΓ«  «º-
  8998.               ¡áτáÑΓ, τΓ« αÑτ∞ ¿ñÑΓ « óÑαß¿¿ 1.0 ¿ óδΦÑ.
  8999.  
  9000.              é Æπαí« üÑ⌐ß¿¬Ñ »αÑñπß¼«ΓαÑ¡« Γα¿ ß»«ß«íá ó맮óá »«ñ»α«úαá¼-
  9001.         ¼δ ¡á ÇßßѼí½ÑαÑ:
  9002.  
  9003.              1.  ä½∩ ó맮óá »α«µÑñπαδ, ß«ñÑαªáΘÑ⌐ óßΓα«Ñ¡¡δ⌐ ¬«ñ, óδ  ¼«-
  9004.                  ªÑΓÑ ¿ß»«½∞º«óáΓ∞ «»ÑαáΓ«α CALL.
  9005.  
  9006.              2.  ä½∩ ¬«¡¬αÑΓ¡«⌐ áñαÑßᵿ¿ ¬ »á¼∩Γ¿ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ óδ-
  9007.                  º«ó CALL ABSOLUTE:.
  9008.  
  9009.              3.  ä½∩ «íαáí«Γ¬¿ »αÑαδóá¡¿∩ »α«µÑßß«αá ¿ »ÑαÑσ«ñá  ¡á  »«ñ-
  9010.                  »α«úαá¼¼δ  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  ó맮ó  CALL  INTERRUPT ¿
  9011.                  óßΓα«Ñ¡¡πε »«ññÑ᪬π Æπαí« üÑ⌐ß¿¬á.
  9012.  
  9013.              Åα¿ óδí«αÑ Γ«ú« ¿½¿ ¿¡«ú« ¼ÑΓ«ñá ¡πª¡« «íÑß»Ñτ¿Γ∞ ß«σαá¡Ñ¡¿Ñ
  9014.         «»αÑñѽѡ¡δσ  αÑú¿ßΓα«ó. é맮ó CALL INTERRUPT «Γ½¿τáÑΓß∩ ¡á¿¼Ñ¡∞-
  9015.         ΦÑ⌐ ΓαÑí«óáΓѽ∞¡«ßΓ∞ε ó φΓ«¼ »½á¡Ñ: ¡πª¡« «íÑß»Ñτ¿óáΓ∞ ß«σαá¡Ñ¡¿Ñ
  9016.         Γ«½∞¬«  αÑú¿ßΓα«ó  SS (ßÑú¼Ñ¡Γ ßΓѬá) ¿ SP (π¬áºáΓѽ∞ ßΓѬá). Åα¿
  9017.         ¿ß»«½∞º«óá¡¿¿ ñαπú¿σ ñóπσ ¼ÑΓ«ñ«ó ¡πª¡« ß«σαá¡∩Γ∞ ΓᬪѠ αÑú¿ßΓαδ
  9018.         DS (ßÑú¼Ñ¡Γ ñá¡¡δσ) ¿ BP (π¬áºáΓѽ∞ íáºδ).
  9019.  
  9020.              æ«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó  (ºñÑß∞  ¿ ó »αÑñδñπΘѼ  ΓѬßΓÑ  ΓÑନ¡
  9021.         "ß«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó" «º¡áτáÑΓ ¡á ßἫ¼ ñѽѠ"ß«σαá¡Ñ¡¿Ñ αÑú¿ßΓ-
  9022.         α«ó »ÑαÑñ óδº«ó«¼ («íδτ¡« ó ßΓѬÑ) ¿ ó«ßßΓá¡«ó½Ñ¡¿Ñ ¿σ ß«ñÑন¼«-
  9023.         ú«  »«ß½Ñ  ó맮óá  »«ñ»α«úαá¼¼δ ¿½¿ »α¿ ÑÑ ºáóÑαΦÑ¡¿¿") ¡Ñ «í∩ºá-
  9024.         Γѽ∞¡« «º¡áτáÑΓ, τΓ« óδ ñ«½ª¡δ ºá¡«ß¿Γ∞ óßÑ αÑú¿ßΓαδ ó ßΓѬ, σ«Γ∩
  9025.         φΓ«  ¡á¿í«½ÑÑ  «íΘÑ»α¿¡∩Γδ⌐ ß»«ß«í «íÑß»ÑτÑ¡¿∩ ß«σαá¡¡«ßΓ¿ ¿σ ß«-
  9026.         ñÑন¼«ú«. Åα«ßΓδÑ »«ñ»α«úαá¼¼δ ¼«úπΓ ¡Ñ ¿º¼Ñ¡∩Γ∞ ¡¿¬á¬¿σ αÑú¿ßΓ-
  9027.         α«ó. é φΓ«¼ ß½πτáÑ ¡Ñ ¡πª¡« »α¿¡¿¼áΓ∞ ¡¿¬á¬¿σ ¼Ñα »αÑñ«ßë᫪¡«ß-
  9028.         Γ¿.
  9029.  
  9030.              îδ ú«ó«α¿¼ "¼«úπΓ" »«Γ«¼π τΓ« ½πτΦÑ ¡Ñ ñѽáΓ∞ ¡¿¬á¬¿σ  »αÑñ-
  9031.         »«½«ªÑ¡¿⌐,  «ß«íÑ¡¡«  ¬«úñá ñѽ« ¬áßáÑΓß∩ »α«úαá¼¼¿α«óá¡¿∩ ¡á Çß-
  9032.         ßѼí½ÑαÑ. ò«Γ∩ ó óáΦѼ απ¬«ó«ñßΓóÑ  »«  MS-DOS  ¼«ªÑΓ  ß»Ñµ¿á½∞¡«
  9033.  
  9034.         TASM2 #3-5/䫬              = 213 =
  9035.  
  9036.         «ú«óáα¿óáΓ∞ß∩,  τΓ« ¬«¡¬αÑΓ¡«Ñ »αÑαδóá¡¿Ñ ¡Ñ ¿º¼Ñ¡∩ÑΓ ß«ñÑন¼«ú«
  9037.         π¬áºáΓѽ∩ ßΓѬᠿ½¿ π¬áºáΓѽ∩ íáºδ (¿½¿ ½εí«ú« ñαπú«ú« αÑú¿ßΓαá),
  9038.         φΓ« ¡Ñ óßÑúñá ¼«ªÑΓ ¿¼ÑΓ∞ ¼ÑßΓ«. MS-DOS ñѽáÑΓ ΓᬿѠ¿º¼Ñ¡Ñ¡¿∩, ¿
  9039.         ¡Ñ¬«Γ«αδÑ ß«τÑΓá¡¿∩ »αÑαδóá¡¿⌐ »α«Γ¿ó«αÑτáΓ ¿¡Σ«α¼áµ¿¿,  »α¿ó«ñ¿-
  9040.         ¼«⌐ ó απ¬«ó«ñßΓóÑ »« DOS. Å«φΓ«¼π ½πτΦÑ »αÑñ«σαá¡¿Γ∞ ßÑí∩ «Γ ó«º-
  9041.         ¼«ª¡δσ ¡Ñ»α¿∩Γ¡«ßΓÑ⌐. æ«σαá¡Ñ¡¿Ñ ¡Ñ«íσ«ñ¿¼δσ αÑú¿ßΓα«ó ¡Ñ πσπñΦ¿Γ
  9042.         ßπΘÑßΓóÑ¡¡« »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿ »α«úαá¼¼δ. Åα¿ φΓ«¼ óδ ¼Ñ¡∞ΦÑ α¿ß-
  9043.         ¬πÑΓÑ ¿ ¬α«¼Ñ Γ«ú« π½πτΦ¿ΓÑ »ÑαÑ¡«ß¿¼«ßΓ∞ óáΦÑ⌐ »α«úαá¼¼δ ¡á  ¡«-
  9044.         óδÑ óÑαß¿¿ MS-DOS.
  9045.  
  9046.                                   ÅÑαÑñáτá »áαá¼ÑΓα«ó                          
  9047.         -----------------------------------------------------------------
  9048.  
  9049.              Æπαí« üÑ⌐ß¿¬ »ÑαÑñáÑΓ »áαá¼ÑΓαδ »«ñ»α«úαἼἠ¡á  ÇßßѼí½ÑαÑ
  9050.         ó  ßΓѬÑ.  éßÑ  ΓᬿѠó맮óδ ¿¼ÑεΓ ñá½∞¡¿⌐ Γ¿» (FAR): »«ß½Ññ¡¿Ñ 4
  9051.         íá⌐Γá ó ßΓѬѠ»αÑñßΓáó½∩εΓ  ß«í«⌐  áñαÑß  ó«ºóαáΓá,  ¿ß»«½∞ºπѼδ⌐
  9052.         Æπαí« üÑ⌐ß¿¬«¼ »α¿ ºáóÑαΦÑ¡¿¿ αáí«Γδ »«ñ»α«úαá¼¼δ. ÇñαÑß«¼ »Ñαó«-
  9053.         ú« »ÑαÑñáóáѼ«ú« »«ñ»α«úαἼѠ»áαá¼ÑΓαá íπñÑΓ [SP+4]. ä½∩ ¬áªñ«ú«
  9054.         ºá¡«ß¿¼«ú«  ó  ßΓѬ αÑú¿ßΓαá ¬ φΓ«¼π º¡áτÑ¡¿ε ¡πª¡« ñ«íáó¿Γ∞ ñóá.
  9055.         Å«¼¡¿ΓÑ « Γ«¼, τΓ« ßΓѬ πóѽ¿τ¿óáÑΓß∩ ó ßΓ«α«¡π  ¼½áñΦ¿σ  áñαÑß«ó
  9056.         (󡿺).
  9057.  
  9058.              ïεíá∩ »α«ßΓá∩ »ÑαѼѡ¡á∩ («Γ½¿τ¡á∩ «Γ ¼áßß¿óá), »ÑαÑñáóáѼá∩
  9059.         ó ßΓѬÑ, »α¿óÑñÑΓ ¬ πóѽ¿τÑ¡¿ε ßΓѬᠡá 4 íá⌐Γá. Æπαí« üÑ⌐ß¿¬ »Ñ-
  9060.         αÑñáÑΓ ¬á¬ ßÑú¼Ñ¡Γ (2 íá⌐Γá), Γᬠ¿ ß¼ÑΘÑ¡¿Ñ (2 íá⌐Γá) Γá¬¿σ  »Ñ-
  9061.         αѼѡ¡δσ. èᬠóδ πó¿ñ¿ΓÑ ñá½ÑÑ, φΓ« ñáÑΓ ó᪡δÑ »αÑ¿¼πΘÑßΓóá.
  9062.  
  9063.              Åáαá¼ÑΓαδ, »ÑαÑñáóáѼδÑ »« º¡áτÑ¡¿ε (ΓᬿѠ¬á¬  ¬«¡ßΓá¡Γδ  ¿
  9064.         óδαáªÑ¡¿∩),  ΓᬪѠºá¡¿¼áεΓ ó ßΓѬѠ4 íá⌐Γá. é φΓ«¼ ß½πτáÑ º¡áτÑ-
  9065.         ¡¿Ñ ó ßΓѬѠ¡Ñ ∩ó½∩ÑΓß∩ º¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩: φΓ« áñαÑß Γ«⌐ ∩τÑ⌐¬¿
  9066.         ó  »á¼∩Γ¿,  úñÑ º¡áτÑ¡¿Ñ σαá¡¿Γß∩. ¥Γ« ¼«ªÑΓ »«¬áºáΓ∞ß∩ πß½«ª¡Ñ¡-
  9067.         ¡δ¼, ¡« ñáÑΓ ñóá ßπΘÑßΓóÑ¡¡δσ »αÑ¿¼πΘÑßΓóá. é«-»Ñαóδσ,  óßÑ  »«ñ-
  9068.         »α«úαá¼¼δ  ¡á ÇßßѼí½ÑαÑ ¼«úπΓ «íαáíáΓδóáΓ∞ »ÑαÑñáóáѼδÑ º¡áτÑ¡¿∩
  9069.         «ñ¿¡á¬«ó«. é«-óΓ«αδσ, »«ñ»α«úαá¼¼á, ¬«Γ«αá∩ «Φ¿í«τ¡« ¼«ñ¿Σ¿µ¿απÑΓ
  9070.         º¡áτÑ¡¿Ñ  »áαá¼ÑΓαá,  »ÑαÑñáóáѼ«ú« »« º¡áτÑ¡¿ε ¿½¿ »« ßß佬Ñ, ¡Ñ
  9071.         ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ ó᪡πε «í½áßΓ∞ »á¼∩Γ¿.
  9072.  
  9073.              Æá¬¿¼ «íαẫ¼, ¿ß»«½∞º«óá¡¿Ñ ßΓѬᠼ«ªÑΓ π½πτΦ¿Γ∞ ßΓá¡ñáαΓ¿-
  9074.         ºáµ¿ε  óáΦ¿σ »α«úαá¼¼. æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ, ó τѼ ß«ßΓ«¿Γ
  9075.         φΓ« »αÑ¿¼πΘÑßΓó«. ÅαÑñ»«½«ª¿¼, º¡áτÑ¡¿Ñ µÑ½«⌐ »ÑαѼѡ¡«⌐ %x αáó¡«
  9076.         4,  ¿ π óáß ¿¼ÑÑΓß∩ »«ñ»α«úαἼᠡá ÇßßѼí½ÑαÑ MYROUTINE, ¬«Γ«αá∩
  9077.         ó«ß»α¿¡¿¼áÑΓ »ÑαÑñáóáѼ«Ñ µÑ½«Ñ º¡áτÑ¡¿Ñ. ¥Γá »«ñ»α«úαἼᠠíπñÑΓ
  9078.         αáí«ΓáΓ∞  «ñ¿¡á¬«ó«, Ñß½¿ óδ ó맮óÑΓÑ ÑÑ ¿ «»ÑαáΓ«α«¼ CALL MYROU-
  9079.         TINE(%x),  ¿ «»ÑαáΓ«α«¼ CALL MYROUTINE(4). àß½¿ »«ñ»α«úαá¼¼á íδ½á
  9080.         óδºóá¡á  ß  »«¼«Θ∞ε CALL SUBROUTINE(4%) ¿ »δΓáÑΓß∩ ¼«ñ¿Σ¿µ¿α«óáΓ∞
  9081.  
  9082.         TASM2 #3-5/䫬              = 214 =
  9083.  
  9084.         º¡áτÑ¡¿Ñ »ÑαÑñá¡¡«ú« »áαá¼ÑΓαá, Γ« «¡á íѺ óß∩¬«ú« πΘÑαíá ¼«ñ¿Σ¿-
  9085.         µ¿α«óá½á  íδ «í½áßΓ∞ »á¼∩Γ¿, úñÑ óαѼѡ¡« σαá¡¿Γß∩ µÑ½«Ñ º¡áτÑ¡¿Ñ
  9086.         4.
  9087.  
  9088.              çá¼ÑΓ¿¼, τΓ« ó« óΓ«α«¼ ß½πτáÑ Γ¿» íδ½ π¬áºá¡ ∩ó¡« (%4).  ¥Γ«
  9089.         ¡Ñ  ∩ó½∩ÑΓß∩ áíß«½εΓ¡« ¡Ñ«íσ«ñ¿¼δ¼, σ«Γ∩ ñѽáΓ∞ φΓ« ¡Ñ»½«σ«. àß½¿
  9090.         íδ Æπαí« üÑ⌐ß¿¬ »αÑñ»«½«ª¿½, τΓ« º¡áτÑ¡¿Ñ 4 - φΓ« τ¿ß½« ß «ñ¿¡áα-
  9091.         ¡«⌐ Γ«τ¡«ßΓ∞ε, Γ« óáΦá »«ñ»α«úαἼᠿ߻«½∞º«óá½á íδ ¡ÑóÑα¡«Ñ º¡á-
  9092.         τÑ¡¿Ñ (ñóá íá⌐Γá ¿º 4-íá⌐Γ«ó«ú« τ¿ß½á ß  «ñ¿¡áα¡«⌐  Γ«τ¡«ßΓ∞ε)  ¿
  9093.         óδ»«½¡∩½áß∞ íδ ¡Ñ¬«ααÑ¬Γ¡«. ùΓ«íδ úáαá¡Γ¿α«óáΓ∞ »ÑαÑñáτπ º¡áτÑ¡¿∩
  9094.         ¬«ααÑ¬Γ¡«ú« Γ¿»á, ½πτΦÑ »α¿ ¬áªñ«¼ ó맮óÑ »«ñ»α«úαá¼¼δ  π¬áºδóáΓ∞
  9095.         Γ¿» »ÑαѼѡ¡δσ.
  9096.  
  9097.              àß½¿ óδ »ÑαÑñáÑΓÑ »«ñ»α«úαἼѠ¼áßß¿ó, Γ« ßΓѬ πóѽ¿τ¿Γß∩ ¡á
  9098.         60 íá⌐Γ (»α¿ φΓ«¼ í«½∞Φá∩ τáßΓ∞ »ÑαÑñá¡¡«⌐ óá¼ ¿¡Σ«α¼áµ¿¿ ó«º¼«ª-
  9099.         ¡« ¬ ñѽπ ¡Ñ «Γ¡«ß¿Γß∩).  é απ¬«ó«ñßΓóÑ »« Æπαí« üÑ⌐ß¿¬π αѬ«¼Ñ¡-
  9100.         ñπÑΓß∩ »ÑαÑñáóáΓ∞ »áαá¼ÑΓαδ Γ¿»á ¼áßß¿óá,  ¬á¬ µÑ½δÑ º¡áτÑ¡¿∩,  á
  9101.         ¡Ñ »ÑαÑñáóáΓ∞ ¼áßß¿ó µÑ½¿¬«¼.  ÅÑαÑñáτá ó¼ÑßΓ« óßÑú« ¼áßß¿óá ¡Ñß-
  9102.         ¬«½∞¬¿σ óδíαá¡¡δσ »áαá¼ÑΓα«ó »«ºó«½¿Γ ßφ¬«¡«¼¿Γ∞ ¼ÑßΓ«  ¡á ñ¿ß¬Ñ,
  9103.         π¼Ñ¡∞Φ¿Γ∞  óαѼ∩,  ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩ óδ»«½¡Ñ¡¿∩ óáΦÑ⌐ »α«úαá¼¼δ,  ¿
  9104.         «íÑß»Ñτ¿Γ∞ »ÑαÑ¡«ß¿¼«ßΓ∞ óáΦÑ⌐ »α«úαá¼¼δ ñ½∩ αáí«Γδ ß »«ß½ÑñπεΘ¿-
  9105.         ¼¿ óÑαß¿∩¼¿ Æπαí« üÑ⌐ß¿¬á.
  9106.  
  9107.              ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα, τΓ« π óáß ÑßΓ∞ »α«ßΓá∩  »«ñ»α«úαá¼¼á,
  9108.         ¬«Γ«α«⌐ ΓαÑíπÑΓß∩ ºá¡ÑßΓ¿ ó ßΓѬ Γ«½∞¬« π¬áºáΓѽ∞ íáºδ BP. é φΓ«¼
  9109.         ß½πτáÑ º¡áτÑ¡¿Ñ¼ ¿½¿ áñαÑß«¼ »Ñαó«ú« »áαá¼ÑΓαá íπñÑΓ [SP+6]. àß½¿
  9110.         íδ  óδ ºá¡Ñß½¿ ó ßΓѬ ñóá αÑú¿ßΓαá, Γ« º¡áτÑ¡¿Ñ¼ ¿½¿ áñαÑß«¼ »Ñα-
  9111.         ó«ú« »áαá¼ÑΓαá í佫 íδ [SP+8].
  9112.  
  9113.              äáóá⌐ΓÑ »αÑñ»«½«ª¿¼, τΓ« »Ñαóδ⌐ »áαá¼ÑΓα »αÑñßΓáó½∩ÑΓ  ß«í«⌐
  9114.         µÑ½«Ñ  º¡áτÑ¡¿Ñ ¿ »ÑαÑñáÑΓß∩ »«ñ»α«úαἼѠ¡á ÇßßѼí½ÑαÑ »« º¡áτÑ-
  9115.         ¡¿ε. é φΓ«¼ ß½πτáÑ óδ ¼«ªÑΓÑ »«¼ÑßΓ¿Γ∞ µÑ½«Ñ º¡áτÑ¡¿Ñ  ó  αÑú¿ßΓα
  9116.         CX ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿⌐:
  9117.  
  9118.               push  bp                ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9119.               mov   bp,sp             ; »α¿αáó¡∩Γ∞ π¬áºáΓѽ∞ íáºδ ¬
  9120.                                       ; π¬áºáΓѽε ßΓѬá
  9121.               les   di,[bp+6]         ; ES ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ ßÑú¼Ñ¡Γá,
  9122.                                       ; DI - ß¼ÑΘÑ¡¿Ñ º¡áτÑ¡¿∩
  9123.               mov   cx,ES:[DI]        ; »«¼ÑßΓ¿Γ∞ º¡áτÑ¡¿Ñ ó CX
  9124.  
  9125.                      Åα¿¼Ñτá¡¿Ñ: ç¡áτÑ¡¿Ñ  ¡Ñ  íπñÑΓ  ¡áσ«ñ¿Γ∞ß∩ ó Γ«¼ ªÑ
  9126.                ßÑú¼Ñ¡ΓÑ, τΓ« ¿ «íδτ¡δÑ »ÑαѼѡ¡δÑ. éδ ñ«½ª¡δ »«ºáí«Γ¿Γ∞ß∩
  9127.                « Γ«¼,  τΓ«íδ ñ½∩ ñ«ßΓπ»á ¬ º¡áτÑ¡¿ε ¿ß»«½∞º«óáΓ∞ ¬«ααѬΓ-
  9128.                ¡δ⌐ ¿ »«½¡δ⌐ áñαÑß. äá½ÑÑ ¼δ αáß߬áªÑ¼ « »ÑαѼѡ¡δσ, ¬«Γ«-
  9129.                αδÑ ¡Ñ ¡áσ«ñ∩Γß∩ ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ,  í«½ÑÑ »«ñα«í-
  9130.  
  9131.         TASM2 #3-5/䫬              = 215 =
  9132.  
  9133.                ¡«.
  9134.  
  9135.              æ ñαπú«⌐ ßΓ«α«¡δ, Ñß½¿ íδ óδ º¡á½¿, τΓ« µÑ½«τ¿ß½Ñ¡¡á∩  »ÑαÑ-
  9136.         ¼Ñ¡¡á∩  »ÑαÑñá¡á  »« ßß佬Ñ, á ¡Ñ »« º¡áτÑ¡¿ε, Γ« [BP+6] ß«ñÑαªá½
  9137.         íδ áñαÑß ß¼ÑΘÑ¡¿∩ »ÑαѼѡ¡«⌐ ó ÑÑ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.  ùΓ«íδ  »«¼Ñß-
  9138.         Γ¿Γ∞ φΓ« µÑ½«Ñ º¡áτÑ¡¿Ñ ó αÑú¿ßΓα CX, ¼«ª¡« í佫 íδ ºá»¿ßáΓ∞:
  9139.  
  9140.               push  bp                ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9141.               mov   bp,sp             ; »α¿αáó¡∩Γ∞ π¬áºáΓѽ∞ íáºδ
  9142.                                       ; ¬ π¬áºáΓѽε ßΓѬá
  9143.               mov   bx,[bp+6]         ; »«¼ÑßΓ¿Γ∞ áñαÑß º¡áτÑ¡¿∩ ó BX
  9144.               mov   cx,[bx]           ; »«¼ÑßΓ¿Γ∞ »ÑαÑñá¡¡«Ñ º¡áτÑ¡¿Ñ
  9145.                                       ; ó CX
  9146.  
  9147.              é ñá¡¡«⌐ »α«úαἼѠ»αÑñ»«½áúáÑΓß∩, τΓ« »ÑαѼѡ¡á∩  ¡áσ«ñ¿Γß∩
  9148.         ó  ΓѬπΘѼ  ßÑú¼Ñ¡ΓÑ  ñá¡¡δσ, ¿ ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ º¡áτÑ¡¿∩ »ÑαѼѡ¡«⌐
  9149.         ¡Ñ«íσ«ñ¿¼« Γ«½∞¬« ß¼ÑΘÑ¡¿Ñ »ÑαѼѡ¡«⌐ ó φΓ«¼ ßÑú¼Ñ¡ΓÑ.
  9150.  
  9151.              ìáñѪ¡ÑÑ »ÑαÑñáóáΓ∞ »áαá¼ÑΓαδ, Ñß½¿ óδ óßÑúñá íπñÑΓÑ »αÑñ»«-
  9152.         ½áúáΓ∞, τΓ« »ÑαÑñáτá «ßπΘÑßΓó½∩ÑΓß∩ »« º¡áτÑ¡¿ε. àß½¿ º¡áτÑ¡¿Ñ ¡á
  9153.         ßἫ¼ ñѽѠ»ÑαÑñáÑΓß∩ »« ßß佬Ñ, óδ ¡¿τÑú« ¡Ñ  »«ΓÑα∩ÑΓÑ:  »«½¡δ⌐
  9154.         áñαÑß  »ÑαѼѡ¡«⌐ íπñÑΓ ó¬½ετáΓ∞ ó ßÑí∩ ΓѬπΘ¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ. æ
  9155.         ñαπú«⌐ ßΓ«α«¡δ, Ñß½¿ ó óáΦÑ⌐ »«ñ»α«úαἼѠ»αÑñ»«½áúáÑΓß∩, τΓ« »Ñ-
  9156.         αѼѡ¡á∩ »ÑαÑñáóá½áß∞ »« ßß佬Ñ, á φΓ« ¡Ñ Γá¬, Γ« »«½πτÑ¡¡δ⌐ óἿ
  9157.         áñαÑß ¡Ñ íπñÑΓ ß«ñÑαªáΓ∞ ¬«ααÑ¬Γ¡«Ñ º¡áτÑ¡¿Ñ »«½¡«ú« áñαÑßá,  Γá¬
  9158.         ¬á¬ ßÑú¼Ñ¡Γ íπñÑΓ ¡Ñ»αáó¿½∞¡δ¼. Æá¬¿¼ «íαẫ¼, »«ñ»α«úαá¼¼á íπñÑΓ
  9159.         ½¿í« ¿ºó½Ñ¬áΓ∞ ¡Ñ»αáó¿½∞¡«Ñ º¡áτÑ¡¿Ñ, ½¿í« (Ñß½¿ óδ »δΓáÑΓÑß∞ ¿º-
  9160.         ¼Ñ¡¿Γ∞  º¡áτÑ¡¿Ñ  »ÑαÑñáóáѼ«⌐ »ÑαѼѡ«⌐) íπñÑΓ ¿º¼Ñ¡∩Γ∞ ¡ÑóÑα¡πε
  9161.         «í½áßΓ∞ »á¼∩Γ¿ ß ¡Ñ»αÑñ߬áºπÑ¼δ¼¿ αѺπ½∞ΓáΓἿ.
  9162.  
  9163.              ÅÑαÑñáτá »áαá¼ÑΓα«ó »« ßßδ½¬Ñ º¡áτ¿Γѽ∞¡«  »α«ΘÑ  ñ½∩  Γᬿσ
  9164.         »ÑαѼѡ¡δσ,  ¬á¬  ßΓ᫬¿, ¼áßß¿óδ ¿ τ¿ß½á ß »½áóáεΘÑ⌐ Γ«τ¬«⌐. ¥Γ¿
  9165.         »ÑαѼѡ¡δÑ ¼«úπΓ íδΓ∞ ñ«ßΓáΓ«τ¡« ñ½¿¡¡δ¼¿, τΓ« óδºδóὫ íδ  »α«í-
  9166.         ½Ñ¼δ,  Ñß½¿ íδ «¡¿ ñÑ⌐ßΓó¿Γѽ∞¡« »ÑαÑñáó὿ß∞ ó ßΓѬÑ. çáΓαáΓδ ¡á
  9167.         ¿ºó½ÑτÑ¡¿Ñ ñ½¿¡¡«⌐ »ÑαѼѡ¡«⌐ ¿º ßΓÑ¬á »α¿¼Ñα¡« φ¬ó¿óá½Ñ¡Γ¡δ ºáΓ-
  9168.         αáΓá¼  ¡á  ßτ¿Γδóá¡¿Ñ  ¿º ßΓѬá ÑÑ áñαÑßá ¿ αáí«Γπ ß »ÑαѼѡ¡«⌐ ó
  9169.         «í½áßΓ¿ »á¼∩Γ¿. ä½∩ ßΓ᫬«óδσ »ÑαѼѡ¡δσ (Ñß½¿,  ¬«¡Ñτ¡«,  ßΓ᫬á
  9170.         ¡Ñ  ß½¿Φ¬«¼  ¬«α«Γ¬á∩) ¼á½«óÑα«∩Γ¡«, τΓ« «¬áªÑΓß∩ ñ«ßΓáΓ«τ¡«Ñ ñ½∩
  9171.         «íαáí«Γ¬¿ ßΓ᫬¿ ¼ÑßΓ« ó αÑú¿ßΓαáσ íѺ óδ»«½¡Ñ¡¿∩ ñ«ßΓπ»á ¬ »á¼∩-
  9172.         Γ¿.
  9173.  
  9174.  
  9175.  
  9176.  
  9177.         TASM2 #3-5/䫬              = 216 =
  9178.  
  9179.                  ÅÑαѼѡ¡δÑ, ¡áσ«ñ∩Θ¿Ñß∩ ó¡Ñ ΓѬπΘÑú« ßÑú¼Ñ¡Γá ñá¡¡δσ          
  9180.         -----------------------------------------------------------------
  9181.  
  9182.              àß½¿ »ÑαÑñáóáѼδÑ »ÑαѼѡ¡δÑ ¡Ñ ¡áσ«ñ∩Γß∩ ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ
  9183.         ñá¡¡δσ,  Γ«  ñ½∩ ñ«ßΓπ»á ¬ º¡áτÑ¡¿ε »ÑαѼѡ¡«⌐ ó »α«úαἼѠ¡á Çß-
  9184.         ßѼí½ÑαÑ óá¼ »«ΓαÑíπÑΓß∩ ¬á¬ ßÑú¼Ñ¡Γ, Γᬠ¿ ß¼ÑΘÑ¡¿Ñ  »ÑαѼѡ¡«⌐.
  9185.         Æπαí« üÑ⌐ß¿¬ óßÑúñá »ÑαÑñáÑΓ ó ßΓѬѠñ½∩ ¬áªñ«⌐ »ÑαѼѡ¡«⌐ ¿ ßÑú-
  9186.         ¼Ñ¡Γ, ¿ ß¼ÑΘÑ¡¿Ñ. Æá¬¿¼  «íαẫ¼,  »α«úαá¼¼¿ßΓπ  óßÑúñá  ñ«ßΓπ»Ñ¡
  9187.         »«½¡δ⌐ áñαÑß ¬áªñ«⌐ »ÑαѼѡ¡«⌐.
  9188.  
  9189.              ùáßΓ∞ áñαÑßá, «»αÑñѽ∩εΘá∩ ßÑú¼Ñ¡Γ, ß«ñÑনΓß∩ ó  2  íá⌐Γáσ,
  9190.         ¡Ñ»«ßαÑñßΓóÑ¡¡«⌐ ß½ÑñπεΘ¿σ ºá ß¼ÑΘÑ¡¿Ñ¼ »áαá¼ÑΓαá. ìá¿í«½ÑÑ πñ«í-
  9191.         ¡δ⌐ ß»«ß«í ¿ß»«½∞º«óá¡¿∩ φΓ«⌐ ¿¡Σ«α¼áµ¿¿ ó óáΦÑ⌐ »α«úαἼѠ¡á Çß-
  9192.         ßѼí½ÑαÑ - φΓ« ¿ß»«½∞º«óá¡¿Ñ ¿¡ßΓαπ¬µ¿¿ LES.
  9193.  
  9194.              ê¡ßΓαπ¬µ¿∩ LES ºáúαπº¿Γ ó π¬áºá¡¡δ⌐ αÑú¿ßΓα º¡áτÑ¡¿Ñ  ß¼ÑΘÑ-
  9195.         ¡¿∩ »ÑαѼѡ¡«⌐, á αÑú¿ßΓα ES - τáßΓ∞ áñαÑßá, »αÑñßΓáó½∩εΘπε ß«í«⌐
  9196.         ßÑú¼Ñ¡Γ.  ¥Γ« «íÑß»Ñτ¿Γ  óá¼  »«½¡πε áñαÑßáµ¿ε ¬  ½εí«⌐  »ÑαѼѡ-
  9197.         ¡«⌐, ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ó ¬á¬«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ «¡á ¡áσ«ñ¿Γß∩.
  9198.  
  9199.              ÅαÑñ»«½«ª¿¼ «»∩Γ∞, τΓ« ó óáΦÑ⌐ »«ñ»α«úαἼѠ ¡πª¡«  ºá»¿ßáΓ∞
  9200.         º¡áτÑ¡¿Ñ µÑ½«τ¿ß½Ñ¡¡«⌐ »ÑαѼѡ¡«⌐ ó αÑú¿ßΓα CX. Å«ß¬«½∞¬π αÑú¿ßΓα
  9201.         ES ß«σαá¡∩Γ∞ ¡Ñ ¡πª¡«, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ¿¡ßΓαπ¬µ¿ε LES:
  9202.  
  9203.                  push  bp                 ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9204.                  mov   bp,sp              ; »α¿αáó¡∩Γ∞ π¬áºáΓѽ∞ íáºδ ¬
  9205.                                           ; π¬áºáΓѽε ßΓѬá
  9206.                  les   di,[bp+6]          ; ES ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ, DI -
  9207.                                           ; ß¼ÑΘÑ¡¿Ñ
  9208.                  mov   cx,ES:[DI]         ; »«¼ÑßΓ¿Γ∞ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
  9209.                                           ; ó CX
  9210.  
  9211.              æ »«¼«Θ∞ε »ÑαÑñáτ¿ »«½¡«ú« áñαÑßá  ¬áªñ«⌐  »ÑαѼѡ¡«⌐  Æπαí«
  9212.         üÑ⌐ß¿¬  »«ºó«½∩ÑΓ »α«úαá¼¼¿ßΓπ, αáí«ΓáεΘѼπ ¡á ÇßßѼí½ÑαÑ, »¿ßáΓ∞
  9213.         »«ñ»α«úαá¼¼δ, ¡Ñºáó¿ß¿¼δÑ «Γ Γ«ú«, úñÑ σαá¡∩Γß∩ ñá¡¡δÑ.  àß½¿  óδ
  9214.         »ÑαÑ»¿ΦÑΓÑ  ßó«ε  »α«úαá¼¼π  ¿ »«¼ÑßΓ¿ΓÑ »ÑαѼѡ¡δÑ ¿½¿ ¼áßß¿óδ ó
  9215.         ñαπú¿Ñ ßÑú¼Ñ¡Γδ ñá¡¡δσ, Γ« ó ß½πτáÑ ¿ß»«½∞º«óá¡¿∩ »«½¡«ú«  áñαÑßá
  9216.         »ÑαѼѡ¡«⌐ ¿ ¿¡ßΓαπ¬µ¿¿ LES óá¼ ¡Ñ »α¿ñÑΓß∩ »ÑαÑ»¿ßδóáΓ∞ »«ñ»α«ú-
  9217.         αá¼¼δ, αÑ὿º«óá¡¡δÑ ¡á ÇßßѼí½ÑαÑ.
  9218.  
  9219.                                   Æ¿» «»ÑαáΓ«αá CALL                           
  9220.         -----------------------------------------------------------------
  9221.  
  9222.              æπΘÑßΓóπÑΓ ñóá Γ¿»á «»ÑαáΓ«αá CALL - í½¿ª¡¿⌐ (near) ¿  ñá½∞-
  9223.         ¡¿⌐ (far). äá½∞¡¿⌐ «»ÑαáΓ«α CALL óδσ«ñ¿Γ ºá úαá¡¿µδ ΓѬπΘÑú« ßÑú-
  9224.  
  9225.         TASM2 #3-5/䫬              = 217 =
  9226.  
  9227.         ¼Ñ¡Γá ¬«ñá, á í½¿ª¡¿⌐ - ¡ÑΓ.
  9228.  
  9229.              é Æπαí« üÑ⌐ß¿¬Ñ »α¿óÑßΓ¿ ¬ ¡Ñ¬«Γ«αδ¼ »α«í½Ñ¼á¼ ¼«ªÑΓ  Γ«½∞¬«
  9230.         «»ÑαáΓ«α  CALL ABSOLUTE, »«ß¬«½∞¬π Ñú« µÑ½Ñó«⌐ áñαÑß ¼«ªÑΓ αáß»«-
  9231.         ½áúáΓ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ »á¼∩Γ¿. Æá¬¿¼  «íαẫ¼,  ó  Æπαí«  üÑ⌐ß¿¬Ñ
  9232.         ΓαÑíπÑΓß∩,  τΓ«íδ  »«ñ»α«úαá¼¼δ, óδºδóáѼδÑ «»ÑαáΓ«α«¼ CALL ABSO-
  9233.         LUTE, ºáóÑαΦ὿ óδ»«½¡Ñ¡¿Ñ ß »«¼«Θ∞ε ñá½∞¡Ñú« ó«ºóαáΓá ¿  áóΓ«¼á-
  9234.         Γ¿τÑ߬¿ úÑ¡Ñα¿α«ó὿ «»ÑαáΓ«α CALL ñá½∞¡Ñú« Γ¿»á »α¿ »ÑαÑñáτÑ π»-
  9235.         αáó½Ñ¡¿∩ Γᬿ¼ »«ñ»α«úαá¼¼á¼.
  9236.  
  9237.              é맮ó CALL INTERRUPT ¼«ªÑΓ ¡Ñ∩ó¡« úÑ¡Ñα¿α«óáΓ∞ ó맮ó ñá½∞¡Ñ-
  9238.         ú«  Γ¿»á,  ¡«  Æπαí«  üÑ⌐ß¿¬ «íαáíáΓδóáÑΓ φΓ« ó¡πΓαÑ¡¡¿¼ «íαẫ¼.
  9239.         àß½¿ óδ »¿ΦÑΓÑ ßó«¿ ß«íßΓóÑ¡¡δÑ «íαáí«Γτ¿¬¿ »αÑαδóá¡¿⌐, óá¼ ¡πª¡«
  9240.         Γ«½∞¬«  ñ½∩ »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩ «íαáΓ¡« ó »α«úαá¼¼π Æπαí« üÑ⌐ß¿¬á
  9241.         ¿ß»«½∞º«óáΓ∞ ¿¡ßΓαπ¬µ¿ε IRET (ó«ºóαáΓ ¿º »αÑαδóá¡¿∩).
  9242.  
  9243.              éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ó¬½ετáÑΓß∩ ó »α«úαá¼¼π »α¿ ÑÑ  ¬«¼»¿½∩-
  9244.         µ¿¿. é «íΘѼ ß½πτáÑ ¬«ñ íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ó ΓѬπΘѼ ßÑú¼Ñ¡ΓÑ ¬«ñá,
  9245.         ¡« Æπαí« üÑ⌐ß¿¬ ¡Ñ »«ñαáºπ¼ÑóáÑΓ φΓ«ú«, ¿ ΓᬿѠ»«ñ»α«úαá¼¼δ Γá¬-
  9246.         ªÑ ºáóÑαΦáεΓß∩ ñá½∞¡¿¼ ó«ºóαáΓ«¼. Æπαí« üÑ⌐ß¿¬ íπñÑΓ áóΓ«¼áΓ¿τÑß-
  9247.         ¬¿ úÑ¡Ñα¿α«óáΓ∞ óδº«ó ¿ ó«ºóαáΓ, »«φΓ«¼π óá¼ ¡Ñ  ¡πª¡«  ¿ß»«½∞º«-
  9248.         óáΓ∞  ó  ßó«Ñ¼ ¬«ñÑ ¿¡ßΓαπ¬µ¿ε RET. àß½¿ óδ σ«Γ¿ΓÑ ºáóÑαΦ¿Γ∞ »«ñ-
  9249.         »α«úαá¼¼π ñ« ¬«¡µá ¬«ñá, Γ« ¡πª¡« »α«ßΓ« »ÑαÑ⌐Γ¿ ¡á ¼ÑΓ¬π ó ¬«¡µÑ
  9250.         ¬«ñá.
  9251.  
  9252.                     Åα¿¼Ñτá¡¿Ñ: Å«ß¬«½∞¬π   Æπαí«  üÑ⌐ß¿¬  ¡Ñ  ¿ß»«½∞ºπÑΓ
  9253.                »α«úαá¼¼π-¬«¼»«¡«óΘ¿¬ DOS LINK,  óá¼ ¼«ª¡« ¡Ñ íÑß»«¬«¿Γ∞ß∩
  9254.                «  Γ«¼,  τΓ«íδ  «íΩ∩ó½∩Γ∞ óáΦ¿ »«ñ»α«úαá¼¼δ «íΘÑñ«ßΓπ»¡δ¼¿
  9255.                (PUBLIC),  ¿½¿ «»¿ßδóáΓ∞ ¿σ ó ßó«¿σ »α«úαá¼¼áσ,  ¬á¬ ó¡ÑΦ-
  9256.                ¡¿Ñ.
  9257.  
  9258.                                                                                
  9259.         êºó½ÑτÑ¡¿Ñ ¿º ßΓѬá
  9260.         -----------------------------------------------------------------
  9261.  
  9262.              ÅÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ »«ñ»α«úαá¼¼δ óδ  ñ«½ª¡δ  πíÑñ¿Γ∞ß∩  ó Γ«¼,
  9263.         τΓ« óßÑ ºá¡ÑßÑ¡¡δÑ ó ßΓѬ αÑú¿ßΓαδ ¿ºó½ÑτÑ¡δ ¿º ßΓѬá. çñÑß∞ ½Ñú-
  9264.         ¬« ßñѽáΓ∞ «Φ¿í¬π, «ß«íÑ¡¡« Ñß½¿ ó óáΦÑ⌐ »«ñ»α«úαἼѠ¿ß»«½∞ºπÑΓ-
  9265.         ß∩ πß½«ó¡«Ñ ºá¡ÑßÑ¡¿Ñ ó ßΓѬ ¿ ¿ºó½ÑτÑ¡¿Ñ ¿º ¡Ñú« αÑú¿ßΓα«ó.
  9266.  
  9267.              àß½¿ óδ ¿ºó½ÑτÑΓÑ ß½¿Φ¬«¼ ¼á½« αÑú¿ßΓα«ó, Γ« óáΦá  »α«úαá¼¼á
  9268.         »«ß½Ñ  ó맮óᠠ󫺼«ª¡«  ¡¿¬«úñá ¡Ñ ó«ºóαáΓ¿Γ π»αáó½Ñ¡¿Ñ, Γᬠ¬á¬
  9269.         Æπαí« üÑ⌐ß¿¬ »«ñαáºπ¼ÑóáÑΓ, τΓ« »«ß½Ññ¡∩∩ ºá»¿ß∞ ó  ßΓѬѠ -  φΓ«
  9270.         áñαÑß ó«ºóαáΓá. àß½¿ óδ ¿ºó½ÑτÑΓÑ ß½¿Φ¬«¼ ¼¡«ú« αÑú¿ßΓα«ó, Γ« ¼«-
  9271.         ªÑΓ ¡áí½εñáΓ∞ß∩ Γ«Γ ªÑ φΣΣѬΓ.
  9272.  
  9273.  
  9274.         TASM2 #3-5/䫬              = 218 =
  9275.  
  9276.              ìÑ óδ»«½¡∩⌐ΓÑ «»Ñαáµ¿ε ºáúαπº¬¿ ¿ ¿ºó½ÑτÑ¡¿∩ ¡Ñ¡πª¡δσ º¡áτÑ-
  9277.         ¡¿⌐  ¿º ßÑú¼Ñ¡Γ¡δσ αÑú¿ßΓα«ó, Γᬠ¬á¬ φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñß«ó-
  9278.         ¼ÑßΓ¿¼«ßΓ¿ óáΦÑú« ¿ßσ«ñ¡«ú«  ¬«ñá  ß  »«ß½ÑñπεΘ¿¼¿  óÑαß¿∩¼¿  DOS
  9279.         (¡á»α¿¼Ñα, «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐ OS/2).
  9280.  
  9281.  
  9282.  
  9283.  
  9284.         TASM2 #3-5/䫬              = 219 =
  9285.  
  9286.                   æ«ºñá¡¿Ñ »α«úαá¼¼δ ¡á ÇßßѼí½ÑαÑ ñ½∩ Æπαí« üÑ⌐ß¿¬á           
  9287.         -----------------------------------------------------------------
  9288.  
  9289.              àß½¿ óδ ß«ºñ὿ »α«úαá¼¼π ¡á ÇßßѼí½ÑαÑ ¿ σ«Γ¿ΓÑ  »αÑ«íαẫ-
  9290.         óáΓ∞ ÑÑ ó Σ«α¼áΓ .COM, ¿ß»«½∞ºπѼδ⌐ ó »α«úαἼѠÆπαí« üÑ⌐ß¿¬á, Γ«
  9291.         ¼«ª¡« ¿ß»«½∞º«óáΓ∞ »α¿¼Ñα ¬«¼á¡ñ¡«ú« Σá⌐½á ¿º απ¬«ó«ñßΓóá »« Æπα-
  9292.         í« üÑ⌐ß¿¬π:
  9293.  
  9294.                 TASM %1;
  9295.                 TLINK /t %1;
  9296.  
  9297.              é¬½ετáΓ∞ ßÑú¼Ñ¡Γ ßΓѬᠡѠ¡πª¡«, Γᬠ¬á¬ »α«úαἼᠡá ÇßßѼ-
  9298.         í½ÑαÑ »α¿ ºá»π߬ѠíπñÑΓ ¿ß»«½∞º«óáΓ∞ ßΓѬ, ß ¬«Γ«αδ¼ ºáóÑαΦ¿½ αá-
  9299.         í«Γπ Æπαí« üÑ⌐ß¿¬.
  9300.  
  9301.              àß½¿ óδ ¡Ñ ¿ß»«½∞ºπÑΓÑ ó ¡áτá½Ñ »α«úαá¼¼δ «»ÑαáΓ«α ORG 100h,
  9302.         Γ« Æπαí« ÇßßѼí½Ñα íπñÑΓ »« π¼«½τá¡¿ε ¡áτ¿¡áΓ∞ óδ»«½¡Ñ¡¿Ñ ß áñαÑ-
  9303.         ßá 100h. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ ½πτΦÑ π¬áºáΓ∞ «»ÑαáΓ«α ORG ∩ó¡« (ñ½∩ »«ß½Ñ-
  9304.         ñπεΘÑ⌐ ó«º¼«ª¡«⌐ ¼«ñ¿Σ¿¬áµ¿¿).
  9305.  
  9306.              àß½¿ óáΦá »α«úαἼᠻαÑñ¡áº¡áτÑ¡á ñ½∩ αáí«Γδ ¡á  »α«µÑßß«αáσ
  9307.         80186, 80286 ¿½¿ 80286, Γ« ó ¡áτá½Ñ ¬«ñá ÇßßѼí½Ñαá ¼«ª¡« π¬áºáΓ∞
  9308.         ¿¡ßΓαπ¬µ¿¿ .186, .286 ¿ .386. Æ«úñá Æπαí« ÇßßѼí½Ñα »«ºó«½¿Γ  óá¼
  9309.         ¿ß»«½∞º«óáΓ∞  ¬«ñδ  «»Ñαᵿ⌐, ñ«ßΓπ»¡δÑ ñ½∩ φΓ¿σ »α«µÑßß«α«ó. èá¬
  9310.         óδ πó¿ñ¿ΓÑ, φΓ« ¼«ªÑΓ ñáΓ∞ ßπΘÑßΓóÑ¡¡δÑ »αÑ¿¼πΘÑßΓóá.
  9311.  
  9312.                          é맮ó óßΓα«Ñ¡¡«⌐ »α«µÑñπαδ ÇßßѼí½Ñαá                 
  9313.         -----------------------------------------------------------------
  9314.  
  9315.              ÅαÑñ»«½«ª¿¼, óδ ß«ºñ὿ »«ñ»α«úαá¼¼π ¡á ÇßßѼí½ÑαÑ ¿  »αÑ«í-
  9316.         αẫó὿  ÑÑ  ß  »«¼«Θ∞ε Æπαí« ÇßßѼí½Ñαá ó Σ«α¼áΓ .COM. ¥Γ«Γ αÑ-
  9317.         ºπ½∞ΓáΓ ó »α«úαἼѠÆπαí« üÑ⌐ß¿¬á ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñóπ¼∩ ß»«ß«-
  9318.         íἿ:  ß  »«¼«Θ∞ε  ñ¿αÑ¬Γ¿óδ  $INLINE COM ¿½¿ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ
  9319.         $INCLUDE.
  9320.  
  9321.              ìá¿í«½ÑÑ »α∩¼«⌐  ¼ÑΓ«ñ  ß«ßΓ«¿Γ  ó  ¿ß»«½∞º«óá¡¿¿  ñ¿αÑ¬Γ¿óδ
  9322.         $INLINE  COM ¿¼∩_Σá⌐½á. Åα¿ φΓ«¼ Æπαí« üÑ⌐ß¿¬ ó¬½ετ¿Γ Σá⌐½ .COM ó
  9323.         π¬áºá¡¡«¼ óἿ ¼ÑßΓÑ. ¥Γ«Γ ¼ÑΓ«ñ «Γ¡«ß¿Γѽ∞¡« »α«ßΓ« αÑ὿º«óáΓ∞,
  9324.         ¡« π ¡Ñú« ¿¼ÑÑΓß∩ αẠ¡Ññ«ßΓáΓ¬«ó:
  9325.  
  9326.              1.  Æπαí« üÑ⌐ß¿¬ ¿¼ÑÑΓ «úαá¡¿τÑ¡¿Ñ:  ñ«»π߬áÑΓß∩ ¡Ñ í«½ÑÑ 16
  9327.                  ñ¿αÑ¬Γ¿ó  $INLINE  ¡á  »α«µÑñπαπ.  ¥Γ«  ¼«ªÑΓ »α¿óÑßΓ¿ ¬
  9328.                  »α«í½Ñ¼á¼,  Ñß½¿ óδ ñѽáÑΓÑ τΓ«-Γ« «τÑ¡∞ ß½«ª¡«Ñ (¡« φΓ«
  9329.                  ¼á½«óÑα«∩Γ¡«).
  9330.  
  9331.  
  9332.         TASM2 #3-5/䫬              = 220 =
  9333.  
  9334.              2.  ü«½ÑÑ ßÑα∞Ѻ¡á∩ »α«í½Ñ¼á »α«¿ßΓѬáÑΓ ¿º Γ«ú« Σá¬Γá,  τΓ«
  9335.                  Σá⌐½δ  .æÄî  ¡Ñ  ó¬½ετáεΓ ó ßÑí∩ ñ«¬π¼Ñ¡Γᵿε (¬«¼¼Ñ¡Γá-
  9336.                  α¿¿). éδ, ¬«¡Ñτ¡«, ¼«ªÑΓÑ ó¬½ετ¿Γ∞ »α¿¼Ñτá¡¿∩ ó óδºδóáε-
  9337.                  Θπε »α«úαá¼¼π, ¡« í佫 íδ ½πτΦÑ, Ñß½¿ íδ ßἿ Σá⌐½δ .æÄî
  9338.                  í뫨 ñ«¬π¼Ñ¡Γ¿α«óá¡δ.
  9339.  
  9340.              3.  êß»«½∞º«óá¡¿Ñ ñ¿αÑ¬Γ¿óδ  $INLINE  .COM  ¼«ªÑΓ  «¬áºáΓ∞ß∩
  9341.                  »½«ñ«Γó«α¡δ¼. ÉẼÑΘÑ¡¿Ñ ¡Ñ߬«½∞¬¿σ Γᬿσ Σá⌐½«ó ó «ñ¡«¼
  9342.                  Σá⌐½Ñ í佫 íδ »«½Ñº¡« «ß«íÑ¡¡« ó Γ«¼ ß½πτáÑ, Ñß½¿ óδ ¿ß-
  9343.                  »«½∞ºπÑΓÑ  ¡Ñ¬«Γ«α«Ñ  τ¿ß½« Γᬿσ Σá⌐½«ó ó¼ÑßΓÑ. (é φΓ«¼
  9344.                  ºá¬½ετáÑΓß∩ «ñ¿¡ ¿º ñ«ó«ñ«ó ó »«½∞ºπ ¿ß»«½∞º«óá¡¿∩  í¿í-
  9345.                  ½¿«ΓѬ »α«úαá¼¼ ¡á ÇßßѼí½ÑαÑ. è ß«ªá½Ñ¡¿ε, ß«ºñáΓ∞ í¿í-
  9346.                  ½¿«ΓѬπ Σá⌐½«ó .æÄî ¡Ñ Γᬠ»α«ßΓ«.)
  9347.  
  9348.              4.  ìᬫ¡Ñµ, Σá⌐½δ $INLINE .COM  ñ«½ª¡δ  ¼«ñ¿Σ¿µ¿α«óáΓ∞ß∩  ¿
  9349.                  »ÑαÑáßßÑ¼í½¿α«óáΓ∞ß∩, Ñß½¿ óδ ¿σ ¿º¼Ñ¡∩ÑΓÑ. àß½¿ ¿º¼Ñ¡Ñ-
  9350.                  ¡¿∩ «Γ¡«ß¿Γѽ∞¡« ¡Ñóѽ¿¬¿, Γ« φΓ« ¡Ñ óßÑúñᠪѽáΓѽ∞¡«.
  9351.  
  9352.              é ß««ΓóÑΓßΓó¿Ñ ß σáαá¬ΓÑα«¼ αáí«Γδ ñ¿αÑ¬Γ¿óδ $INCLUDE COM óδ
  9353.         ¼«ªÑΓÑ  ºáσ«ΓÑΓ∞  »αÑ«íαẫóáΓ∞  Σá⌐½δ  .COM ó »«ß½Ññ«óáΓѽ∞¡«ßΓ∞
  9354.         ΦÑßΓ¡áñµáΓ¿α¿τ¡δσ µ¿Σα, ¬«Γ«αδÑ óδ ¼«ªÑΓÑ ó¬½ετ¿Γ∞ ó »α«úαá¼¼δ »«
  9355.         ñ¿αÑ¬Γ¿óÑ  $INCLUDE.  Æá¬¿Ñ  »α«úαá¼¼δ  ΓᬪѠ¼«úπΓ ßτ¿ΓδóáΓ∞ß∩ ß
  9356.         ñ¿ß¬á ¬«¼á¡ñ«⌐ αÑñá¬Γ«αá Æπαí« üÑ⌐ß¿¬á Read File (τΓÑ¡¿Ñ Σá⌐½á) -
  9357.         Ctrl-K  R. Æá¬¿¼ «íαẫ¼, óδ íπñÑΓÑ ∩ó¡« ó¿ñÑΓ∞, τΓ« ó¬½ετáÑΓß∩ ó
  9358.         óáΦ ¿ßσ«ñ¡δ⌐ Σá⌐½. ä½∩ »α«úαá¼¼¿ßΓá, αáí«ΓáεΘÑú« ¡á Æπαí«  üÑ⌐ß¿-
  9359.         ¬Ñ, φΓ« ßπΘÑßΓóÑ¡¡«Ñ »αÑ¿¼πΘÑßΓó«.
  9360.  
  9361.              Æá¬ ¬á¬ αÑñá¬Γ¿απѼδ⌐ ΓѬßΓ »αÑñßΓáó½∩ÑΓ ß«í«⌐  ΦÑßΓ¡áñµáΓ¿-
  9362.         α¿τ¡δÑ  ¬«ñδ, óδ ¼«ªÑΓÑ ó¬½ετáΓ∞ ¿½¿ ñ«íáó½∩Γ∞ ¬«¼¼Ñ¡Γáα¿¿. î«ª¡«
  9363.         ΓᬪѠ¿ß»«½∞º«óáΓ∞ αÑñá¬Γ«α Æπαí« üÑ⌐ß¿¬á ñ½∩ Γ«ú«, τΓ«íδ  ó¡ÑßΓ¿
  9364.         ó« óßΓα«Ñ¡¡δ⌐ ¬«ñ ¼¿¡¿¼á½∞¡δÑ ¿º¼Ñ¡Ñ¡¿∩ íѺ ¡Ñ«íσ«ñ¿¼«ßΓ¿ Ñú« »Ñ-
  9365.         αÑáßßÑ¼í½¿α«óá¡¿∩, ¿ »«¼ÑßΓ¿Γ∞ ¡Ñ߬«½∞¬« »«ñ»α«úαá¼¼ ó «ñ¿¡ Σá⌐½.
  9366.         æ«τÑΓá∩  φΓ¿  ¼ÑΓ«ñδ,  ¼«ª¡« φΣΣÑ¬Γ¿ó¡« ß«ºñáóáΓ∞ í¿í½¿«ΓÑ¬π »«ñ-
  9367.         »α«úαá¼¼ ¡á ÇßßѼí½ÑαÑ, ¿ß»«½∞ºπεΘ¿σß∩ ß «»αÑñѽѡ¡δ¼  ßѼÑ⌐ßΓó«¼
  9368.         »α«úαá¼¼.  Äíß½πª¿óáΓ∞  Γá¬πε  í¿í½¿«ΓÑ¬π  »α«ΘÑ,  τѼ Ñß½¿ íδ óδ
  9369.         »«½∞º«ó὿ß∞ ßΓá¡ñáαΓ¡δ¼ í¿í½¿«ΓѬáαѼ.
  9370.  
  9371.              àß½¿ »α«úαá¼¼á ß½¿Φ¬«¼ ñ½¿¡¡á∩,  Γ«  ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐  Σá⌐½
  9372.         íπñÑΓ «τÑ¡∞ í«½∞Φ¿¼, ¿ αÑñá¬Γ¿α«óáΓ∞ ¿ßσ«ñ¡δ⌐ Σá⌐½ ¼«ªÑΓ «¬áºáΓ∞-
  9373.         ß∩ ¡Ñπñ«í¡δ¼. ìá αÑñá¬Γ¿α«óá¡¿Ñ Σá⌐½á (¬á¬ «ñ¡«ú« í½«¬á)  ßπΘÑßΓ-
  9374.         óπÑΓ  «úαá¡¿τÑ¡¿Ñ  64è.  àß½¿ φΓ« ßΓá¡«ó¿Γß∩ »α«í½Ñ¼«⌐, óδ ¼«ªÑΓÑ
  9375.         «íΩÑñ¿¡¿Γ∞ ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐ Σá⌐½ ß óáΦÑ⌐  »α«úαá¼¼«⌐,  ¬á¬  Σá⌐½
  9376.         $INCLUDE. (ê¡«úñá Γᬫ⌐ αẼÑα ¼«ªÑΓ ßñѽáΓ∞ óáΦπ »α«úαá¼¼π óÑß∞-
  9377.         ¼á Γαπñ¡«⌐ ñ½∩ τΓÑ¡¿∩.)
  9378.  
  9379.              Åα¿óÑñѼ »α¿¼Ñα »α«ßΓ«⌐ »α«úαá¼¼δ ¡á Æπαí« üÑ⌐ß¿¬Ñ, »αÑ«íαá-
  9380.  
  9381.         TASM2 #3-5/䫬              = 221 =
  9382.  
  9383.         ºπεΘÑ⌐ Σá⌐½δ .COM ó ΦÑßΓ¡áñµáΓ¿α¿τ¡δÑ Σá⌐½δ:
  9384.  
  9385.         'COM2INC.BAS
  9386.         'äá¡¡á∩ »α«úαἼᠻαÑ«íαáºπÑΓ Σá⌐½δ æÄî ó Σá⌐½δ $INCLUDE
  9387.         'ß »«¼«Θ∞ε ¼ÑΓᬫ¼á¡ñδ üÑ⌐ß¿¬á $INLINE (ñ½∩ «íÑß»ÑτÑ¡¿∩
  9388.         '»α«ßΓ«ú« ó¬½ετÑ¡¿∩ ó »α«úαá¼¼δ ¡á üÑ⌐ß¿¬Ñ).
  9389.         DEFINT A-Z
  9390.         'éßÑ »ÑαѼѡ¡δÑ íπñπΓ µÑ½«τ¿ß½Ñ¡¡δ¼¿.
  9391.         F$=COMMANDS
  9392.         'Åα«óÑα¿Γ∞, Ñß½¿ ½¿ ¬«¼á¡ñ¡á∩ ßΓ᫬á.
  9393.         WHILE F$=""
  9394.               PRINT"¥Γá »α«úαἼᠻαÑ«íαáºπÑΓ Σá⌐½δ æÄî ó $INCLUDE"
  9395.               PRINT"ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó Æπαí« üÑ⌐ß¿¬Ñ. Å« π¼«½τá¡¿ε"
  9396.               PRINT"¿ßσ«ñ¡δÑ Σá⌐½δ ¿¼ÑεΓ Γ¿» æÄî. éδσ«ñ¡δÑ Σá⌐½δ"
  9397.               PRINT"»« π¼«½τá¡¿ε íπñπΓ ¿¼ÑΓ∞ Γ¿» INC. éδ ¼«ªÑΓÑ"
  9398.               PRINT"»ÑαÑ«»αÑñѽ¿Γ∞ φΓ¿ Γ¿»δ, óóÑñ∩ ¬«¡¬αÑΓ¡πε"
  9399.               PRINT"߻ѵ¿Σ¿¬áµ¿ε Γ¿»á. àß½¿ óδ ¡Ñ óóÑñÑΓÑ ¿¼∩"
  9400.               PRINT"óδσ«ñ¡«ú« Σá⌐½á, «¡ íπñÑΓ ¿¼ÑΓ∞ Γ« ªÑ ¿¼∩,"
  9401.               PRINT"τΓ« ¿ óσ«ñ¡«⌐ Σá⌐½, ¡« ß»Ñµ¿Σ¿¬áµ¿ε Γ¿»á"
  9402.               PRINT"INC."
  9403.               LINE INPUT"éóÑñ¿ΓÑ ¿¼∩ »αÑ«íαáºπѼ«ú« Σá⌐½á: ";F$
  9404.         WEND
  9405.  
  9406.         IF COMMAND$="" THEN
  9407.           LINE INPUT"éóÑñ¿ΓÑ ¿¼∩ óδσ«ñ¡«ú« Σá⌐½á: ";O$
  9408.         END IF
  9409.  
  9410.         IF INSTR(F$,".")=0 THEN F$=F$+".COM"  '߻ѵ¿Σ¿¬áµ¿∩ óó«ñá
  9411.         IF O$="" THEN
  9412.           O$=LEFT$(F$,INSTR(F$,"."))+"INC"    '߻ѵ¿Σ¿¬áµ¿∩ óδó«ñá
  9413.           ELSE
  9414.             IF INSTR(O$,".")=0 THEN O$=O$+".INC"  ' «íÑ
  9415.         END IF
  9416.  
  9417.         OPEN"R",#1,F$,1     'ßτ¿ΓδóáΓ∞ »« «ñ¡«¼π íá⌐Γπ ¿º óσ«ñ¡«ú«
  9418.         FIELD #1,1 AS A$    'Σá⌐½á ó A$
  9419.  
  9420.         LASTBYTE&=LOF(1)    '¬«¡Ñµ Σá⌐½á
  9421.         OPEN"O",2,O$        'óδσ«ñ¡«⌐ Σá⌐½ «Γ¬αδΓ
  9422.         FOR I&=1 TO LASTBYTE&-1
  9423.            GET 1,I&
  9424.            X%=ASC(A$)
  9425.            IF ((I&-1) MOD 5=0) THEN PRINT #2,"":PRINT #2,"$INLINE";
  9426.            PRINT #2,"&H";HEX$(X%);
  9427.            IF ((I&-1) MOD 5<>4) THEN PRINT #2,",";
  9428.         NEXT I&
  9429.  
  9430.         TASM2 #3-5/䫬              = 222 =
  9431.  
  9432.         GET 1,LASTBYTE&
  9433.         PRINT #2,"&H";HEX$(ASC(A$))
  9434.         PRINT"ÅαÑ«íαẫóá¡¿Ñ óδ»«½¡Ñ¡«. ";"æτ¿Γá¡« ";LASTBYTE&;"íá⌐Γ."
  9435.         PRINT O$;" ß«ñÑαª¿Γ ";LOF(2);" íá⌐Γ."
  9436.         CLOSE
  9437.         END
  9438.  
  9439.              ¥Γá »α«úαá¼¼á óδóÑñÑΓ Σá⌐½, ¡á ßΓα«¬Ñ ¬«Γ«α«ú« íπñÑΓ  ß«ñÑα-
  9440.         ªáΓ∞ß∩ ñ« »∩Γ¿ ΦÑßΓ¡áñµáΓ¿α¿τ¡δ󠬫ñ«ó. èáªñá∩ ßΓ᫬á íπñÑΓ ¡áτ¿-
  9441.         ¡áΓ∞ß∩ ß ñ¿αÑ¬Γ¿óδ $INLINE, á αѺπ½∞Γ¿απεΘ¿⌐ Σá⌐½  ñ«½ªÑ¡  ß«ñÑα-
  9442.         ªáΓ∞ ñ«ßΓáΓ«τ¡« ¼ÑßΓá ñ½∩ ¬«¼¼Ñ¡Γáα¿Ñ¼, ¬«Γ«αδÑ óδ, ó«º¼«ª¡«, ºá-
  9443.         σ«Γ¿ΓÑ ñ«íáó¿Γ∞. àß½¿ óδ σ«Γ¿ΓÑ »«¼ÑßΓ¿Γ∞ ¡á «ñ¡π  ßΓ᫬π  í«½∞ΦÑ
  9444.         ¿½¿ ¼Ñ¡∞ΦÑ ΦÑßΓ¡áñµáΓ¿α¿τ¡δ󠬫ñ«ó, Γ« óá¼ »«ΓαÑíπÑΓß∩ Γ«½∞¬« ºá-
  9445.         ¼Ñ¡¿Γ∞ MOD 5 ¡á MOD N, úñÑ N í«½∞ΦÑ ¿½¿ ¼Ñ¡∞ΦÑ 5.
  9446.  
  9447.  
  9448.  
  9449.  
  9450.         TASM2 #3-5/䫬              = 223 =
  9451.  
  9452.                     ÉẼÑΘÑ¡¿Ñ »«ñ»α«úαá¼¼δ Æπαí« üÑ⌐ß¿¬á ó »á¼∩Γ¿             
  9453.         -----------------------------------------------------------------
  9454.  
  9455.              é «íΘѼ ß½πτáÑ ¿¼ÑÑΓß∩ ñóá ß»«ß«íá ñ½∩ «»αÑñѽѡ¿∩  αáß»«½«-
  9456.         ªÑ¡¿∩ »«ñ»α«úαá¼¼δ ó »á¼∩Γ¿:
  9457.  
  9458.              1.  éáΦá »«ñ»α«úαá¼¼á ßá¼á ¼«ªÑΓ ó«ºóαáΘáΓ∞ ßó«⌐ áñαÑß.
  9459.  
  9460.              2.  éδ ¼«ªÑΓÑ ßúαπ»»¿α«óáΓ∞ α∩ñ  »«ñ»α«úαá¼¼  ó¼ÑßΓÑ,  τΓ«íδ
  9461.                  «ñ¡á  »α«úαἼᠠó«ºóαáΘá½á  áñαÑß,  «Γ¡«ß∩Θ¿⌐ß∩ ¬« óßѼ
  9462.                  »«ñ»α«úαá¼¼á¼.
  9463.  
  9464.              3.  î«ª¡« ¿ß¬áΓ∞ ó »á¼∩Γ¿ ¬«¼»∞εΓÑαá «»αÑñѽѡ¡πε »«ß½Ññ«óá-
  9465.                  Γѽ∞¡«ßΓ∞ íá⌐Γ.
  9466.  
  9467.              ùΓ«íδ ß«ºñáΓ∞ »α«úαá¼¼π, ó«ºóαáΘáεΘπε ßó«⌐ áñαÑß, óδ  ¼«ªÑΓÑ
  9468.         ¿ß»«½∞º«óáΓ∞ ¬«ñ, á¡á½«ú¿τ¡δ⌐ ß½ÑñπεΘѼπ:
  9469.  
  9470.         xy:         mov   ax,cs          ; »ÑαѼÑßΓ¿Γ∞ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα
  9471.                                          ; ¬«ñá ó AX
  9472.                     push  bp             ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9473.                     mov   bp,sp          ; ¿ ß¬«»¿α«óáΓ∞ π¬áºáΓѽ∞ ßΓѬá
  9474.                                          ; ó BP
  9475.                     les   di,[bp+6]      ; ES ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ, DI -
  9476.                                          ; ß¼ÑΘÑ¡¿Ñ
  9477.                     mov   ES:[DI],AX     ; ß«σαá¡¿Γ∞ º¡áτÑ¡¿Ñ CS ó
  9478.                                          ; »Ñαó«¼ »áαá¼ÑΓαÑ
  9479.                     mov   dx,offset xy   ; »«½πτ¿Γ∞ ΓѬπΘÑÑ ß¼ÑΘÑ¡¿Ñ
  9480.                     les   di,[bp+0ah]    ; áñαÑß óΓ«α«ú« »áαá¼ÑΓαá
  9481.                     mov   ES:[DI],DX     ; ß«σαá¡¿Γ∞ º¡áτÑ¡¿Ñ ß¼ÑΘÑ¡¿∩
  9482.                                          ; ó« óΓ«α«¼ »áαá¼ÑΓαÑ
  9483.                     jmp   fin            ; »α«»πßΓ¿Γ∞ "αÑá½∞¡δ⌐" ¬«ñ
  9484.                                          ; "αÑá½∞¡δ⌐" ¬«ñ ß«ñÑনΓß∩
  9485.                                          ; ºñÑß∞
  9486.         fin:        pop   bp             ; ó«ßßΓá¡«ó¿Γ∞ BP ¿ óδ»«½¡¿Γ∞
  9487.                                          ; ó«ºóαáΓ
  9488.  
  9489.              ä½∩ »ÑαѼѡ¡δσ φΓ«⌐ »«ñ»α«úαá¼¼δ óá¼ ¡πª¡« »ÑαÑñáΓ∞ ñóá  µÑ-
  9490.         ½δσ  º¡áτÑ¡¿∩. é »Ñαó«¼ «¡á ó«ºóαáΓ¿Γ ßÑú¼Ñ¡Γ ¬«ñá, ó ó« óΓ«α«¼ -
  9491.         ß¼ÑΘÑ¡¿Ñ. Åα«í½Ñ¼á ºñÑß∞ ß«ßΓ«¿Γ ó Γ«¼, τΓ« óÑß∞ φëଫñ  íÑß»«-
  9492.         ½ÑºÑ¡  »«ß½Ñ Γ«ú«, ¬á¬ «¡ íπñÑΓ «ñ¿¡ αẠ¿ß»«½∞º«óá¡. öá¬Γ¿τÑ߬¿,
  9493.         φΓ« σπªÑ τѼ íÑß»«½Ñº¡«ßΓ∞, Γᬠ¬á¬ φëଫñ ¡πª¡« πñ὿Γ∞, »αѪ-
  9494.         ñÑ τѼ »α«úαá¼¼á ß¼«ªÑΓ ¡«α¼á½∞¡« αáí«ΓáΓ∞.
  9495.  
  9496.              Å«¬á óáΦá »α«úαá¼¼á ß¼«ªÑΓ »α¿«íαÑßΓ¿ í½áú«ñáα∩ ¼«ñ¿Σ¿¬áµ¿∩¼
  9497.         ßπΘÑßΓóÑ¡¡δ⌐  óδ¿úαδΦ ó ß¬«α«ßΓ¿, óÑß∞¼á óÑα«∩Γ¡«, τΓ« ¡á ¿º¼Ñ¡Ñ-
  9498.  
  9499.         TASM2 #3-5/䫬              = 224 =
  9500.  
  9501.         ¡¿∩ π óáß π⌐ñÑΓ í«½∞ΦÑ óαѼѡ¿,  τѼ  óδ  óδ¿úαáÑΓÑ.  î«ñ¿Σ¿¬áµ¿∩
  9502.         ñ«½ª¡á  íδΓ∞  αáºπ¼¡«⌐: Ñß½¿ óáΦá »α«úαἼᠡѠ∩ó½∩ÑΓß∩ »«½¡«ßΓ∞ε
  9503.         »ÑαѼÑΘáѼ«⌐, αáí«τÑ¼π ¬«ñπ ñ«½ª¡« »αÑñΦÑßΓó«óáΓ∞  í«½∞Φ«Ñ  τ¿ß½«
  9504.         «»Ñαᵿ⌐ NOP.
  9505.  
  9506.              ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ óδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ áñαÑß  »«ñ»α«úαá¼¼δ.  àß½¿
  9507.         óδ  úαπ»»¿απÑΓÑ  ó¼ÑßΓÑ  ¡Ñ߬«½∞¬«  »α«úαá¼¼  ¿ »«¼ÑΘáÑΓÑ ¼ÑΓ¬¿ ó
  9508.         »α«úαá¼¼π Æπαí« üÑ⌐ß¿¬á (í½áú«ñáα∩ τѼπ óδ ¼«ªÑΓÑ óδºδóáΓ∞ ¡πª¡πε
  9509.         »«ñ»α«úαá¼¼π),  ¡Ñ½∞º∩  ½¿ αẼÑßΓ¿Γ∞ ßαÑñ¿ φΓ¿σ »«ñ»α«úαá¼¼ »«ñ-
  9510.         »α«úαá¼¼π ß««íΘÑ¡¿∩ áñαÑßá?
  9511.  
  9512.              ÄΓóÑΓ ºñÑß∞ «Γα¿µáΓѽ∞¡δ⌐. àß½¿ óδ »«¼¡¿ΓÑ, Æπαí« üÑ⌐ß¿¬ «í-
  9513.         αáíáΓδóáÑΓ ºá óáß ¿¡ßΓαπ¬µ¿¿ RET. Æá¬ ¬á¬ »«ñ»α«úαá¼¼δ ¿¼ÑεΓ αáº-
  9514.         ¡δÑ ¿¼Ñ¡á, Æπαí« üÑ⌐ß¿¬ »«ñαáºπ¼ÑóáÑΓ, τΓ« ¬áªñá∩ ß«ñÑαª¿Γ  »ÑαÑ-
  9515.         ¼ÑΘáѼδ⌐  ¬«ñ.  Åα¿  φΓ«¼ ¡ÑΓ úáαá¡Γ¿¿, τΓ« ó ¬«¡Ñτ¡«¼ Σá⌐½Ñ .EXE
  9516.         «Γñѽ∞¡δÑ »«ñ»α«úαá¼¼δ íπñπΓ ¡áσ«ñ¿Γ∞ß∩ ó «ñ¡«⌐ ¿ Γ«⌐ ªÑ  «í½áßΓ¿
  9517.         »á¼∩Γ¿. äáªÑ Ñß½¿ »«ñ»α«úαá¼¼δ ¡áσ«ñ∩Γß∩ ó «ñ¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¿
  9518.         ß½ÑñπεΓ ó Γ«¼ ªÑ »«α∩ñ¬Ñ,  óδ ¡Ñ íπñÑΓÑ º¡áΓ∞, ß¬«½∞¬« íá⌐Γ Æπαí«
  9519.         üÑ⌐ß¿¬ »«¼ÑΘáÑΓ ¼Ñªñπ ¡¿¼¿,  ¿ »«φΓ«¼π ¡Ñ  ß¼«ªÑΓÑ  πº¡áΓ∞,  ¬πñá
  9520.         ¡πª¡« »ÑαÑ⌐Γ¿, τΓ«íδ ßñѽáΓ∞ ¡πª¡δÑ ¿º¼Ñ¡Ñ¡¿∩.
  9521.  
  9522.              ÆαÑΓ¿⌐ ¼ÑΓ«ñ «»αÑñѽѡ¿∩ áñαÑßá  »«ñ»α«úαá¼¼δ  -  φΓ«  ¼ÑΓ«ñ
  9523.         ß¿ú¡áΓπαδ. ùΓ«íδ Ñú« ¿ß»«½∞º«óáΓ∞, ¡πª¡« ¡á⌐Γ¿ ó »á¼∩Γ¿ ¬«¼»∞εΓÑ-
  9524.         αá ¼ÑßΓ«,  úñÑ  ß«ñÑনΓß∩  «»αÑñѽѡ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íá⌐Γ,
  9525.         ¿ñÑ¡Γ¿Σ¿µ¿απεΘá∩ »«ñ»α«úαá¼¼π, ¬«Γ«απε óδ σ«Γ¿ΓÑ ¿º¼Ñ¡¿Γ∞.
  9526.  
  9527.              é ¼ÑΓ«ñÑ ß¿ú¡áΓπαδ ΓᬪѠ ßπΘÑßΓóπε  ßó«¿  »α«í½Ñ¼δ.  ÅÑαóá∩
  9528.         ß«ßΓ«¿Γ  ó  Γ«¼,  τΓ«  ñ½∩ »«¿ß¬á ΓαÑíπÑΓß∩ ¼¡«ú« óαѼѡ¿. éΓ«αá∩
  9529.         ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« ¡ÑΓ úáαá¡Γ¿¿ (ñáªÑ Ñß½¿ óδ ¡áΦ½¿  ß¿ú¡áΓπ-
  9530.         απ)  τΓ«  óδ  ¡áσ«ñ¿ΓÑß∞ ó ¡πª¡«⌐ »«ñ»α«úαá¼¼Ñ. é ΓαÑΓ∞¿σ, ¬áªñá∩
  9531.         »«ñ»α«úαá¼¼á ñ«½ª¡á ß«ñÑαªáΓ∞ ßó«ε ß¿ú¡áΓπαπ. ä½∩ φΓ«ú« ΓαÑíπÑΓß∩
  9532.         ñ«»«½¡¿Γѽ∞¡«Ñ  ¼ÑßΓ« ¿ ½¿Φ¡ÑÑ óαѼ∩, ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩ ¼«ñ¿Σ¿¬áµ¿¿
  9533.         »α«úαá¼¼.
  9534.  
  9535.              ùΓ«íδ ß«ºñáóáΓ∞ »«ñ»α«úαá¼¼δ, ¬«Γ«αδÑ ¼«ª¡«  ¼«ñ¿Σ¿µ¿α«óáΓ∞,
  9536.         óá¼  »«ΓαÑíπÑΓß∩  ½πτΦ¿⌐  ¼ÑΓ«ñ «»αÑñѽѡ¿∩ áñαÑßá »«ñ»α«úαá¼¼δ ¿
  9537.         í«½ÑÑ ½Ñú¬¿⌐ ß»«ß«í ¿º¼Ñ¡Ñ¡¿∩ ÑÑ ¿¡ßΓαπ¬µ¿⌐.
  9538.  
  9539.              ùΓ«íδ αÑΦ¿Γ∞ φΓ¿ »α«í½Ñ¼δ, »α«τ¿Γá⌐ΓÑ ß½ÑñπεΘ¿⌐ αáºñѽ,  úñÑ
  9540.         αáßß¼áΓα¿óáÑΓß∩ ß»Ñµ¿á½∞¡δ⌐ ß»«ß«í ¿ß»«½∞º«óá¡¿∩ »«ñ»α«úαá¼¼, ¬«-
  9541.         Γ«αδÑ ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¿º »α«úαá¼¼δ ¡á Æπαí« üÑ⌐ß¿¬Ñ.
  9542.  
  9543.                                    "æ¬αδΓδÑ" ßΓ᫬¿                            
  9544.         -----------------------------------------------------------------
  9545.  
  9546.  
  9547.         TASM2 #3-5/䫬              = 225 =
  9548.  
  9549.              Æπαí« üÑ⌐ß¿¬ »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ ñ½∩ ßΓ᫬«ó«ú« »α«ßΓαá¡-
  9550.         ßΓóá  ¼á¬ß¿¼π¼  64è.  ê¡«úñá  óá¼  íπñÑΓ  ¡πªÑ¡ ¬áªñδ⌐ íá⌐Γ φΓ«ú«
  9551.         »α«ßΓαá¡ßΓóá, á ºá¬½ετÑ¡¡δÑ ó ¬áóδτ¬¿ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ (ΓᬿÑ,
  9552.         ¬á¬¿Ñ ¿ß»«½∞ºπεΓß∩ ñ½∩ ¼Ñ¡ε ¿ »«ñ߬ẫ¬) ΓᬪѠºá¡¿¼áεΓ ßΓ᫬«ó«Ñ
  9553.         »α«ßΓαá¡ßΓó«.
  9554.  
  9555.              Åα«ßΓαá¡ßΓó« ¬«ñá, «ñ¡á¬«, «úαá¡¿τÑ¡« Γ«½∞¬«  16  ßÑú¼Ñ¡ΓἿ
  9556.         (¬áªñδ⌐  ñ« 64è). å¿º¡∞ íδ º¡áτ¿Γѽ∞¡« «í½Ñúτ¿½áß∞, Ñß½¿ íδ ¡Ñ¬«-
  9557.         Γ«αδÑ ¿º Γᬿσ ßΓ᫬«óδ󠬫¡ßΓá¡Γ ¼«ª¡« í佫 íδ σαá¡¿Γ∞ ó  »α«ßΓ-
  9558.         αá¡ßΓóÑ  ¬«ñá,  úñÑ «¡¿ ¡Ñ íπñπΓ π¼Ñ¡∞ΦáΓ∞ «í½áßΓ∞, ñ«ßΓπ»¡πε ñ½∩
  9559.         ñ¿¡á¼¿τÑ߬¿σ ßΓ᫬«óδσ ñá¡¡δσ. è ßτáßΓ∞ε, φΓ« ¡Ñ  ß½¿Φ¬«¼  Γαπñ¡«
  9560.         ßñѽáΓ∞.
  9561.  
  9562.              Éáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«úαá¼¼π:
  9563.  
  9564.         ; äá¡¡á∩ »α«úαἼᠿ¼ÑÑΓ ñóᠵѽδσ »áαá¼ÑΓαá ¿ ó«ºóαáΘáÑΓ
  9565.         ; ßÑú¼Ñ¡Γ ¿ ß¼ÑΘÑ¡¿Ñ ΓѬßΓá ó ΓѽѠ»α«úαá¼¼δ
  9566.         ;
  9567.  
  9568.                    push  sp
  9569.                    mov   bp,sp
  9570.                    mov   dx,offset show          ; ¼ÑßΓ«, úñÑ ¡áσ«ñ¿Γß∩
  9571.                                                  ; ßΓ᫬á
  9572.                    mov   ax,cs                   ; ßÑú¼Ñ¡Γ ¬«ñá á AX
  9573.                    les   di,[bp+6]               ; ES:DI π¬áºδóáÑΓ ¡á
  9574.                                                  ; »áαá¼ÑΓα
  9575.                    mov   ES:[DI],DX              ; ß««íΘ¿Γ∞ « ¼ÑßΓÑ
  9576.                                                  ; ßΓ᫬¿
  9577.                    mov   di,[bp+0ah]             ; ß½ÑñπεΘ¿⌐ »áαá¼ÑΓα
  9578.                    mov   ES:[DI],AX              ; ß««íΘ¿Γ∞ « ßÑú¼Ñ¡ΓÑ
  9579.                                                  ; ¬«ñá
  9580.                    jmp   fini                    ; ¿ »ÑαÑ⌐Γ¿ ¡áºáñ
  9581.                    DB    'çñÑß∞ ¼«ª¡« αẼÑßΓ¿Γ∞ ½εí«⌐ ΓѬßΓ'
  9582.                    DB    '¿ ó ½εí«¼ «íΩѼÑ, ºáóÑαΦáεΘ¿⌐ß∩'
  9583.                    DB    '½εíδ¼ ß¿¼ó«½«¼ (ºñÑß∞ φΓ« 0).',0
  9584.         fini       pop   bp
  9585.  
  9586.              ¥ΣΣÑ¬Γ ñá¡¡«⌐ »«ñ»α«úαá¼¼δ ¡Ñ߬«½∞¬« «Γ½¿τáÑΓß∩ «Γ Γ«ú«, ¬«-
  9587.         Γ«αδ⌐ ¼δ »αÑñ½áú὿ αá¡ÑÑ ñ½∩ »α«úαá¼¼¡«-¼«ñ¿Σ¿µ¿απѼ«ú« óßΓα«Ñ¡-
  9588.         ¡«ú« ¬«ñá. Äñ¡á¬«, óδ ¡Ñ ºá»¿ßδóáÑΓÑ ¬«ñ (σ«Γ∩ Æπαí« üÑ⌐ß¿¬ íπñÑΓ
  9589.         «íαáíáΓδóáΓ∞ »«½πτÑ¡¡δ⌐ ó αѺπ½∞ΓáΓÑ Σá⌐½ .COM, ¬á¬ ß«ßΓ«∩Θ¿⌐ µÑ-
  9590.         ½¿¬«¼ ¿º ¬«ñá). é¼ÑßΓ« φΓ«ú« óδ σαá¡¿ΓÑ ñá¡¡δÑ.
  9591.  
  9592.              Å«ñ»α«úαá¼¼á ó«ºóαáΘáÑΓ ΓѬπΘ¿⌐ áñαÑß σαá¡∩Θ¿σß∩ ó ¡Ñ⌐  ñá¡-
  9593.         ¡δσ.  àß½¿  óδ σ«Γ¿ΓÑ º¡áΓ∞ ñ½¿¡π ñá¡¡δσ, óδ ¼«ªÑΓÑ ß«ºñáΓ∞ »α«ú-
  9594.         αá¼¼π, ¬«Γ«αá∩ ß««íΘáÑΓ ¿ «í φΓ«¼, σ«Γ∩ ñ½∩ φΓ«ú« »«ΓαÑíπÑΓß∩ »Ñ-
  9595.  
  9596.         TASM2 #3-5/䫬              = 226 =
  9597.  
  9598.         αÑñáóáΓ∞ ΓαÑΓ¿⌐ »áαá¼ÑΓα.
  9599.  
  9600.              Æá¬ ¬á¬ óδ º¡áÑΓÑ, úñÑ ¡áσ«ñ¿Γß∩ ΓѬßΓ ó »á¼∩Γ¿, ñ½∩  τΓÑ¡¿∩
  9601.         ßΓ᫬«óδσ  ñá¡¡δσ  ó  ßΓ᫬«ó«Ñ »α«ßΓαá¡ßΓó« ¬áªñδ⌐ αáº, ¬«úñá óδ
  9602.         σ«Γ¿ΓÑ ¡á»ÑτáΓáΓ∞ ß««íΘÑ¡¿Ñ, óδ  ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  ¿¡ßΓαπ¬µ¿ε
  9603.         PEEK.  è«úñá  óδ  ºáóÑαΦ¿ΓÑ »ÑτáΓ∞ ß««íΘÑ¡¿∩, óδ ¼«ªÑΓÑ «Γíα«ß¿Γ∞
  9604.         ¡Ñ¡πª¡πε ßΓ᫬π. àß½¿ «¡á óá¼ »«ΓαÑíπÑΓß∩ ß¡«óá, «¡á  íπñÑΓ  ñ«ß-
  9605.         Γπ»¡á ó ßÑú¼Ñ¡ΓÑ ¬«ñá.
  9606.  
  9607.              éδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ τ¿ß½«  ñ«ßΓπ»¡δσ  ó  φΓ«⌐  »«ñ»α«úαá¼¼Ñ
  9608.         íá⌐Γ. é τáßΓ¡«ßΓ¿,  óδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ τ¿ß½« íá⌐Γ, »αÑñΦÑßΓóπε-
  9609.         Θ¿σ ΓѬßΓπ.  çá¼Ñ¡¿ΓÑ »α«ßΓ« óßÑ, ¬α«¼Ñ ¬«¡Ñτ¡«⌐ ¿¡ßΓαπ¬µ¿¿ óáΦ¿¼
  9610.         ß«íßΓóÑ¡¡δ¼ ¬«ñ«¼:  Γᬠ¬á¬ óδ º¡áÑΓÑ, úñÑ ¡áσ«ñ¿Γß∩ »«ñ»α«úαá¼¼á
  9611.         ¿ ¬á¬ «¡á óѽ¿¬á, ñ½∩ ÑÑ »ÑαѺỿ߿ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ BLOAD. ùΓ«
  9612.         ¬áßáÑΓß∩ Σá⌐½á .EXE Æπαí« üÑ⌐ß¿¬á,  Γ« ¡¿τÑú« ¼Ñ¡∩Γ∞ ¡Ñ »α¿ñÑΓß∩,
  9613.         σ«Γ∩ óß∩ »α«úαá¼¼á íπñÑΓ ΓÑ»Ñα∞ ñαπú«⌐.
  9614.  
  9615.              Äíδτ¡« φëà¼ÑΓ«ñ ¡Ñ ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼δ¼. æ«σαá¡Ñ¡¿Ñ  ßΓ᫬
  9616.         ó  »α«ßΓαá¡ßΓóÑ ¬«ñá ¿¡«úñá »«½Ñº¡«, ¡« ºá¼Ñ¡π µÑ½¿¬«¼ «ñ¡«⌐ »«ñ-
  9617.         »α«úαá¼¼δ ñαπú«⌐ ½πτΦÑ «ßπΘÑßΓó½∩Γ∞ ß »«¼«Θ∞ε CALL ABSOLUTE.
  9618.  
  9619.  
  9620.  
  9621.         TASM2 #3-5/䫬              = 227 =
  9622.  
  9623.                                 Ä»ÑαáΓ«α CALL ABSOLUTE                         
  9624.         -----------------------------------------------------------------
  9625.  
  9626.              Å« ¡Ñ¬«Γ«αδ¼ »α¿τ¿¡á¼ ó απ¬«ó«ñßΓóÑ »« Æπαí« üÑ⌐ß¿¬π «í «»Ñ-
  9627.         αáΓ«αÑ  CALL  ABSOLUTE  αáß߬áºδóáÑΓß∩ ñ«ó«½∞¡« ¬αáΓ¬«. ÅÑαóá∩ ¿º
  9628.         ¡¿σ ß«ßΓ«¿Γ ó Γ«¼, τΓ« Æπαí« üÑ⌐ß¿¬ ¡Ñ ¿¼ÑÑΓ ßπΘÑßΓóÑ¡¡«ú« π»αáó-
  9629.         ½Ñ¡¿∩ Γᬿ¼¿ »«ñ»α«úαἼἿ. é«-óΓ«αδσ, ΓᬿѠ»«ñ»α«úαá¼¼δ «íδτ¡«
  9630.         ¿ß»«½∞ºπεΓß∩, »«Γ«¼π τΓ« «¡¿  í뫨  ¡á»¿ßá¡δ  ñ½∩  ¿¡ΓÑα»αÑΓáΓ«αá
  9631.         üÑ⌐ß¿¬á.  Æπαí«  üÑ⌐ß¿¬ ¡áßΓ«½∞¬« ßπΘÑßΓóÑ¡¡« «Γ½¿τáÑΓß∩ «Γ ¿¡ΓÑ-
  9632.         α»αÑΓáΓ«αá üÑ⌐ß¿¬á, τΓ« ΓᬿѠ»α«úαá¼¼δ ¼«úπΓ ó ¡Ñ¼ ¡Ñ  αáí«ΓáΓ∞.
  9633.         é-ΓαÑΓ∞¿σ,  íπñπΘ¿Ñ  «»Ñαᵿ«¡¡δÑ  ß¿ßΓÑ¼δ ¼«úπΓ ¡Ñ ñ«»π߬áΓ∞ ¿ß-
  9634.         »«½∞º«óá¡¿∩ »«ñ»α«úαá¼¼ CALL ABSOLUTE. é τáßΓ¡«ßΓ¿,  «»Ñαᵿ«¡¡δÑ
  9635.         ß¿ßΓѼδ,  úñÑ τÑΓ¬« αẽ¿τáÑΓß∩ »α«ßΓαá¡ßΓó« ¬«ñá ¿ ñá¡¡δσ, ¼«úπΓ
  9636.         ¡Ñ  »«ºó«½∩Γ∞  »α«µÑßß«απ  óδ»«½¡∩Γ∞  ¿¡ßΓαπ¬µ¿¿,  ¡áσ«ñ∩Θ¿Ñß∩  ó
  9637.         »α«ßΓαá¡ßΓóÑ  ñá¡¡δσ. é-τÑΓóÑαΓδσ, »«ñ»α«úαá¼¼δ, óδºδóáѼδÑ ß »«-
  9638.         ¼«Θ∞ε CALL ABSOLUTE, ¼«úπΓ ó«ß»α¿¡¿¼áΓ∞ Γ«½∞¬«  »α«ßΓδÑ  µÑ½«τ¿ß-
  9639.         ½Ñ¡¡δÑ  »áαá¼ÑΓαδ-»ÑαѼѡ¡δÑ. ¥Γ« ¡Ñ ΓᬫѠπª ßÑα∞Ѻ¡«Ñ «úαá¡¿τÑ-
  9640.         ¡¿Ñ, ¬á¬ ¬áªÑΓß∩, óÑß∞ »α«ßΓδÑ µÑ½δÑ »ÑαѼѡ¡δÑ  ¼«úπΓ  ß«ñÑαªáΓ∞
  9641.         ßÑú¼Ñ¡Γ ¿ ß¼ÑΘÑ¡¿Ñ »ÑαѼѡ¡«⌐ ½εí«ú« Γ¿»á. Äñ¡á¬«, »α¿ φΓ«¼ »ÑαÑ-
  9642.         ñáτá »áαá¼ÑΓα«ó ¼«ªÑΓ »«ΓαÑí«óáΓ∞ ¡Ñ߬«½∞¬« í«½∞ΦÑ óαѼѡ¿.
  9643.  
  9644.              Å« φΓ«⌐ »α¿τ¿¡Ñ ¼δ íπñѼ »αÑñ»«½áúáΓ∞,  τΓ«  óδ  ¿ß»«½∞ºπÑΓÑ
  9645.         «»Ñαᵿ«¡¡πε ß¿ßΓѼπ MS-DOS óÑαß¿¿ 2.0 ¿½¿ ßΓáαΦÑ ¿ τΓ« φΓá  «»Ñ-
  9646.         αᵿ«¡¡á∩  ß¿ßΓѼᠠñ«»π߬áÑΓ  óδ»«½¡Ñ¡¿Ñ »α«µÑßß«α«¼ ¿¡ßΓαπ¬µ¿⌐,
  9647.         ¡áσ«ñ∩Θ¿σß∩ ó ½εí«¼ ¼ÑßΓÑ »á¼∩Γ¿.
  9648.  
  9649.  
  9650.  
  9651.  
  9652.         TASM2 #3-5/䫬              = 228 =
  9653.  
  9654.                 ÄíαáΘÑ¡¿Ñ CALL ABSOLUTE ¬ Σ¿¬ß¿α«óá¡¡δ¼ áñαÑßá¼ »á¼∩Γ¿         
  9655.         -----------------------------------------------------------------
  9656.  
  9657.              àß½¿ π óáß ¿¼ÑÑΓß∩ ßѼÑ⌐ßΓó« »α«úαá¼¼, ¬«Γ«αδÑ ß«ó¼ÑßΓ¡« ¿ß-
  9658.         »«½∞ºπεΓ  «ñ¿¡ ¿ Γ«Γ ªÑ ¡áí«α »«ñ»α«úαá¼¼, Γ« ¿¼ÑÑΓ ß¼δß½ αẼÑß-
  9659.         Γ¿Γ∞ φΓ¿ »«ñ»α«úαá¼¼δ »« Σ¿¬ß¿α«óá¡¡«¼π áñαÑßπ »á¼∩Γ¿. Æπαí« üÑ⌐-
  9660.         ß¿¬ »«ºó«½∩ÑΓ óá¼ ñ½∩ φΓ«⌐ µÑ½¿ ºáαѺÑαó¿α«óáΓ∞ áñαÑßá »á¼∩Γ¿  (ó
  9661.         «í½áßΓ¿ ßΓáαΦ¿σ áñαÑß«ó) ß »«¼«Θ∞ε ¬«¼á¡ñδ MEMSET.
  9662.  
  9663.              é¼ÑßΓÑ ß ¬«¼á¡ñ«⌐ MEMSET τáßΓ« ¿ß»«½∞ºπÑΓß∩  ENDMEM.  ENDMEM
  9664.         ó«ºóαáΓ¿Γ  ñ½¿¡¡«Ñ  µÑ½«Ñ,  »αÑñßΓáó½∩εΘÑÑ ß«í«⌐ »«ß½Ññ¡εε ∩τÑ⌐¬π
  9665.         »á¼∩Γ¿, ¬«Γ«απε  ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞  ß¬«¼»¿½¿α«óá¡¡á∩  »α«úαá¼¼á
  9666.         Æπαí«  üÑ⌐ß¿¬á. Å«ñ»α«úαá¼¼δ «íδτ¡« αẼÑΘáεΓß∩ ó ßΓáαΦ¿σ áñαÑßáσ
  9667.         »á¼∩Γ¿ »« ¡Ñ¬«Γ«α«¼π Σ¿¬ß¿α«óá¡¡«¼π  áñαÑßπ,  ¡áτ¿¡á∩  ß  áñαÑßá,
  9668.         αáß»«½«ªÑ¡¡«ú« ¡¿ªÑ φΓ«ú« »αÑñѽá.
  9669.  
  9670.              àß½¿ π óáß ÑßΓ∞ Γᬫ⌐ ¡áí«α »«ñ»α«úαá¼¼, Γ« óδºδóáΓ∞ ¿σ ¡πª-
  9671.         ¡« íπñÑΓ ß »«¼«Θ∞ε ó맮óá CALL ABSOLUTE. ùΓ«íδ »«¼ÑßΓ¿Γ∞ »«ñ»α«ú-
  9672.         αá¼¼δ ó ßΓáαΦ¿Ñ áñαÑßá »á¼∩Γ¿, ¿ß»«½∞ºπ⌐ΓÑ ¬«¼á¡ñπ  BLOAD.  ùΓ«íδ
  9673.         ºáñáΓ∞ áñαÑß ßÑú¼Ñ¡Γá, »« ¬«Γ«α«¼π ñ«½ª¡á ºáúαπªáΓ∞ß∩ »«ñ»α«úαá¼-
  9674.         ¼á, ¿ß»«½∞ºπ⌐ΓÑ «»αÑñѽѡ¿Ñ DEF SEG ¿ ∩ó¡« π¬áª¿ΓÑ  áñαÑß  ß¼ÑΘÑ-
  9675.         ¡¿∩, »« ¬«Γ«α«¼π ÑÑ ¡πª¡« ºáúαπº¿Γ∞.
  9676.  
  9677.              è«úñá óδ ß«ºñáÑΓÑ φΓ¿ »«ñ»α«úαá¼¼δ ß »«¼«Θ∞ε Æπαí« ÇßßѼí½Ñ-
  9678.         αá, ¡πª¡« ß«í½εñáΓ∞ ß½ÑñπεΘ¿Ñ »αáó¿½á:
  9679.  
  9680.              1.  àß½¿ óáΦá »α«úαἼᠡѠ»αÑñ¡áº¡áτÑ¡á ñ½∩ ºá»π߬ᠻ«  «ñ-
  9681.                  ¡«¼π  (¿ Γ«½∞¬« »« «ñ¡«¼π) áñαÑßπ, óßÑ »ÑαÑñáτ¿ π»αáó½Ñ-
  9682.                  ¡¿∩ ó »α«úαἼѠ(JMP ¿ CALL) ñ«½ª¡δ íδΓ∞ »«½¡«ßΓ∞ε »ÑαÑ-
  9683.                  ¼ÑΘáѼδ.  (Å«½¡«Ñ  «íßπªñÑ¡¿Ñ »ÑαѼÑΘáѼ«ú« ¬«ñá óδσ«ñ¿Γ
  9684.                  ºá αἬ¿ ñá¡¡«⌐ ú½áóδ.)
  9685.  
  9686.              2.  àß½¿ óáΦá »α«úαἼᠻαÑñ¡áº¡áτÑ¡á ñ½∩ ºá»π߬á Γ«½∞¬«  »«
  9687.                  «ñ¡«¼π  áñαÑßπ, óδ ñ«½ª¡δ π¬áºáΓ∞ φëàáñαÑß ó ñ¿αÑ¬Γ¿óÑ
  9688.                  ORG ¿ßσ«ñ¡«ú« ¬«ñá ÇßßѼí½Ñαá.
  9689.  
  9690.  
  9691.  
  9692.  
  9693.         TASM2 #3-5/䫬              = 229 =
  9694.  
  9695.                     ÄíαáΘÑ¡¿Ñ CALL ABSOLUTE ¬ ñαπú¿¼ áñαÑßá¼ »á¼∩Γ¿            
  9696.         -----------------------------------------------------------------
  9697.  
  9698.              Æπαí« üÑ⌐ß¿¬ »«ºó«½¿Γ óá¼ ¿ß»«½∞º«óáΓ∞ «íαáΘÑ¡¿Ñ CALL  ABSO-
  9699.         LUTE ¬ ∩τÑ⌐¬á¼ »á¼∩Γ¿, ¬«Γ«αδÑ »α¿ ¬áªñ«¼ ºá»π߬Ѡ»α«úαá¼¼δ ¼«úπΓ
  9700.         íδΓ∞ αẽ¿τ¡δ¼¿. Æ¿»¿τ¡δ⌐ ß»«ß«í ßñѽáΓ∞ φΓ« ºá¬½ετáÑΓß∩  ó  ºáú-
  9701.         απº¬Ñ »«ñ»α«úαá¼¼δ ÇßßѼí½Ñαá ó ¼áßß¿ó, αáß»«½«ªÑ¡¡δ⌐ ó¡Ñ «íδτ¡«-
  9702.         ú« »α«ßΓαá¡ßΓóá ñá¡¡δσ.
  9703.  
  9704.              Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ:
  9705.  
  9706.         DEFINT A-Z
  9707.         $DYNAMIC                     '¼áßß¿óδ íπñπΓ ñ¿¡á¼¿τÑ߬¿¼¿
  9708.         DIM ROUTINEARRAY(10000)      'óδñѽѡ« 20002 íá⌐Γ
  9709.         'ºñÑß∞ ß«ñÑনΓß∩ αẽ¿τ¡δ⌐ ¬«ñ
  9710.         WHERESEG%=VARSEG(ROUTINEARRAY(0)) 'áñαÑß ßÑú¼Ñ¡Γá
  9711.         WHEREOFFSET%=VARPTR(ROUTINEARRAY(0)) 'áñαÑß ß¼ÑΘÑ¡¿∩
  9712.         DEF SEG=WHERESEG%             'ºáñáΓ∞ ßÑú¼Ñ¡Γ »« π¼«½τá¡¿ε
  9713.         BLOAD"COMFILE",WHEREOFFSET%   'ßτ¿ΓáΓ∞ »α«úαá¼¼π
  9714.         CALL ABSOLUTE WHEREOFFSET%(PARAMETER%) 'óδºóáΓ∞ »«ñ»α«úαá¼¼π
  9715.         DEF SEG                       'óÑα¡πΓ∞ß∩ ¬ º¡áτÑ¡¿ε »«
  9716.                                       'π¼«½τá¡¿ε
  9717.  
  9718.              àß½¿ óδ σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ ¡Ñ߬«½∞¬« »α«úαá¼¼,  Γ« ¼«ª¡« »«
  9719.         «τÑαÑñ¿ ºáúαπªáΓ∞ ¬áªñπε ¿º ¡¿σ ó «ñ¿¡ ¿ Γ«Γ ªÑ  ¼áßß¿ó. ìᬫ¡Ñµ,
  9720.         Ñß½¿ óδ σ«Γ¿ΓÑ ¿º¼Ñ¡¿Γ∞ τáßΓ∞ ¼áßß¿óá,  φΓ« ¼«ª¡« ßñѽáΓ∞, »α«ßΓ«
  9721.         ¿º¼Ñ¡¿ó º¡áτÑ¡¿∩ óδíαá¡¡δσ φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá.
  9722.  
  9723.              èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞, »«ñ»α«úαá¼¼δ, ß«ºñá¡¡δÑ ñ½∩  ó맮óá  ß
  9724.         »«¼«Θ∞ε CALL ABSOLUTE, ¼«ª¡« º¡áτ¿Γѽ∞¡« »α«ΘÑ ¡áσ«ñ¿Γ∞ ¿ ¼«ñ¿Σ¿-
  9725.         µ¿α«óáΓ∞, τѼ ΓÑ, ñ½∩  ¬«Γ«αδσ  ¿ß»«½∞ºπÑΓß∩  ñ¿αÑ¬Γ¿óá  $INLINE.
  9726.         Æαπñ¡«ßΓ∞  ß«ßΓ«¿Γ  Γ«½∞¬«  ó  Γ«¼, τΓ« ΓᬿѠ»«ñ»α«úαá¼¼δ ñ«½ª¡δ
  9727.         íδΓ∞ »«½¡«ßΓ∞ε »ÑαѼÑΘáÑ¼δ¼¿. ä½∩ ¡Ñí«½∞Φ¿σ »«ñ»α«úαá¼¼ φΓ« ¼«ªÑΓ
  9728.         ¡Ñ »αÑñßΓáó½∩Γ∞ ß«í«⌐ »α«í½Ñ¼π. ä½∩ ß½«ª¡δσ ªÑ »«ñ»α«úαá¼¼ »¿ßáΓ∞
  9729.         »«½¡«ßΓ∞ε »ÑαѼÑΘáѼδ⌐ ¬«ñ ¼«ªÑΓ «¬áºáΓ∞ß∩ ñѽ«¼ ¡Ñ»α«ßΓδ¼.
  9730.  
  9731.              éδ ¼«ªÑΓÑ ΓᬪѠ¿ß»«½∞º«óáΓ∞ BLOAD ñ½∩ ºáúαπº¬¿  »«ñ»α«úαá¼¼
  9732.         ó  ßΓ᫬«óδÑ  »ÑαѼѡ¡δÑ.  çñÑß∞  ¡πª¡« ß«í½εñáΓ∞ «ß«íπε «ßë᫪-
  9733.         ¡«ßΓ∞. àß½¿ óδ »δΓáÑΓÑß∞ ºáúαπº¿Γ∞ »α«úαá¼¼π, ñ½¿¡á ¬«Γ«α«⌐  »αÑ-
  9734.         óδΦáÑΓ  ñ½¿¡π ßΓ᫬«ó«⌐ »ÑαѼѡ¡«⌐, Γ« óδ ºá»«αΓ¿ΓÑ ¬á¬πε-Γ« ñαπ-
  9735.         úπε ßΓ᫬π. àß½¿ φΓá ßΓα«¬á ¼«ñ¿Σ¿µ¿απÑΓß∩, τáßΓ∞ óáΦÑ⌐ ºáúαπªÑ¡-
  9736.         ¡«⌐ »α«úαá¼¼δ ΓᬪѠ¼«ªÑΓ ¼«ñ¿Σ¿µ¿α«óáΓ∞ß∩.
  9737.  
  9738.              æΓ᫬«óδÑ »ÑαѼѡ¡δÑ ΓᬪѠ¼«ª¡« »ÑαѼÑΘáΓ∞. äáªÑ Ñß½¿  »«ñ-
  9739.         »α«úαἼᠠºáúαπªÑ¡á ó ßΓ᫬𠬫ααÑ¬Γ¡«, óá¼ ß½ÑñπÑΓ »«ºáí«Γ¿Γ∞ß∩
  9740.         «í ¿ß»«½∞º«óá¡¿¿ VARSEG ¿ VARPTR ñ½∩ Γ«ú«, τΓ«íδ πßΓá¡«ó¿Γ∞ áñαÑß
  9741.  
  9742.         TASM2 #3-5/䫬              = 230 =
  9743.  
  9744.         ßΓ᫬¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ »«»δΓ¬«⌐ ó맮óá φΓ«⌐ »«ñ»α«úαá¼¼δ.
  9745.  
  9746.              æΓ᫬¿ Æπαí« üÑ⌐ß¿¬á σαá¡∩Γß∩ ¡Ñ Γá¬, ¬á¬ τ¿ß½Ñ¡¡δÑ »ÑαѼѡ-
  9747.         ¡δÑ.  àß½¿  óδ  óδ»«½¡∩ÑΓÑ «»ÑαáΓ«α VARPTR(A%), Γ« »«½πτ¿ΓÑ áñαÑß
  9748.         µÑ½«⌐ »ÑαѼѡ¡«⌐ A%. VARPTR(A$) ñáßΓ áñαÑß «»¿ßáΓѽ∩  ßΓ᫬¿  ñ½∩
  9749.         A$. ƒτÑ⌐¬á »á¼∩Γ¿, «ΓßΓ«∩Θá∩ ¡á 2 íá⌐Γá, íπñÑΓ ß«ñÑαªáΓ∞ ñÑ⌐ßΓó¿-
  9750.         Γѽ∞¡δ⌐ áñαÑß ßΓ᫬¿ ó ßΓ᫬«ó«¼ »α«ßΓαá¡ßΓóÑ. ùΓ«íδ »«½πτ¿Γ∞ Γ«Γ
  9751.         ªÑ  αѺπ½∞ΓáΓ, τΓ« ¿ ß VARPTR(A%), óá¼ »α¿Φ½«ß∞ íδ ßñѽáΓ∞ τΓ«-Γ«
  9752.         óα«ñÑ ß½ÑñπεΘÑú«:
  9753.  
  9754.              A%=VARPTR(A$)
  9755.              A%=A%+2
  9756.              STRINGADDRESS=CVI(CHR$(PEEK(A%)+CHR$(PEEK(A%+1)))
  9757.  
  9758.              ÉẼÑΘÑ¡¿Ñ »«ñ»α«úαá¼¼ ÇßßѼí½Ñαá ó ß¿¼ó«½∞¡δσ ßΓ᫬áσ »«½∞-
  9759.         ºπÑΓß∩ »«»π½∩α¡«ßΓ∞ε, óÑñ∞ ¡á ßἫ¼ ñѽѠÑßΓ∞ «»áß¡«ßΓ∞, τΓ«  µÑ-
  9760.         ½«τ¿ß½Ñ¡¡δÑ ¼áßß¿óδ ¼«úπΓ íδΓ∞  ¿¡ñѬ߿α«óá¡δ  ¿  ßΓÑαΓδ.  ì« ñ½∩
  9761.         »«ñ»α«úαá¼¼, óδºδóáѼδσ ß »«¼«Θ∞ε CALL ABSOLUTE, ½πτΦÑ  ¿ß»«½∞º«-
  9762.         óáΓ∞ µÑ½«τ¿ß½Ñ¡¡δÑ ¼áßß¿óδ, τΓ« »«¼«ªÑΓ ¿ºíѪáΓ∞  Γαπñ¡«ßΓÑ⌐  »α¿
  9763.         ñ«ßΓπ»Ñ ¬ »«ßΓ«∩¡¡« »ÑαѼÑΘáÑ¼δ¼ ßΓ᫬«óδ¼ ñá¡¡δ¼.
  9764.  
  9765.              àß½¿ óδ σ«Γ¿ΓÑ ¿ºíѪáΓ∞ ¿ß»«½∞º«óá¡¿∩ BLOAD, Γ« ¼«ª¡«  ΓᬪÑ
  9766.         ºáúαπº¿Γ∞  Σá⌐½δ  .COM  ó ßΓ᫬¿ ß »«¼«Θ∞ε óó«ñá-óδó«ñá ñó«¿τ¡«ú«
  9767.         Σá⌐½á, Γ« ÑßΓ∞, «Γ¬αδΓ¿∩ Σá⌐½á .COM, ¬á¬ ñó«¿τ¡«ú« Σá⌐½á, ¿  ßτ¿-
  9768.         Γδóá¡¿∩ ó ßΓ᫬𠬫ααÑ¬Γ¡«ú« τ¿ß½á íá⌐Γ.  Æ«Γ ªÑ »«ñσ«ñ ¼«ª¡« ¿ß-
  9769.         »«½∞º«óáΓ∞  ñ½∩ ßτ¿Γδóá¡¿∩ ñá¡¡δσ ó µÑ½«τ¿ß½Ñ¡¡δ⌐ ¼áßß¿ó.  Äñ¡á¬«
  9770.         BLOAD óδ»«½¡∩ÑΓß∩ íδßΓαÑÑ ¿ »«½∞º«óáΓ∞ß∩ φΓ«⌐ ¬«¼á¡ñ«⌐ »α«ΘÑ.
  9771.  
  9772.  
  9773.  
  9774.  
  9775.         TASM2 #3-5/䫬              = 231 =
  9776.  
  9777.              äαπú¿Ñ »α«í½Ñ¼δ, ó«º¡¿¬áεΘ¿Ñ »α¿ ¿ß»«½∞º«óá¡¿¿ CALL ABSOLUTE      
  9778.         -----------------------------------------------------------------
  9779.  
  9780.              æτ¿Γδóá¡¿Ñ ¬«ñá ß ñ¿ß¬á ß »«¼«Θ∞ε CALL  ABSOLUTE  ßó∩ºá¡«  ß
  9781.         ¡Ñ߬«½∞¬¿¼¿  ßπΘÑßΓóÑ¡¡δ¼¿ ¡Ññ«ßΓáΓ¬á¼¿, ¡á¿í«½ÑÑ ßπΘÑßΓóÑ¡¡δ⌐ ¿º
  9782.         ¬«Γ«αδσ «Γ¡«ß¿Γß∩ ¬ ΓαÑí«óá¡¿ε »ÑαѼÑßΓ¿¼«ßΓ¿ (¬á¬ ¼δ πªÑ «Γ¼Ñτá-
  9783.         ½¿ αá¡ÑÑ).
  9784.  
  9785.              äαπú¿Ñ ßÑα∞Ѻ¡δÑ »α«í½Ñ¼δ ºá¬½ετáεΓß∩  ó  Γ«¼,  »«ñ»α«úαá¼¼δ
  9786.         ñ«½ª¡δ  ßτ¿ΓδóáΓ∞ß∩  ß  ñ¿ß¬á «Γñѽ∞¡« «Γ «ß¡«ó¡«⌐ »α«úαá¼¼δ (»α¿
  9787.         φΓ«¼ »«∩ó½∩εΓß∩ ñ«»«½¡¿Γѽ∞¡δѠ󫺼«ª¡«ßΓ¿ ó«º¡¿¬¡«óÑ¡¿∩ «Φ¿í«¬).
  9788.         ÆαÑíπѼδ⌐  ¬«ñ  ¼«ªÑΓ «ΓßπΓßΓó«óáΓ∞ ¡á ñ¿ß¬Ñ, ¿½¿ ¼«ªÑΓ íδΓ∞ »«ó-
  9789.         αѪñÑ¡ (ºá»«ατÑ¡).
  9790.  
  9791.              ÆαÑΓ∞∩ »α«í½Ñ¼á ß«ßΓ«¿Γ ó Γ«¼, τΓ«  óαѼ∩,  ¡Ñ«íσ«ñ¿¼«Ñ  ñ½∩
  9792.         ßτ¿Γδóá¡¿Ñ ¬«ñá ß ñ¿ß¬á, ¼«ªÑΓ ßóÑßΓ¿ ¡á ¡ÑΓ ßá¼π »α¿τ¿¡π ¿ß»«½∞-
  9793.         º«óá¡¿Ñ »«ñ»α«úαá¼¼δ ¡á ÇßßѼí½ÑαÑ ó¼ÑßΓ« Æπαí« üÑ⌐ß¿¬á.
  9794.  
  9795.              é«»αѬ¿ φΓ¿¼ ¬á¼¡∩¼ »αÑΓ¬¡«óÑ¡¿∩ ú¿í¬«ßΓ∞, ¬«Γ«απε ¼«ª¡« »«-
  9796.         ½πτ¿Γ∞ »α¿ ßτ¿Γδóá¡¿¿ αẽ¿τ¡δσ »«ñ»α«úαá¼¼ ¿½¿ ¡á½¿τ¿Ñ ¬«ñá, ¬«-
  9797.         Γ«αδ⌐ ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞ »«ñ  π»αáó½Ñ¡¿Ñ¼  »α«úαá¼¼δ,  á  ΓᬪÑ
  9798.         π¼Ñ¡∞ΦÑ¡¿Ñ  «íΩѼᠬ«ñá, ¬«Γ«αδ⌐ ñ«½ªÑ¡ »α¿ßπΓßΓó«óáΓ∞ ó »á¼∩Γ¿ -
  9799.         φΓ« ñ«ßΓáΓ«τ¡« óÑ߬¿Ñ ñ«ó«ñδ ó »«½∞ºπ »α¿¼Ñ¡Ñ¡¿∩ ¬«¡ßΓαπ¬µ¿¿ CALL
  9800.         ABSOLUTE.
  9801.  
  9802.                                     CALL INTERRUPT                             
  9803.         -----------------------------------------------------------------
  9804.  
  9805.              ÆαÑΓ¿⌐ ¿ »«ß½Ññ¡¿⌐ ß»«ß«í «íαáΘÑ¡¿∩ ¬ »«ñ»α«úαἼἠ ¡á  Çß-
  9806.         ßѼí½ÑαÑ  ¿º Æπαí« üÑ⌐ß¿¬á - φΓ« ó«º¼«ª¡« ßá¼δ⌐ ß½«ª¡δ⌐ ¼ÑΓ«ñ ¿ß-
  9807.         »«½∞º«óá¡¿∩ ÇßßѼí½Ñαá ¿ «ñ¡«óαѼѡ¡« ßá¼δ⌐  »α«ßΓ«⌐  ß»«ß«í  Ñú«
  9808.         ¿ß»«½∞º«óá¡¿∩ ¿ºíѪáΓ∞.
  9809.  
  9810.              ü«½∞Φ¿¡ßΓó« »α«úαá¼¼¿ßΓ«ó ¿ß»«½∞ºπεΓ CALL INTERRUPT ñ½∩ ñ«ß-
  9811.         Γπ»á  ¬  «íδτ¡δ¼ «íß½πª¿óáεΘ¿σ ßαÑñßΓó MS-DOS. é φΓ«⌐ ß¿Γπᵿ¿ «í
  9812.         áßßÑ¼í½¿α«óá¡¿¿ ¼«ª¡« ¡Ñ íÑß»«¬«¿Γ∞ß∩. ì« ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞ ß½Ñ-
  9813.         ñπεΘÑÑ:
  9814.  
  9815.                -----------------------------------------
  9816.                 ìáºóá¡¿Ñ                        ÉÑú¿ßΓα
  9817.                -----------------------------------------
  9818.                 REG0                              ö½áú¿
  9819.                 REG1                              AX
  9820.                 REG2                              BX
  9821.                 REG3                              CX
  9822.  
  9823.         TASM2 #3-5/䫬              = 232 =
  9824.  
  9825.                 REG4                              DX
  9826.                 REG5                              SI
  9827.                 REG6                              DI
  9828.                 REG7                              BP
  9829.                 REG8                              DS
  9830.                 REG9                              ES
  9831.                -----------------------------------------
  9832.  
  9833.              ùΓ«íδ ºáñáΓ∞ º¡áτÑ¡¿Ñ αÑú¿ßΓαá, ¿ß»«½∞ºπ⌐ΓÑ «»ÑαáΓ«α REG:
  9834.  
  9835.              REG 3,&H0F01
  9836.  
  9837.              ¥Γ«Γ «»ÑαáΓ«α πßΓá¡«ó¿Γ αÑú¿ßΓα CX ó ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ  º¡á-
  9838.         τÑ¡¿Ñ  0F01.  ÉÑú¿ßΓα CH »«½πτ¿Γ ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ º¡áτÑ¡¿Ñ 0F, á
  9839.         αÑú¿ßΓα CL - 01.
  9840.  
  9841.              ùΓ«íδ ßτ¿ΓáΓ∞ º¡áτÑ¡¿Ñ αÑú¿ßΓαá, ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε REG:
  9842.  
  9843.              A%=REG(3)
  9844.  
  9845.              ¥Γ«Γ «»ÑαáΓ«α »α¿ßó«¿Γ »ÑαѼѡ¡«⌐ A%  ΓѬπΘÑÑ  º¡áτÑ¡¿Ñ  αÑ-
  9846.         ú¿ßΓαá CX.
  9847.  
  9848.              æ½ÑñπεΘ¿⌐ »α¿¼Ñα »α¿óÑñÑΓ ¬ «íαáΓ¡«⌐  »α«¬απΓ¬Ñ  ¿º«íαáªÑ¡¿∩
  9849.         ¡á φ¬αá¡Ñ (ß« ßΓ᫬¿ 1 ñ« ßΓ᫬¿ 24):
  9850.  
  9851.         REG  3,0                    'ßΓ᫬á 0, »«º¿µ¿∩ 0 ("óÑαΦ¿¡á")
  9852.         REG  4,&H175F               'ßΓ᫬á 23, »«º¿µ¿∩ 79 ("ñ¡«")
  9853.         REG  2,&H70                 'µóÑΓ 7,0
  9854.         REG  1,&H0701               'Σπ¡¬µ¿∩ BIOS 7, ßñó¿¡πΓ∞ ¡á 1 ßΓ᫬π
  9855.         CALL INTERRUPT &H10         'ó¿ñÑ«»αÑαδóá¡¿Ñ 10h
  9856.  
  9857.              ìỿßáΓ∞ φ¬ó¿óá½Ñ¡Γ¡πε »α«úαá¼¼π ¡á ÇßßѼí½ÑαÑ ú«αáºñ« Γαπñ-
  9858.         ¡ÑÑ, ¬ Γ«¼π ªÑ «¡á ½πτΦÑ αáí«ΓáΓ∞ ¡Ñ íπñÑΓ.
  9859.  
  9860.              éß∩ »α«µÑñπαá «íδτ¡« «τÑ¡∞ »α«ßΓá. Äñ¡á¬« í«½ÑÑ ¬óá½¿Σ¿µ¿α«-
  9861.         óá¡¡δÑ  »α«úαá¼¼¿ßΓδ »αÑαδóá¡¿∩ ñ½∩ ñαπú¿σ µÑ½Ñ⌐, á ¡Ñ Γ«½∞¬« ñ½∩
  9862.         ó맮óá «íδτ¡δσ «íß½πª¿óáεΘ¿σ ßαÑñßΓó MS-DOS.
  9863.  
  9864.              ÅαÑαδóá¡¿∩ τáßΓ« ¿ß»«½∞ºπεΓß∩  ñ½∩  π»αáó½Ñ¡¿∩  πßΓα«⌐ßΓóἿ
  9865.         (¡á»α¿¼Ñα, ñáΓτ¿¬á¼¿ ¿º¼ÑαÑ¡¿∩ ΓѼ»ÑαáΓπαδ, πñá½Ñ¡¡δ¼¿ ºá»¿ßδóáε-
  9866.         Θ¿¼¿ πßΓα«⌐ßΓóἿ, Γá⌐¼ÑαἿ ¿ Γ.ñ.).  ùΓ«íδ  ¿ß»«½∞º«óáΓ∞  ΓᬫÑ
  9867.         »αÑαδóá¡¿Ñ, óδ ñ«½ª¡δ ¡á⌐Γ¿ ¡Ñ¿ß»«½∞ºπѼ«Ñ »αÑαδóá¡¿Ñ. (î¡«ú¿Ñ ¿º
  9868.         ¡¿σ ¿ß»«½∞ºπεΓ MS-DOS, á ñαπú¿Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ ΓᬿѠπßΓα«⌐ß-
  9869.         Γóá, ¬á¬ ¡á¬«»¿Γѽ¿ ¡á ¼áú¡¿Γ¡«⌐ ½Ñ¡ΓÑ ¿½¿ πßΓα«⌐ßΓó« »á¼∩Γ¿ Γ¿»á
  9870.         "∩Θ¿¬á üÑα¡π½½¿").
  9871.  
  9872.         TASM2 #3-5/䫬              = 233 =
  9873.  
  9874.  
  9875.              é »α«úαἼѠÆπαí« üÑ⌐ß¿¬á ¡πª¡« ßñѽáΓ∞  Γá¬,  τΓ«íδ  óÑ¬Γ«α
  9876.         »αÑαδóá¡¿⌐ π¬áºδóá½ ¡á »α«úαá¼¼π, ¡á»¿ßá¡¡πε ¡á Æπαí« ÇßßѼí½ÑαÑ.
  9877.         èᬠ«Γ¼ÑτÑ¡« ó απ¬«ó«ñßΓóÑ »« Æπαí« üÑ⌐ß¿¬π, »«ñ»α«úαἼᠠ«íß½π-
  9878.         ª¿óá¡¿∩  »αÑαδóá¡¿∩  ñ«½ª¡á  ß«σαá¡∩Γ∞ º¡áτÑ¡¿∩ αÑú¿ßΓα«ó SS ¿ SP
  9879.         (½εí«⌐ ñαπú«⌐ αÑú¿ßΓα ¼«ªÑΓ ¼«ñ¿Σ¿µ¿α«óáΓ∞ß∩). é  ¬«¡µÑ  »«ñ»α«ú-
  9880.         αá¼¼δ  π»αáó½Ñ¡¿Ñ  τÑαѺ ¿¡ßΓαπ¬µ¿ε IRET »ÑαÑñáÑΓß∩ «íαáΓ¡« Æπαí«
  9881.         üÑ⌐ß¿¬π.
  9882.  
  9883.              ä½∩ «»αÑñѽѡ¿∩ áñαÑßá »«ñ»α«úαá¼¼δ ¿ ºá¡ÑßÑ¡¿∩ Ñú« ó óÑ¬Γ«α
  9884.         »αÑαδóá¡¿⌐ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ πªÑ «»¿ßá¡¡δÑ óδΦÑ ¼ÑΓ«ñδ, ¡« ½πτΦÑ
  9885.         »«¼ÑΘáΓ∞ »«ñ»α«úαá¼¼δ «íß½πª¿óá¡¿∩ »αÑαδóá¡¿⌐  ó  ßΓáαΦ¿Ñ  áñαÑßá
  9886.         »á¼∩Γ¿  ¿½¿  ºáúαπªáΓ∞ ¿σ (ß »«¼«Θ∞ε BLOAD), ¬á¬ »«ñ»α«úαá¼¼δ ñ½∩
  9887.         CALL ABSOLUTE.
  9888.  
  9889.              Å«ñ»α«úαá¼¼δ  «íß½πª¿óá¡¿∩  »αÑαδóá¡¿⌐,  ó¬½ετÑ¡¡δÑ  ó  óáΦπ
  9890.         »α«úαá¼¼π ß »«¼«Θ∞ε ¬«¼á¡ñδ $INLINE, ñ«½ª¡δ íδΓ∞ ¬á¬¿¼-Γ« «íαẫ¼
  9891.         ½«¬á½¿º«óá¡δ. Å«ñ»α«úαá¼¼δ, ºáúαπªÑ¡¡δÑ ß »«¼«Θ∞ε BLOAD  ¿  ºá»¿-
  9892.         ßá¡¡δÑ ó µÑ½«τ¿ß½Ñ¡¡δÑ ¼áßß¿óδ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ »« «»αÑñѽѡ¡«¼π
  9893.         áñαÑßπ, ¡« «¡ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ñ«½ªÑ¡ íδΓ∞ ¿ºóÑßΓÑ¡. Äñ¡á¬«,  αáº-
  9894.         ¼ÑΘÑ¡¿Ñ  «íαáí«Γτ¿¬«ó  »αÑαδóá¡¿⌐  ó Γᬿσ ¼áßß¿óáσ «º¡áτáÑΓ, τΓ«
  9895.         ¬«ñ »«ñ»α«úαá¼¼δ «íß½πª¿óá¡¿∩ »αÑαδóá¡¿∩  ñ«½ªÑ¡  íδΓ∞  »«½¡«ßΓ∞ε
  9896.         »ÑαѼÑßΓ¿¼δ¼.
  9897.  
  9898.              Å« φΓ«⌐ »α¿τ¿¡Ñ »«ñ»α«úαá¼¼δ «íß½πª¿óá¡¿∩ »αÑαδóá¡¿⌐ »«¼ÑΘá-
  9899.         εΓß∩  «íδτ¡« ó Σ¿¬ß¿α«óá¡¡δÑ áñαÑßá (ßΓáαΦ¿Ñ áñαÑßá »á¼∩Γ¿). àß½¿
  9900.         óδ αÑΦ¿½¿ ¿ß»«½∞º«óáΓ∞ Γᬫ⌐ »«ñσ«ñ, πíÑñ¿ΓÑß∞, τΓ« óδ ¡Ñ  ºáí뫨
  9901.         ó¬½ετ¿Γ∞ ó ¿ßσ«ñ¡δ⌐ ¬«ñ Æπαí« ÇßßѼí½Ñαá ¿¡ßΓαπ¬µ¿ε ORG.
  9902.  
  9903.  
  9904.  
  9905.  
  9906.         TASM2 #3-5/䫬              = 234 =
  9907.  
  9908.                                    Åα¿¼Ñα »α«úαá¼¼δ                            
  9909.         -----------------------------------------------------------------
  9910.  
  9911.         FILLIT2$ = CHR$(&HFC)+CHR$(&HF3)+CHR$(&HAB)+CHR(&HCB)
  9912.         '        cld     rep  stow  ret
  9913.         DIM a%(100)                    'µÑ½«τ¿ß½Ñ¡¡δ⌐ ¼áßß¿ó ß ¡π½Ñó묨
  9914.                                        'φ½Ñ¼Ñ¡ΓἿ
  9915.         WHERE%=VARPTR(FILLIT2$)        'ó φΓ«⌐ ∩τÑ⌐¬Ñ σαá¡¿Γß∩ ñ½¿¡á
  9916.         WHERE%=WHERE%+2                'á φΓ« Γ« ¼ÑßΓ«, úñÑ ¡áσ«ñ¿Γß∩
  9917.                                        'áñαÑß ßΓ᫬¿
  9918.         CLS:PRINT PEEK(WHERE%),PEEK(WHERE%+1)
  9919.         HERE%=PEEK(WHERE%)+256*PEEK(WHERE%+1) '¼ÑßΓ«, úñÑ ¡áσ«ñ¿Γß∩
  9920.                                        'ßΓ᫬á
  9921.  
  9922.         DEF SEG                        '¡Ñ ∩ó½∩ÑΓß∩ ºñÑß∞ ¡Ñ«íσ«ñ¿¼δ¼,
  9923.                                        '¡« φΓ« σ«α«Φ¿⌐ ßΓ¿½∞ »α«úαá¼¼¿-
  9924.                                        'α«óá¡¿∩
  9925.  
  9926.         WHERE%=PEEK(0)+256*PEEK(1)
  9927.         DEF SEG=WHERE%                 'ßÑú¼Ñ¡Γ ßΓ᫬¿ - »Ñαó«Ñ ß½«ó«
  9928.                                        '(»« π¼«½τá¡¿ε - DS)
  9929.         REGES%=VARSEG(a%(0))
  9930.         REGSI%=VARPTR(a%(0))
  9931.         REG 1,5%                       '»«¼ÑßΓ¿Γ∞ ó AX º¡áτÑ¡¿Ñ-
  9932.                                        'ºá»«½¡¿Γѽ∞
  9933.         REG 3,101%                     'τ¿ß½« ºá»«½¡∩Ѽδσ φ½Ñ¼Ñ¡Γ«ó
  9934.                                        '(«Γ 1 ñ« 100) - ó CX
  9935.         REG 9,REGES%                   'ßÑú¼Ñ¡Γ ºá»«½¡∩Ѽ«ú« ¼áßß¿óá
  9936.                                        ' -> ó ES
  9937.         REG 6,REGSI%                   'ß¼ÑΘÑ¡¿Ñ »Ñαó«ú« φ½Ñ¼Ñ¡Γá
  9938.                                        '¼áßß¿óá -> ó SI
  9939.         CALL ABSOLUTE HERE%            'ºá»«½¡¿Γ∞ ¼áß߿󠺡áτÑ¡¿Ñ¼ 5
  9940.  
  9941.         DEF SEG
  9942.         FOR i%=0 TO 100:PRINT a%(i%);:HEXT i%
  9943.         PRINT
  9944.         PRINT REG(1),REG(3),REG(9),REG(6):STOP
  9945.  
  9946.         CALL FILLIT(a%(0),-1%,101%)    'ºá»«½¡¿Γ∞ ¼áß߿󠺡áτÑ¡¿Ñ¼
  9947.                                        '-1
  9948.         FOR i%=0 TO 100:PRINT a%(i%);:NEXT i%
  9949.         PRINT
  9950.         END
  9951.  
  9952.         SUB FILLIT INLINE
  9953.         $INLINE &H55,&H88,&HD,&H7E
  9954.  
  9955.         TASM2 #3-5/䫬              = 235 =
  9956.  
  9957.         $INLINE &HE,&H26,&H8B,&HD,&HC4
  9958.         $INLINE &H7E,&HA,&H26,&H8B,&H5
  9959.         $INLINE &HC4,&H7E,&H6,&HFC,&HF3
  9960.         $INLINE &HAB,&H5D
  9961.         END SUB
  9962.  
  9963.         ;Å«ñ»α«úαá¼¼á ñ½∩ »ÑαÑß佬¿ »α«¿ºó«½∞¡«ú« τ¿ß½á φ½Ñ¼Ñ¡Γ«ó
  9964.         ;ß »α«¿ºó«½∞¡δ¼ º¡áτÑ¡¿Ñ¼ ó µÑ½«τ¿ß½Ñ¡¡δ⌐ ¼áßß¿ó ñ½∩
  9965.         ;call absolute. æ¿¡Γá¬ß¿ß ó맮óá ß½ÑñπεΘ¿⌐:
  9966.         ;REG 1,FILLVALUE%           'AX - º¡áτÑ¡¿Ñ-ºá»«½¡¿Γѽ∞
  9967.         ;REG 3,FILLCOUNT%           'CX - τ¿ß½« ºá»«½¡∩Ѽδσ
  9968.         ;                           'φ½Ñ¼Ñ¡Γ«ó
  9969.         ;REG 9,VARSEG(ARRAY(0))     'ES ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ ¼áßß¿óá
  9970.         ;REG 6,VARPTR(ARRAY(0))     'DI - ß¼ÑΘÑ¡¿Ñ »Ñαó«ú« φ½Ñ¼Ñ¡Γá
  9971.         ;                           '¼áßß¿óá
  9972.         ;CALL ABSOLUTE FILLIT2
  9973.         ;FILLIT2 - áñαÑß áíß«½εΓ¡«⌐ »«ñ»α«úαá¼¼δ, á DEG SEG íπñÑΓ
  9974.         ;»« π¼«½τá¡¿ε πßΓá¡áó½¿óáΓ∞ ßÑú¼Ñ¡Γ »α«úαá¼¼δ »ÑαÑñ ó맮ó«¼
  9975.         ;CALL ABSOLUTE ó ß««ΓóÑΓßΓó¿¿ ß FILLIT2.
  9976.  
  9977.         PROGRAM SEGMENT
  9978.         START   PROC FAR             ; ñá½∞¡¿⌐ Γ¿» ó맮óá
  9979.                 ASSUME cs:PROGRAM
  9980.                 push  bp             ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9981.                 cld                  ; «τ¿ßΓ¿Γ∞ Σ½áú ¡á»αáó½Ñ¡¿∩
  9982.                 rep                  ; ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ »«óΓ«α∩-
  9983.                                      ; ÑΓß∩, »«¬á CX ¡Ñ ßΓá¡ÑΓ αáó¡δ¼
  9984.                                      ; 0
  9985.                 stosw                ; ºá»¿ßáΓ∞ AX ó ES:DI ¿ πóѽ¿τ¿Γ∞
  9986.                                      ; DI ¡á 2
  9987.                 pop   bp             ; ó«ßßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ íáºδ
  9988.                 ret                  ; ¼ÑªßÑú¼Ñ¡Γ¡δ⌐  (ñá½∞¡¿⌐) ó«ºóαáΓ
  9989.         START   ENDP
  9990.         PROGRAM ENDS
  9991.                 END
  9992.  
  9993.         ;Å«ñ»α«úαá¼¼á ñ½∩ »ÑαÑß佬¿ »α«¿ºó«½∞¡«ú« τ¿ß½á φ½Ñ¼Ñ¡Γ«ó
  9994.         ;ß »α«¿ºó«½∞¡δ¼ º¡áτÑ¡¿Ñ¼ ó µÑ½«τ¿ß½Ñ¡¡δ⌐ ¼áßß¿ó æ¿¡Γá¬ß¿ß
  9995.         ;ó맮óá ß½ÑñπεΘ¿⌐:
  9996.         ;CALL FILLIT(ARRAY(0),FILLVALUE,NUMTIMES)
  9997.  
  9998.                 ORG   100h
  9999.         PROGRAM      SEGMENT
  10000.                 ASSUME cs:PROGRAM
  10001.                 push  bp             ; ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íáºδ
  10002.                 mov   bp,sp          ; »ÑαѼÑßΓ¿Γ∞ π¬áºáΓѽ∞ ßΓѬá
  10003.  
  10004.         TASM2 #3-5/䫬              = 236 =
  10005.  
  10006.                                      ; ó BP
  10007.                 les   di,[bp+0eh]    ; »«½πτ¿Γ∞ ß¼ÑΘÑ¡¿Ñ áñαÑßá τ¿ß½á
  10008.                                      ; φ½Ñ¼Ñ¡Γ«ó ñ½∩ ºá»«½¡Ñ¡¿∩
  10009.                 mov   ax,es:[di]     ; »«¼ÑßΓ¿Γ∞ ó AX º¡áτÑ¡¿Ñ-
  10010.                                      ; ºá»«½¡¿Γѽ∞
  10011.                 les   di,[bp+6]      ; ß¼ÑΘÑ¡¿Ñ áñαÑßᠺừ½¡∩Ѽ«ú«
  10012.                                      ; ¼áßß¿óá
  10013.                 cld                  ; «τ¿ßΓ¿Γ∞ Σ½áú ¡á»αáó½Ñ¡¿∩
  10014.                 rep                  ; ß½ÑñπεΘá∩ ¿¡ßΓαπ¬µ¿∩ »«óΓ«α∩ÑΓß∩,
  10015.                                      ; »«¬á CX ¡Ñ íπñÑΓ = 0
  10016.                 stow                 ; ºá»¿ßáΓ∞ AX ó ES:DI ¿ πóѽ¿τ¿Γ∞
  10017.                                      ; DI ¡á 2
  10018.                 pop  bp              ; ó«ßßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ íáºδ
  10019.         PROGRAM ENDS                 ; ¬«¡Ñµ ßÑú¼Ñ¡Γá - ¿¡ßΓαπ¬µ¿∩ RET
  10020.                                      ; ¡Ñ ¡πª¡á
  10021.                 END
  10022.  
  10023.  
  10024.  
  10025.  
  10026.  
  10027.         TASM2 #3-5/䫬              = 237 =
  10028.  
  10029.                                                                                
  10030.         Åα¿½«ªÑ¡¿Ñ B. ê¡ΓÑαΣÑ⌐ß Æπαí« ÇßßѼí½Ñαá ß Æπαí« Åα«½«ú«¼
  10031.         -----------------------------------------------------------------
  10032.  
  10033.              Æπαí« Åα«½«ú »αÑñ½áúáÑΓ »α«úαá¼¼¿ßΓπ í«½∞Φ«Ñ ¬«½¿τÑßΓó« »αÑ-
  10034.         ñ¿¬áΓ«ó,  «íÑß»Ñτ¿óáεΘ¿σ αáßΦ¿αÑ¡¡δ⌐ ¡áí«α Σπ¡¬µ¿⌐ óδß«¬«ú« πα«ó-
  10035.         ¡∩, «Γ π»αáó½Ñ¡¿∩ «¬¡á¼¿ φ¬αá¡á ñ« π»αáó½Ñ¡¿∩ íáºá¼¿ ñá¡¡δσ. Æπα-
  10036.         í« ÇßßѼí½Ñα »«ºó«½∩ÑΓ ñ«íáó¿Γ∞ ¬ Æπαí« Åα«½«úπ ßαÑñßΓóá »α«úαá¼-
  10037.         ¼¿α«óá¡¿∩ ¡¿ª¡Ñú« πα«ó¡∩.
  10038.  
  10039.              é ñá¡¡«⌐ ú½áóÑ ¼δ αáßß¼«Γα¿¼ ß¡áτá½á ¿¡ΓÑαΣÑ⌐ß Æπαí« Åα«½«úá
  10040.         ß Æπαí« ÇßßѼí½Ñα«¼, ºáΓѼ »α¿óÑñѼ ¡Ñ¬«Γ«αδÑ »α«ßΓδÑ »α¿¼Ñαδ «α-
  10041.         úá¡¿ºáµ¿¿ ¿¡ΓÑαΣÑ⌐ßá »«ñ»α«úαá¼¼ ÇßßѼí½Ñαá ß Æπαí« Åα«½«ú«¼. ìá-
  10042.         ¬«¡Ñµ,  ¼δ  «íßπñ¿¼ ó맮ó »αÑñ¿¬áΓ«ó Æπαí« Åα«½«úá ¿º ¬«ñá ÇßßѼ-
  10043.         í½Ñαá, ¿ß»«½∞º«óá¡¿Ñ í¿í½¿«ΓÑτ¡δσ ó맮ó«ó Æπαí« Åα«½«úá ¿ »ÑαÑñá-
  10044.         τπ ß½«ª¡δσ ßΓαπ¬Γπα.
  10045.  
  10046.                    Åα¿¼Ñτá¡¿Ñ: è«úñá ¼δ ú«ó«α¿¼ « Æπαí« Åα«½«úÑ, Γ«  αÑτ∞
  10047.               ¿ñÑΓ « óÑαß¿¿ 1.0 ¿½¿ í«½ÑÑ ßΓáαΦÑ⌐.
  10048.  
  10049.                                                                                
  10050.         ÄíΩ∩ó½Ñ¡¿Ñ ó¡ÑΦ¡¿σ »αÑñ¿¬áΓ«ó
  10051.         -----------------------------------------------------------------
  10052.  
  10053.              Æπαí« Åα«½«ú »«ºó«½∩ÑΓ «αúá¡¿º«óáΓ∞ ¿¡ΓÑαΣÑ⌐ß ß ñαπú¿¼¿ ∩ºδ-
  10054.         ¬á¼¿ ß »«¼«Θ∞ε «»¿ßá¡¿⌐ ú½«íá½∞¡δσ »αÑñ¿¬áΓ«ó.  é «»¿ßá¡¿¿ π¬áºδ-
  10055.         óáÑΓß∩ ß»Ñµ¿Σ¿¬áµ¿∩ ∩ºδ¬á, í½áú«ñáα∩ ¬«Γ«α«⌐ Æπαí«  Åα«½«ú  ¼«ªÑΓ
  10056.         «»αÑñѽ¿Γ∞,  τΓ«  ú½«íá½∞¡δ⌐ »αÑñ¿¬áΓ αÑ὿º«óá¡ ¡á ñαπú«¼ ∩ºδ¬Ñ:
  10057.  
  10058.           global pridicate
  10059.                  add(integer,integer,integer) - (i,i,o) language asm
  10060.                  scanner(string,token) - (i,o) language Pascal
  10061.  
  10062.              é Æπαí« Åα«½«úÑ ß««ΓóÑΓßΓóπεΘ¿⌐ ∩ºδ¬ π¬áºδóáÑΓß∩ ∩ó¡«, τΓ«íδ
  10063.         π»α«ßΓ¿Γ∞  »α«í½Ñ¼δ  ß  ºá»¿ß∞ε  á¬Γ¿óᵿ¿ ¿ Σ«α¼áΓ«¼ »áαá¼ÑΓα«ó,
  10064.         ß«ú½áΦÑ¡¿∩¼¿ »« ó맮óπ ¿ ó«ºóαáΓπ π»αáó½Ñ¡¿∩, «»αÑñѽѡ¿∩¼¿  ßÑú-
  10065.         ¼Ñ¡Γ«ó ¿ ¿¡¿µ¿á½¿ºáµ¿Ñ⌐.
  10066.  
  10067.                            æ«ú½áΦÑ¡¿∩ »« ó맮óπ ¿ »áαá¼ÑΓαδ                    
  10068.         -----------------------------------------------------------------
  10069.  
  10070.              æÑ¼Ñ⌐ßΓó« »α«µÑßß«α«ó 8086 »αÑñ«ßΓáó½∩ÑΓ »α«úαá¼¼¿ßΓπ  óδí«α
  10071.         ¼Ñªñπ  í½¿ª¡¿¼  (near) ¿ ñá½∞¡¿¼ (far) óδº«ó«¼ »«ñ»α«úαá¼¼. Æπαí«
  10072.         Åα«½«ú ß«ºñáÑΓ »α«úαá¼¼δ ß í«½∞Φ«⌐ ¼«ñѽ∞ε »á¼∩Γ¿ ¿ ΓαÑíπÑΓ, τΓ«-
  10073.         íδ óßÑ ó맮óδ ¿ ó«ºóαáΓδ π»αáó½Ñ¡¿∩ ¿¼Ñ½¿ ñá½∞¡¿⌐ Γ¿».
  10074.  
  10075.  
  10076.         TASM2 #3-5/䫬              = 238 =
  10077.  
  10078.              Æπαí« Åα«½«ú »«ññÑনóáÑΓ α∩ñ ß«ú½áΦÑ¡¿⌐ »« ó맮óá¼:  ß«ú½á-
  10079.         ΦÑ¡¿∩ æ¿, Åá߬á½∩ ¿ ÇßßѼí½Ñαá. Åα¿ «αúá¡¿ºáµ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß »«ñ-
  10080.         »α«úαá¼¼«⌐, ¡á»¿ßá¡¡«⌐ ß ¿ß»«½∞º«ó᡿Ѽ  ß«ú½áΦÑ¡¿⌐  »«  ó맮óá¼,
  10081.         »α¿¡∩Γδσ ó ∩ºδ¬Ñ æ¿, »áαá¼ÑΓαδ ºá¡«ß∩Γß∩ ó ßΓѬ ó «íαáΓ¡«¼ »«α∩ñ-
  10082.         ¬Ñ ¿ »«ß½Ñ ó«ºóαáΓá π»αáó½Ñ¡¿∩ π¬áºáΓѽ∞ ßΓѬá áóΓ«¼áΓ¿τÑ߬¿  óδ-
  10083.         αáó¡¿óáÑΓß∩.  Åα¿  «αúá¡¿ºáµ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß ñαπú¿¼¿ ∩ºδ¬á¼¿ »áαá-
  10084.         ¼ÑΓαδ ºá¡«ß∩Γß∩ ó ßΓѬ ó «íδτ¡«¼ »«α∩ñ¬Ñ,  á  «ΓóÑΓßΓóÑ¡¡«ßΓ∞  ºá
  10085.         ¿ºó½ÑτÑ¡¿Ñ »áαá¼ÑΓα«ó ¿º ßΓѬá ó«º½áúáÑΓß∩ ¡á óδºδóáѼπε Σπ¡¬µ¿ε.
  10086.  
  10087.              é« ¼¡«ú¿σ ¬«¼»¿½∩Γ«αáσ ∩ºδ¬«ó, »αÑñ¡áº¡áτÑ¡¡δσ ñ½∩ αáí«Γδ ¡á
  10088.         »α«µÑßß«αáσ   ßÑα¿¿   8086,  ÑßΓ∞  óδí«α  ¼Ñªñπ  16-αáºα∩ñ¡δ¼¿  ¿
  10089.         32-αáºα∩ñ¡δ¼¿ π¬áºáΓѽ∩¼¿ (úñÑ 16-αáºα∩ñ¡δÑ  π¬áºáΓѽ¿  ßßδ½áεΓß∩
  10090.         ¡á  ¿ß»«½∞ºπѼδ⌐  »« π¼«½τá¡¿ε ßÑú¼Ñ¡Γ). Æπαí« Åα«½«ú ñ½∩ ñ«ßΓπ»á
  10091.         ¬« óßÑ⌐ »á¼∩Γ¿ óßÑúñá ¿ß»«½∞ºπÑΓ 32-αáºα∩ñ¡δÑ π¬áºáΓѽ¿.
  10092.  
  10093.              Æ¿»δ Æπαí« Åα«½«úá αÑ὿º«óá¡δ ß½ÑñπεΘ¿¼ «íαẫ¼:
  10094.  
  10095.            integer    (µÑ½δ⌐)             2 íá⌐Γá
  10096.            real       (óÑΘÑßΓóÑ¡¡δ⌐)      8 íá⌐Γ (Σ«α¼áΓ IEEE)
  10097.            char       (ß¿¼ó«½∞¡δ⌐)        1 íá⌐Γ (ñóá íá⌐Γá »α¿ ºá¡ÑßÑ¡¿¿
  10098.                                           ó ßΓѬ)
  10099.            string     (ßΓ᫬«óδ⌐)         4-íá⌐Γ«óδ⌐ π¬áºáΓѽ∞ (ñó«⌐¡«Ñ
  10100.                                           ß½«ó«) ¡á ºáóÑαΦáεΘπεß∩ ¡π½Ñ¼
  10101.                                           ßΓ᫬π
  10102.            symbol     (¿ñÑ¡Γ¿Σ¿¬áΓ«α)     4-íá⌐Γ«óδ⌐ π¬áºáΓѽ∞ (ñó«⌐¡«Ñ
  10103.                                           ß½«ó«) ¡á ºáóÑαΦáεΘπεß∩ ¡π½Ñ¼
  10104.                                           ßΓ᫬π
  10105.            compound   (ß½«ª¡δ⌐)           4-íá⌐Γ«óδ⌐ π¬áºáΓѽ∞ (ñó«⌐¡«Ñ
  10106.                                           ß½«ó«) ¡á ºá»¿ß∞
  10107.  
  10108.              éδσ«ñ¡«⌐ »áαá¼ÑΓα ºá¡«ß¿Γß∩ ó ßΓѬ, ¬á¬ 32-í¿Γ«óδ⌐ π¬áºáΓѽ∞
  10109.         ¡á  ∩τÑ⌐¬π,  ¬«Γ«α«⌐ ñ«½ª¡« íδΓ∞ »α¿ßó«Ñ¡« ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
  10110.         ä½∩ óσ«ñ¡δσ »áαá¼ÑΓα«ó º¡áτÑ¡¿Ñ ºá¡«ß¿Γß∩ ó ßΓѬ ¡Ñ»«ßαÑñßΓóÑ¡¡«,
  10111.         á αẼÑα »áαá¼ÑΓαá ºáó¿ß¿Γ «Γ Ñú« Γ¿»á.
  10112.  
  10113.  
  10114.  
  10115.  
  10116.         TASM2 #3-5/䫬              = 239 =
  10117.  
  10118.                                  æ«ú½áΦÑ¡¿∩ »« ¿¼Ñ¡á¼                          
  10119.         -----------------------------------------------------------------
  10120.  
  10121.              Äñ¿¡ ¿ Γ«Γ ªÑ »αÑñ¿¬áΓ ó Æπαí« Åα«½«úÑ ¼«ªÑΓ ¿¼ÑΓ∞ ¡Ñ߬«½∞¬«
  10122.         óáα¿á¡Γ«ó  ß  αẽ¿τ¡δ¼¿  Γ¿»á¼¿ ¿ »«Γ«¬á¼¿ óó«ñá-óδó«ñá. èáªñ«¼π
  10123.         Γᬫ¼π óáα¿á¡Γπ ñ«½ª¡á ß««ΓóÑΓßΓó«óáΓ∞ Ñú« ß«íßΓóÑ¡¡á∩ »α«µÑñπαá,
  10124.         ¬«Γ«α«⌐  »α¿ßóá¿óáÑΓß∩  π¡¿¬á½∞¡«Ñ  ¿¼∩. ¥Γ« «ßπΘÑßΓó½∩ÑΓß∩ ß »«-
  10125.         ¼«Θ∞ε ¡π¼Ñαᵿ¿ αẽ¿τ¡δσ »α«µÑñπα ó  »αÑñ¿¬áΓÑ  (¡áτ¿¡á∩  ß  0).
  10126.         ìá»α¿¼Ñα, Ñß½¿ π ¡áß ÑßΓ∞ «»¿ßá¡¿Ñ:
  10127.  
  10128.             global predicates
  10129.               add(integer,integer,integer) - (i,i,0),(i,i,i) language asm
  10130.  
  10131.         Γ« »Ñαóδ⌐ óáα¿á¡Γ (ß »«Γ«¬«¼ óó«ñá-óδó«ñá  (i,i,o))  »«½πτ¿Γ  ¿¼∩
  10132.         add_0, ó óΓ«α«⌐ (ß »«Γ«¬«¼ óó«ñá-óδó«ñá (i,i,i)) - add_1.
  10133.  
  10134.              Æπαí« Åα«½«ú »«ºó«½∩ÑΓ ΓᬪѠ »α«úαá¼¼¿ßΓπ  «íΩ∩ó½∩Γ∞  ∩ó¡«Ñ
  10135.         ¿¼∩  ú½«íá½∞¡«ú«  »αÑñ¿¬áΓá.  ¥Γ«  ñѽáÑΓß∩ ß »«¼«Θ∞ε π¬áºá¡¿∩ ºá
  10136.         «»¿ß᡿Ѽ "as «íΘÑñ«ßΓπ»¡«Ñ_¿¼∩". é ß½ÑñπεΘѼ »α¿¼ÑαÑ  ú½«íá½∞¡δ⌐
  10137.         »αÑñ¿¬áΓ pred »«½πτ¿Γ ¿¼∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá my_pred, á ¡Ñ pred_0.
  10138.  
  10139.           global predicates
  10140.               pred(integer,integer) - (i,o) language asm as "my_pred"
  10141.  
  10142.              äá¡¡δ⌐ ¼ÑΓ«ñ σ«α«Φ, ¬«úñá óδ »α¿ßóá¿óáÑΓÑ »αÑñ¿¬áΓπ ¿¼∩, ¿ π
  10143.         óáß ÑßΓ∞ Γ«½∞¬« «ñ¿¡ »«Γ«¬ óó«ñá-óδó«ñá. àß½¿ ¿¼ÑÑΓß∩ ñóá ¿ í«½ÑÑ
  10144.         »«Γ«¬á óó«ñá-óδó«ñá, Γ« óá¼ »α¿ñÑΓß∩ »αÑñπß¼«ΓαÑΓ∞ ¿¼∩ ñ½∩ ¬áªñ«-
  10145.         ú« óáα¿á¡Γá. àß½¿ ¿ß»«½∞º«óáΓ∞ »αÑñ¿¬áΓ add ¿º »αÑñδñπΘÑú« »α¿¼Ñ-
  10146.         αá, Γ« «»αÑñѽѡ¿Ñ »αÑñ¿¬áΓá íπñÑΓ óδú½∩ñÑΓ∞ Γá¬:
  10147.  
  10148.         global predicates
  10149.           add(integer,integer,integer)-(i,i,0) language asm as "doadd"
  10150.           add(integer,integer,integer)-(i,i,i) language asm as "addcheck"
  10151.  
  10152.              ÅÑαóδ⌐ óáα¿á¡Γ (ß »Ñαóδ¼ »«Γ«¬«¼ óó«ñá-óδó«ñá (i,i,o)) »«½π-
  10153.         τáÑΓ  ¿¼∩  doadd, á óΓ«α«⌐ (ß »«Γ«¬«¼ óó«ñá-óδó«ñá (i,i,i)) - ¿¼∩
  10154.         add_check. çá¼ÑΓ¿¼, τΓ« φëà¼ÑΓ«ñ  ΓαÑíπÑΓ  «Γñѽ∞¡«ú«  «»¿ßá¡¿∩
  10155.         ñ½∩ ¬áªñ«ú« óáα¿á¡Γá.
  10156.  
  10157.  
  10158.  
  10159.  
  10160.         TASM2 #3-5/䫬              = 240 =
  10161.  
  10162.                           Éáºαáí«Γ¬á »αÑñ¿¬áΓ«ó ¡á ÇßßѼí½ÑαÑ                  
  10163.         -----------------------------------------------------------------
  10164.  
  10165.              é«º¼«ª¡«, »α«ßΓÑ⌐Φ¿Ñ »αÑñ¿¬áΓδ - φΓ« ΓÑ, ¬«Γ«αδÑ ¿¼ÑεΓ Γ«½∞-
  10166.         ¬«  »«Γ«¬  óó«ñá. ÅαÑñ»«½«ª¿¼, óδ σ«Γ¿ΓÑ óδ»«½¡¿Γ∞ ú«α¿º«¡Γá½∞¡πε
  10167.         »α«¬απΓ¬π ß«ñÑন¼«ú« ΓѬπΘÑú« «¬¡á Æπαí« Åα«½«úá. î«ª¡« ¡á»¿ßáΓ∞
  10168.         »αÑñ¿¬áΓ  scroll_left,  ¬«Γ«αδ⌐ »α«¬απτ¿óáÑΓ «í½áßΓ∞ ¡á φ¬αá¡Ñ ¡á
  10169.         «ñ¡π »«º¿µ¿ε ó½Ñó«. é »α¿¼ÑαÑ SCROLLH.PRO scroll_left ¿¼ÑÑΓ τÑΓδ-
  10170.         αÑ µÑ½δσ áαúπ¼Ñ¡Γá ¿ «ñ¿¡ »«Γ«¬ óó«ñá-óδó«ñá.
  10171.  
  10172.              î«ñπ½∞ Æπαí« Åα«½«úá SCROLLH.PRO ß«ñÑαª¿Γ «»¿ßá¡¿Ñ  ú½«íá½∞-
  10173.         ¡«ú«  »αÑñ¿¬áΓá  ñ½∩  »αÑñ¿¬áΓá scroll_left. ÅαÑñ¿¬áΓ scroll_left
  10174.         «»αÑñѽѡ, ¬á¬ »αÑñ¿¬áΓ ÇßßѼí½Ñαá.
  10175.  
  10176.         /* SCROLLH.PRO */
  10177.  
  10178.         global predicates
  10179.           scroll_left(integer,integer,integer,integer) - (i,i,i,i)
  10180.                 language asm
  10181.  
  10182.         predicates
  10183.           scrollh
  10184.  
  10185.         clauses
  10186.           scrollh :-
  10187.               makewindow(_,_,_,Row,Col,Nrows,Ncols),
  10188.               scroll_laft(Row,Col,Nrows,Ncols),
  10189.               readchar(C),
  10190.               char_int(C,CI),
  10191.               not(CI = 27),
  10192.               scrollh.
  10193.  
  10194.         goal
  10195.           makewindow(1,7,7," æ««íΘÑ¡¿Ñ ñ½∩ »α«¬απΓ¬¿ ",10,20,4,60),
  10196.           write("¥Γ« ß««íΘÑ¡¿Ñ íπñÑΓ »α«¬απτÑ¡« ó «¬¡Ñ"),nl,
  10197.           write("éºú½∩¡¿ΓÑ ¡á ¡Ñú«!"),
  10198.           readchar(_),
  10199.           scrollh,
  10200.           readchar(_).
  10201.  
  10202.              æ½ÑñπεΘ¿⌐ ¿ßσ«ñ¡δ⌐ ¬«ñ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá »αÑñßΓáó½∩ÑΓ  ß«-
  10203.         í«⌐ αÑ὿ºáµ¿ε »αÑñ¿¬áΓá scroll_left. çá¼ÑΓ¿¼, τΓ« φΓ«¼π »αÑñ¿¬á-
  10204.         Γπ ñáÑΓß∩ ¿¼∩ SCROLL_LEFT_0, τΓ«  ß««ΓóÑΓßΓóπÑΓ  «»¿ßá¡¡δ¼  αá¡ÑÑ
  10205.         ß«ú½áΦÑ¡¿∩¼ »« ¿¼Ñ¡á¼.
  10206.  
  10207.         ; SCROL.ASM
  10208.  
  10209.         TASM2 #3-5/䫬              = 241 =
  10210.  
  10211.         ;
  10212.               name  scrol
  10213.         ;     scroll_left(integer,integer,integer,integer) - (i,i,i,i)
  10214.         ;                  language asm
  10215.         SCROL_TEXT    SEGMENT  BYTE PUBLIC 'CODE'
  10216.              ASSUME   CS:SCROL_TEXT
  10217.         PUBLIC  SCROLL_LEFT_0
  10218.  
  10219.         SCROLL_LEFT_0 PROC FAR
  10220.         ;
  10221.         ; »áαá¼ÑΓαδ
  10222.         arg  NCOLS:WORD, NROWS:WORD, COL:WORD, ROW:WORD = ARGLEN
  10223.         ;
  10224.         ; ½«¬á½∞¡á∩ »ÑαѼѡ¡á∩
  10225.         local     SSEG : WORD = LSIZE
  10226.                   push  bp
  10227.                   mov   bp,sp
  10228.                   sub   sp,lsize     ; »α«ßΓαá¡ßΓó« ñ½∩ ½«¬á½∞¡δσ
  10229.                                      ; »ÑαѼѡ¡δσ
  10230.                   push  si
  10231.                   push  di
  10232.                   mov   SSEG, 0B800h
  10233.                   sub   NCOLS,3      ; NCOLS = NCOLS - 3
  10234.                   mov   ax,ROW       ; DEST = ROW*160 + (COL + 1)*2
  10235.                   mov   dx,160
  10236.                   mul   dx
  10237.                   mov   dx,COL
  10238.                   inc   dx           ; ß½«ª¿½¿
  10239.                   shl   dx,1
  10240.                   add   dx,ax
  10241.                   push  ds
  10242.                   push  es
  10243.                   mov   bx,NROWS     ; µ¿¬½ NROWS αẠ(BX ¿ß»«½∞ºπÑΓß∩,
  10244.                                      ; ¬á¬ ßτÑΓτ¿¬)
  10245.                   dec   bx           ; NROWS = NROWS - 2
  10246.                   dec   bx
  10247.         Top:      cmp   bx,0
  10248.                   je    Done
  10249.                   add   dx,160       ; »α¿Ñ¼¡¿¬ = »α¿Ñ¼¡¿¬ + 160
  10250.                   mov   ax,NCOLS     ; »«ß½_ß¿¼ó«½ = »α¿Ñ¼¡¿¬ + NCOLS*2
  10251.                   shl   ax,1
  10252.                   add   ax,dx
  10253.                   push  ax           ; ºá¡ÑßΓ¿ ó ßΓѬ ß¼ÑΘÑ¡¿Ñ
  10254.                                      ; »«ß½Ññ¡Ñú« ß¿¼ó«½á
  10255.                   mov   ax,SSEG      ; ºáúαπº¿Γ∞ ßÑú¼Ñ¡Γ φ¬αá¡á ó ES, DS
  10256.                   mov   es,ax
  10257.  
  10258.         TASM2 #3-5/䫬              = 242 =
  10259.  
  10260.                   mov   ds,ax
  10261.                   mov   di,dx        ; πßΓá¡«ó¿Γ∞ º¡áτÑ¡¿∩ SI ¿ DI ñ½∩
  10262.                                      ; ¿¡ßΓαπ¬µ¿⌐ mov
  10263.                   mov   si,di
  10264.                   add   si,2
  10265.                   mov   ax,[di]      ; ß«σαá¡¿Γ∞ ß¿¼ó«½ »«º¿µ¿¿ 0 ó AX
  10266.                   mov   cx,NCOLS     ; »ÑαѼÑßΓ¿Γ∞ NCOLS ß½«ó
  10267.                   cld
  10268.                   rep   movsw
  10269.                   pop   di           ; ¿ºó½Ñτ∞ ó DI ß¼ÑΘÑ¡¿Ñ »«ß½Ññ¡Ñú«
  10270.                                      ; ß¿¼ó«½á
  10271.                   mov   [di],ax      ; »«¼ÑßΓ¿Γ∞ ß¿¼ó«½ ó AX ó »«ß½Ññ¡εε
  10272.                                      ; »«º¿µ¿ε
  10273.                   dec   bx
  10274.                   jmp   TOP
  10275.         Done:     pop   es
  10276.                   pop   ds
  10277.                   pop   di
  10278.                   pop   si
  10279.                   mov   sp,bp
  10280.                   pop   bp
  10281.                   ret   ARGLEN
  10282.         SCROLL_LEFT_0   ENDP
  10283.         SCROL_TEXT      ENDS
  10284.                   END
  10285.  
  10286.              ùΓ«íδ ß«ºñáΓ∞ ¿º Σá⌐½«ó SCROLLH.PRO ¿ SCROL.ASM  óδ»«½¡∩Ѽδ⌐
  10287.         Σá⌐½, ¡πª¡« ß¡áτá½á ß¬«¼»¿½¿α«óáΓ∞ Σá⌐½ Æπαí« Åα«½«úá ó Σá⌐½ .OBJ
  10288.         (ß »«¼«Θ∞ε Æπαí« Åα«½«úá). (è«úñá Æπαí«  Åα«½«ú  ¬«¼»¿½¿απÑΓ  ¼«-
  10289.         ñπ½∞, «¡  ß«ºñáÑΓ  Σá⌐½ .OBJ ¿ Σá⌐½ .SYM.)  çáΓѼ ß »«¼«Θ∞ε Æπαí«
  10290.         ÇßßѼí½Ñαá ¡πª¡« áßßÑ¼í½¿α«óáΓ∞ Σá⌐½ SCROL.ASM ó Σá⌐½ .OBJ, »«ß½Ñ
  10291.         τÑú«  ß¬«¼»«¡«óáΓ∞  ¼«ñπ½¿  ß  »«¼«Θ∞ε ß½ÑñπεΘÑ⌐ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
  10292.         πΓ¿½¿Γδ TLINK:
  10293.  
  10294.              TLINK init scrollh scrol scrollh.sym,scroll,,prolog
  10295.  
  10296.              Å«½πτÑ¡¡δ⌐ ó αѺπ½∞ΓáΓÑ óδ»«½¡∩Ѽδ⌐  Σá⌐½  íπñÑΓ  ¡áºδóáΓ∞ß∩
  10297.         SCROLL.EXE.
  10298.  
  10299.  
  10300.  
  10301.  
  10302.         TASM2 #3-5/䫬              = 243 =
  10303.  
  10304.                               ÉÑ὿ºáµ¿∩ »αÑñ¿¬áΓá double                      
  10305.         -----------------------------------------------------------------
  10306.  
  10307.              ÅαÑñ»«½«ª¿¼, »«ñ»α«úαἼᠡá ∩ºδ¬Ñ ÇßßѼí½Ñαá  óδºδóáÑΓß∩  ß
  10308.         »«¼«Θ∞ε «»ÑαáΓ«αá:
  10309.  
  10310.              double(MyInVar,MyOutVar)
  10311.  
  10312.         úñÑ MyInVar »ÑαÑñ óδº«ó«¼ ßó∩ºδóáÑΓß∩ ß µÑ½δ¼ º¡áτÑ¡¿Ñ¼, á  »«ß½Ñ
  10313.         ó맮óá  MyOutVar «¬áºδóáÑΓß∩ ßó∩ºá¡¡«⌐ ß πñó«Ñ¡¡«⌐ óѽ¿τ¿¡«⌐ ñá¡-
  10314.         ¡«ú« º¡áτÑ¡¿∩.
  10315.  
  10316.              çỿß∞ á¬Γ¿óᵿ¿, »«¼ÑΘáѼá∩ ó ßΓѬ »α¿ á¬Γ¿ó¿ºáµ¿¿  double,
  10317.         ¿¼ÑÑΓ ó¿ñ, »αÑñßΓáó½Ñ¡¡δ⌐ ¡á É¿ß. 9.1:
  10318.  
  10319.         -------------       ---------------------------------------------
  10320.         | [BP] + 10 |------>|    ç¡áτÑ¡¿Ñ, ß ¬«Γ«αδ¼ ßó∩ºá¡á MyInVar.   |
  10321.         |           |       |         SIZE = 2 íá⌐Γá (αẼÑα)           |
  10322.         |           |       |-------------------------------------------|
  10323.         | [BP] + 6  |------>| ÇñαÑß, »« ¬«Γ«α«¼π ¡πª¡« αẼÑßΓ¿Γ∞ º¡á-  |
  10324.         |           |       | τÑ¡¿Ñ ñ½∩ MyOutVar.  SIZE = 4 íá⌐Γá       |
  10325.         |           |       |-------------------------------------------|
  10326.         | [BP] + 2  |------>| ÇñαÑß, ß ¬«Γ«α«ú« ñ«½ª¡« »α«ñ«½ªáΓ∞ß∩ óδ- |
  10327.         |           |       | »«½¡Ñ¡¿Ñ »«ß½Ñ ºáóÑαΦÑ¡¿∩ αáí«Γδ double.  |
  10328.         |           |       |              SIZE = 4 íá⌐Γá               |
  10329.         |           |       |-------------------------------------------|
  10330.         | [BP] + 0  |------>| Éá¡ÑÑ πßΓá¡«ó½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ BP (ñ« ¡áτá- |
  10331.         |           |       | ½á óδ»«½¡Ñ¡¿∩ double).                    |
  10332.         |           |       |              SIZE = 2 íá⌐Γá               |
  10333.         -------------       ---------------------------------------------
  10334.  
  10335.              É¿ß. 9.1. çỿß∞ á¬Γ¿óᵿ¿ ñ½∩ double.
  10336.  
  10337.              ÅαÑñ¿¬áΓ double αÑ὿ºπÑΓ ß½ÑñπεΘá∩ Σπ¡¬µ¿∩ ¡á ∩ºδ¬Ñ  ÇßßѼ-
  10338.         í½Ñαá:
  10339.  
  10340.         ;
  10341.         ; MYASM.ASM
  10342.         ;
  10343.         A_PROC        SEGMENT BYTE
  10344.                       ASSUME  CS:a_prog
  10345.                       PUBLIC  double_0
  10346.         double_0      PROC    FAR
  10347.                       push    bp
  10348.                       mov     bp,sp
  10349.                       mov     ax,[bp]+6       ; »«½πτ¿Γ∞ º¡áτÑ¡¿Ñ, ß
  10350.  
  10351.         TASM2 #3-5/䫬              = 244 =
  10352.  
  10353.                                               ; ¬«Γ«αδ¼ ßó∩ºá¡á MyInVar
  10354.                       add     ax,ax           ; πñó«¿Γ∞ φΓ« º¡áτÑ¡¿Ñ
  10355.                       lds     si,DWORD PTR [bp]+10
  10356.                       mov     [si],ax         ; ß«σαá¡¿Γ∞ º¡áτÑ¡¿Ñ, ß
  10357.                                               ; ¬«Γ«αδ¼ ñ«½ª¡« íδΓ∞
  10358.                                               ; ßó∩ºá¡« MyOutVar »«
  10359.                                               ; ß««ΓóÑΓßΓóπεΘѼπ áñαÑßπ
  10360.                       pop     bp
  10361.                       mov     sp,bp
  10362.                       ret     6
  10363.         double_0      ENDP
  10364.         A_PROC        ENDS
  10365.  
  10366.              Åα«úαá¼¼á Æπαí«  Åα«½«úá,  ß«ñÑαªáΘá∩  «íαáΘÑ¡¿Ñ  ¬  double,
  10367.         ñ«½ª¡á ß«ñÑαªáΓ∞ ΓᬪѠ߽ÑñπεΘÑÑ «»¿ßá¡¿Ñ ú½«íá½∞¡«ú« »αÑñ¿¬áΓá:
  10368.  
  10369.            global predicates
  10370.               double(integer,integer) - (i,o) language asm
  10371.  
  10372.              é« óßѼ «ßΓá½∞¡«¼ »α«úαá¼¼á φΓá Æπαí« Åα«½«úá ¡Ñ íπñÑΓ «Γ½¿-
  10373.         τáΓ∞ß∩ «Γ ½εí«⌐ ñαπú«⌐ »α«úαá¼¼δ.
  10374.  
  10375.              ÅαÑñ¿¬áΓ double ¿ß»«½∞ºπÑΓß∩ ó ß½ÑñπεΘÑ⌐ »α«úαá¼¼Ñ:
  10376.  
  10377.          /* MYPROLOG.PRO */
  10378.  
  10379.         global predicates
  10380.            double(integer,integer) - (i,o) language asm
  10381.         goal
  10382.            write("éóÑñ¿ΓÑ µÑ½«Ñ º¡áτÑ¡¿Ñ "),
  10383.            readint(I),
  10384.            double(I,Y),
  10385.            write(I," πñó«Ñ¡¡«Ñ º¡áτÑ¡¿Ñ = ",Y).
  10386.  
  10387.              Åα«úαἼᠡᠠ∩ºδ¬Ñ   ÇßßѼí½Ñαá   áßßÑ¼í½¿απÑΓß∩   ó   Σá⌐½
  10388.         MYASM.OBJ,  á óδºδóáεΘá∩ »α«úαá¼¼á ¡á Æπαí« Åα«½«úÑ Γαá¡ß½¿απÑΓß∩
  10389.         ó ¼«ñπ½∞ MYPROLOG.OBJ. çáΓѼ φΓ¿ ñóá ¼«ñπ½∩ ¬«¼»«¡πεΓß∩ ß »«¼«Θ∞ε
  10390.         ¬«¼á¡ñ¡«⌐ ßΓ᫬¿:
  10391.  
  10392.              TLINK init myprolog myasm myprolog.sym,double,,prolog
  10393.  
  10394.              Åα¿  φΓ«¼   ß«ºñáÑΓß∩   óδ»«½¡∩Ѽá∩   áóΓ«¡«¼¡á∩   »α«úαá¼¼á
  10395.         DOUBLE.EXE   (ñ½∩  τÑú«  ¿ß»«½∞ºπÑΓß∩  í¿í½¿«ΓѬᠠÆπαí«  Åα«½«úá
  10396.         PROLOG.LIB). é᪡«, τΓ« MYPROLOG.SYM π¬áºδóá½ß∩ ó ¬«¼á¡ñÑ TLINK ó
  10397.         ¬áτÑßΓóÑ »«ß½Ññ¡Ñú« ¿¼Ñ¡¿ Σá⌐½á »ÑαÑñ »Ñαó«⌐ ºá»∩Γ«⌐.
  10398.  
  10399.  
  10400.         TASM2 #3-5/䫬              = 245 =
  10401.  
  10402.              é «íΘѼ ß½πτáÑ Σ«α¼áΓ ºá»¿ß¿  á¬Γ¿óᵿ¿  íπñÑΓ  ºáó¿ßÑΓ∞  «Γ
  10403.         τ¿ß½á  »áαá¼ÑΓα«ó  »αÑñ¿¬áΓá Æπαí« Åα«½«úá ¿ Γ¿»«ó ñ«¼Ñ¡«ó, ß««Γ-
  10404.         óÑΓßΓóπεΘ¿σ φΓ¿¼ »áαá¼ÑΓαá¼. ìá»α¿¼Ñα, Ñß½¿ óδ σ«Γ¿ΓÑ «»αÑñѽ¿Γ∞:
  10405.  
  10406.              add(Val1,Val2,Sum)
  10407.  
  10408.         úñÑ Val1, Val2 ¿ Sum »α¿¡áñ½ÑªáΓ µÑ½δ¼ (integer) ñ«¼Ñ¡á¼, Γ«  ºá-
  10409.         »¿ß∞ á¬Γ¿óᵿ¿ óδú½∩ñѽá íδ Γá¬, ¬á¬ »«¬áºá¡« ¡á É¿ß. 9.2:
  10410.  
  10411.         -------------       ---------------------------------------------
  10412.         | [BP] + 10 |------>|  ÇñαÑß, »« ¬«Γ«α«¼π ñ«½ª¡« íδΓ∞ ºá»¿ßá¡«  |
  10413.         |           |       | º¡áτÑ¡¿Ñ Sum.                             |
  10414.         |           |       |         SIZE = 4 íá⌐Γá (αẼÑα)           |
  10415.         |           |       |-------------------------------------------|
  10416.         | [BP] + 8  |------>|     ç¡áτÑ¡¿Ñ, ß ¬«Γ«αδ¼ ßó∩ºá¡á Val2.     |
  10417.         |           |       |              SIZE = 2 íá⌐Γá               |
  10418.         |           |       |-------------------------------------------|
  10419.         | [BP] + 6  |------>|     ç¡áτÑ¡¿Ñ, ß ¬«Γ«αδ¼ ßó∩ºá¡á Val1.     |
  10420.         |           |       |              SIZE = 2 íá⌐Γá               |
  10421.         |           |       |-------------------------------------------|
  10422.         | [BP] + 2  |------>| ÇñαÑß, ß ¬«Γ«α«ú« ñ«½ª¡« »α«ñ«½ªáΓ∞ß∩ óδ- |
  10423.         |           |       | »«½¡Ñ¡¿Ñ »«ß½Ñ ºáóÑαΦÑ¡¿∩ αáí«Γδ add.     |
  10424.         |           |       |              SIZE = 4 íá⌐Γá               |
  10425.         |           |       |-------------------------------------------|
  10426.         | [BP] + 0  |------>| Éá¡ÑÑ πßΓá¡«ó½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ BP (ñ« ¡áτá- |
  10427.         |           |       | ½á óδ»«½¡Ñ¡¿∩ add).                       |
  10428.         |           |       |              SIZE = 2 íá⌐Γá               |
  10429.         -------------       ---------------------------------------------
  10430.  
  10431.              É¿ß. 9.2. çỿß∞ á¬Γ¿óᵿ¿ ñ½∩ »αÑñ¿¬áΓá add.
  10432.  
  10433.              ÄΓ¼ÑΓ¿¼, τΓ« ¬áªñδ⌐ »áαá¼ÑΓα ºá¡¿¼áÑΓ ß««ΓóÑΓßΓóπεΘÑÑ  τ¿ß½«
  10434.         íá⌐Γ. ä½∩ óδσ«ñ¡δσ »áαá¼ÑΓα«ó αẼÑα (SIZE) óßÑúñá αáóÑ¡ 4 íá⌐Γá¼
  10435.         (¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ñ½∩ áñαÑßá ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩).  ä½∩ óσ«ñ-
  10436.         ¡δσ »áαá¼ÑΓα«ó αẼÑα «»αÑñѽ∩ÑΓß∩  º¡áτÑ¡¿Ñ¼,  ¬«Γ«α«Ñ  ñÑ⌐ßΓó¿-
  10437.         Γѽ∞¡« ºá¡«ß¿Γß∩ ó ßΓѬ,  »«φΓ«¼π «¡« ºáó¿ß¿Γ «Γ ß««ΓóÑΓßΓóπεΘÑú«
  10438.         ñ«¼Ñ¡á.
  10439.  
  10440.              Val1 ¿ Val2 »α¿¡áñ½ÑªáΓ ¬ ñ«¼Ñ¡π µÑ½δσ ¿ «íᠺ᡿¼áεΓ 2 íá⌐-
  10441.         Γá  (ñ½∩  ¡¿σ  ¿ß»«½∞ºπÑΓß∩  π¬áºáΓѽ∞  »«Γ«¬á óó«ñá-óδó«ñá (i) -
  10442.         óó«ñ). Åáαá¼ÑΓα Sum ºá¡¿¼áÑΓ 4 íá⌐Γá (ñ½∩ ¡Ñú« ¿ß»«½∞ºπÑΓß∩  π¬á-
  10443.         ºáΓѽ∞ »«Γ«¬á óó«ñá-óδó«ñá (o) - óδó«ñ).
  10444.  
  10445.              çá¼ÑΓ¿¼ ΓᬪÑ, τΓ« »α¿ ¿ß»«½∞º«óá¡¿¿ ¬«¼»¿½∩Γ«αá Æπαí«  Åα«-
  10446.         ½«úá «íαáΘÑ¡¿Ñ ¬ ó¡ÑΦ¡Ñ¼π »αÑñ¿¬áΓπ ¿¼ÑÑΓ ó¿ñ:
  10447.  
  10448.  
  10449.         TASM2 #3-5/䫬              = 246 =
  10450.  
  10451.              mov ax,SEGMENT data
  10452.              mov ds,ax
  10453.              call FAR PTR external_predicate_inplementation
  10454.  
  10455.         »«φΓ«¼π ßÑú¼Ñ¡Γ ñá¡¡δσ, áñαÑßπѼδ⌐ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩  »α«µÑñπαδ
  10456.         ¿½¿ ó¡ÑΦ¡Ñú« »αÑñ¿¬áΓá, ¡áºδóáÑΓß∩ DATA.
  10457.  
  10458.  
  10459.  
  10460.  
  10461.         TASM2 #3-5/䫬              = 247 =
  10462.  
  10463.                ÉÑ὿ºáµ¿∩ »αÑñ¿¬áΓ«ó ß ¡Ñ߬«½∞¬¿¼¿ »«Γ«¬á¼¿ óó«ñá-óδó«ñá       
  10464.         -----------------------------------------------------------------
  10465.  
  10466.              Åα¿ αÑ὿ºáµ¿¿ »αÑñ¿¬áΓ«ó ß ¡Ñ߬«½∞¬¿¼¿ »«Γ«¬á¼¿ óó«ñá-óδó«-
  10467.         ñá  ¡πª¡«  ó¡¿¼áΓѽ∞¡«  ß«í½εñáΓ∞ ñ½∩ Σπ¡¬µ¿⌐ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá
  10468.         »α¿¡∩ΓδÑ ó Æπαí« Åα«½«úÑ ß«ú½áΦÑ¡¿∩ »« ¿¼Ñ¡á¼. ÅαÑñ»«½«ª¿¼,  ¡á»-
  10469.         α¿¼Ñα, τΓ« óδ σ«Γ¿ΓÑ αÑ὿º«óáΓ∞ »αÑñ¿¬áΓ add, π ¬«Γ«α«ú« ¿¼ÑÑΓß∩
  10470.         ¡Ñ߬«½∞¬« »«Γ«¬«ó óó«ñá-óδó«ñá. Åα¿ ¬áªñ«¼ «íαáΘÑ¡¿¿ ¬ add «¡ íπ-
  10471.         ñÑΓ  ¡áσ«ñ¿Γ∞ »α«»πΘÑ¡¡«Ñ º¡áτÑ¡¿Ñ ó παáó¡Ñ¡¿¿ X + Y = Z, úñÑ ñóá
  10472.         ¿º ΓαÑσ áαúπ¼Ñ¡Γ«ó »α¿ «íαáΘÑ¡¿¿ ¬ add ∩ó½∩εΓß∩ ßó∩ºá¡¡δ¼¿.
  10473.  
  10474.              â½«íá½∞¡δ⌐ »αÑñ¿¬áΓ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá «íΩ∩ó½∩ÑΓß∩ ó  »α«ú-
  10475.         αἼѠ¡á Æπαí« Åα«½«úÑ ADDPRO.PRO. çá¼ÑΓ¿¼, τΓ« »αÑñ¿¬áΓ add ¿¼Ñ-
  10476.         ÑΓ Γα¿ ó«º¼«ª¡δσ »«Γ«¬á óó«ñá-óδó«ñá: (i,i,o), (i,o,i) ¿ (o,i,i).
  10477.  
  10478.           /* ADDPRO.PRO */
  10479.  
  10480.         global predicates
  10481.            add(integer,integer,integer) - (i,i,0),(i,0,i),(o,i,i)
  10482.                      language asm
  10483.         goal
  10484.            add(2,3,X), write("2 + 3 = ",X),nl,
  10485.            add(2,Y,5), write("5 - 2 = ",Y),nl,
  10486.            add(2,3,5), write("5 - 3 = ",Z),nl.
  10487.  
  10488.              æ½ÑñπεΘá∩ »α«úαἼᠡá ÇßßѼí½ÑαÑ ADD.ASM ß«ñÑαª¿Γ ¬«ñ  αÑá-
  10489.         ½¿ºáµ¿¿  »αÑñ¿¬áΓá  add.  ADD_0 ß««ΓóÑΓßΓóπÑΓ »«Γ«¬π óó«ñá-óδó«ñá
  10490.         (i,i,o), ADD_1 ß««ΓóÑΓßΓóπÑΓ »«Γ«¬π (i,o,i), á ADD_2 - (o,i,i).
  10491.  
  10492.                name    add
  10493.         ADD_TEXT       SEGMENT  BYTE PUBLIC 'CODE'
  10494.                ASSUME  CS:ADD_TEXT
  10495.                PUBLIC  ADD_0            ; »«Γ«¬ (i,i,o)
  10496.         ADD_0  PROC    FAR
  10497.                arg     2:dWORD, Y:WPRD, X:WORD = ARGLEN1
  10498.                push    bp
  10499.                mov     bp,sp
  10500.                mov     ax,X
  10501.                add     ax,Y
  10502.                les     bx,Z
  10503.                mov     WORD PTR ES:[BX],ax
  10504.                pop     bp
  10505.                ret     ARGLEN1
  10506.         ADD_0  ENDP
  10507.  
  10508.                PUBLIC  ADD_1            ; »«Γ«¬ (i,o,i)
  10509.  
  10510.         TASM2 #3-5/䫬              = 248 =
  10511.  
  10512.         ADD_1  PROC    FAR
  10513.         arg    2:WORD, Y:WORD, X:WORD = ARGLEN2
  10514.                push    bp
  10515.                mov     bp,sp
  10516.                mov     ax,Z
  10517.                sub     ax,X
  10518.                les     bx,Y
  10519.                mov     WORD PTR ES:[BX],AX
  10520.                pop     bp
  10521.                ret     ARGLEN2
  10522.         ADD_1  ENDP
  10523.  
  10524.                PUBLIC  ADD_2            ; »«Γ«¬ (o,i,i)
  10525.         ADD_2  PROC    FAR
  10526.         arg    Z:WORD, Y:WORD, X:WORD = ARGLEN3
  10527.                push    bp
  10528.                mov     bp,sp
  10529.                mov     ax,Z
  10530.                sub     ax,X
  10531.                les     bx,Y
  10532.                mov     WORD PTR ES:[BX],AX
  10533.                pop     bp
  10534.                ret     ARGLEN3
  10535.         ADD_2  ENDP
  10536.  
  10537.         ADD_TEXT       ENDS
  10538.                END
  10539.  
  10540.              Å«ß½Ñ Γ«ú«, ¬á¬ ¿ßσ«ñ¡δÑ Σá⌐½δ ADDPRO.PRO  ¿  ADD.ASM  íπñπΓ
  10541.         «ΓΓαá¡ß½¿α«óá¡δ ó Σá⌐½δ .OBJ, óδ ¼«ªÑΓÑ ß »«¼«Θ∞ε ¬«¼á¡ñ¡«⌐ ßΓα«-
  10542.         ¬¿:
  10543.  
  10544.              TLINK init addpro add addpro.sym,addpro,,prolog
  10545.  
  10546.         ß«ºñáΓ∞ óδ»«½¡∩Ѽδ⌐ Σá⌐½ .EXE.
  10547.  
  10548.  
  10549.  
  10550.  
  10551.         TASM2 #3-5/䫬              = 249 =
  10552.  
  10553.                  é맮ó »αÑñ¿¬áΓ«ó Æπαí« Åα«½«úá ¿º Σπ¡¬µ¿⌐ ÇßßѼí½Ñαá          
  10554.         -----------------------------------------------------------------
  10555.  
  10556.              ÆÑ»Ñα∞, ¬«úñá ¼δ «íßπñ¿½¿ ó맮ó Σπ¡¬µ¿⌐ ¡á ∩ºδ¬Ñ  ÇßßѼí½Ñαá
  10557.         ¿º Æπαí« Åα«½«úá, ñáóá⌐ΓÑ «íßπñ¿¼ «íαáΓ¡πε »α«í½Ñ¼π: ó맮ó »αÑñ¿-
  10558.         ¬áΓ«ó Æπαí« Åα«½«úá ¿º ∩ºδ¬á ÇßßѼí½Ñαá.
  10559.  
  10560.              è«úñá »αÑñ¿¬áΓ «íΩ∩ó½∩ÑΓß∩  ú½«íá½∞¡δ¼,  óáα¿á¡Γδ  »αÑñ¿¬áΓá
  10561.         ßΓá¡«ó∩Γß∩  ú½«íá½∞¡δ¼¿ Σπ¡¬µ¿∩¼¿, ¬«Γ«αδÑ ¼«úπΓ óδºδóáΓ∞ß∩ ½εíδ¼
  10562.         ñαπú¿¼ ¼«ñπ½Ñ¼. æ«ú½áΦÑ¡¿∩ »« ¿¼Ñ¡á¼¿ ¿ ß«ú½áΦÑ¡¿∩ »« ó맮óá¼ «ß-
  10563.         ΓáεΓß∩ ΓѼ¿ ªÑ, τΓ« ¿ ñ½∩ »αÑñ¿¬áΓ«ó, «»αÑñѽѡ¡δσ ó ∩ºδ¬Ñ ÇßßѼ-
  10564.         í½Ñαá.
  10565.  
  10566.              æ½ÑñπεΘ¿⌐ ¼«ñπ½∞ Æπαí«  Åα«½«úá  «»αÑñѽ∩ÑΓ  ñóá  ú½«íá½∞¡δσ
  10567.         »αÑñ¿¬áΓá: popmessage ¿ from_asm.popmessage, ¬«Γ«αδÑ «íΩ∩ó½∩εΓß∩,
  10568.         ¬á¬ »αÑñ¿¬áΓδ ¡á ∩ºδ¬Ñ æ¿, ¿ »αÑñ¿¬áΓ from_asm, ¬«Γ«αδ⌐  «íΩ∩ó½∩-
  10569.         ÑΓß∩, ¬á¬ »αÑñ¿¬áΓ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá.
  10570.  
  10571.              ùΓ«íδ ßΣ«α¼¿α«óáΓ∞ »α«úαá¼¼π SHOWMESS, ß¬«¼»¿½¿απ⌐ΓÑ ¿º  ¿¡-
  10572.         ΓÑαá¬Γ¿ó¡«⌐   ßαÑñδ   αáºαáí«Γ¬¿   »α«úαá¼¼  Æπαí«  Åα«½«úá  Σá⌐½
  10573.         SHOWMESS.PRO ó Σá⌐½ .OBJ. çáΓѼ ß »«¼«Θ∞ε ¬«¼á¡ñδ:
  10574.  
  10575.              tasm from_asm
  10576.  
  10577.         áßßÑ¼í½¿απ⌐ΓÑ Σá⌐½ FORM_ASM.ASM ¿ óδ»«½¡¿ΓÑ ¬«¼»«¡«ó¬π:
  10578.  
  10579.              TLINK init showmess fromsm showmess.sym,showmess,,prolog
  10580.  
  10581.              êßσ«ñ¡δ⌐ ΓѬßΓ SHOWMESS ¿¼ÑÑΓ ó¿ñ:
  10582.  
  10583.         /* SHOWMESS */
  10584.         global predicates
  10585.           popmessage(string) - (i) language c  /* »αÑñ¿¬áΓ óδºδóáÑΓß∩
  10586.                                     ¿º »α«µÑñπαδ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá */
  10587.           from_asm - language asm   /* »α«µÑñπαá ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá */
  10588.  
  10589.         clauses
  10590.           popmessage(S) :-          /* ¼«ªÑΓ óδºδóáΓ∞ß∩ ¿º Σπ¡¬µ¿¿ æ¿
  10591.                                        ß ¿¼Ñ¡Ñ¼ popmessage_0 */
  10592.             str_len(S,L),
  10593.             LL = L + 4,
  10594.             makewindow(13,7,7,"",10,10,3,LL),
  10595.             write(S),
  10596.             readchar(_),
  10597.             removewindow.
  10598.         goal
  10599.  
  10600.         TASM2 #3-5/䫬              = 250 =
  10601.  
  10602.           form_asm.                /* external */
  10603.  
  10604.              æ½ÑñπεΘ¿⌐ ¬«ñ ¡á ÇßßѼí½ÑαÑ αÑ὿ºπÑΓ  from_asm  ¿  óδºδóáÑΓ
  10605.         popmessage:
  10606.  
  10607.                   EXTRN   PopMessage_0:FAR
  10608.         DGROUP    GROUP   _DATA
  10609.                   ASSUME  CS:SENDMESS_TEXT,DS:DGROUP
  10610.         _DATA     SEGMENT WORD PUBLIC 'DATA'
  10611.         messl     DB      "Report: Condition Red",0
  10612.         _DATA     ENDS
  10613.  
  10614.         SENDMESS_TEXT     SEGMENT BYTE PUBLIC 'CODE'
  10615.                   PUBLIC  FROM_ASM_0
  10616.         FROM_ASM_0        PROC FAR
  10617.                   push    ds
  10618.                   mov     ax,OFFSET DGROUP:messl
  10619.                   push    ax
  10620.                   call    FAR PTR PopMessage_0
  10621.                   pop     cx
  10622.                   pop     cx
  10623.                   ret
  10624.         FROM_ASM_0        ENDP
  10625.         SENDMESS_TEXT     ENDS
  10626.                   END
  10627.  
  10628.              æ½ÑñπεΘá∩ »α«úαá¼¼á ñ½∩ »«ßΓα«Ñ¡¿∩ Γ«⌐ ªÑ óδ»«½¡∩Ѽ«⌐  »α«ú-
  10629.         αá¼¼δ  ¿ß»«½∞ºπÑΓ αáßΦ¿αÑ¡¿∩ óδß«¬«ú« πα«ó¡∩ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá.
  10630.         ùΓ«íδ »«ßΓα«¿Γ∞ ÑÑ, ß¬«¼»¿½¿απ⌐ΓÑ ¿º  ¿¡ΓÑαá¬Γ¿ó¡«⌐  ßαÑñδ  Æπαí«
  10631.         Åα«½«úá  »α«úαá¼¼π  SHOWNEW.PRO (»«½πτ¿ó Σá⌐½ .OBJ), ºáΓѼ áßßѼ-
  10632.         í½¿απ⌐ΓÑ FROM_ASM.ASM, ¿ß»«½∞ºπ∩ ¬«¼á¡ñπ:
  10633.  
  10634.              tasm /jmasm51 /jquirks from_new
  10635.  
  10636.              Å«ß½Ñ φΓ«ú« óδ»«½¡¿ΓÑ ¬«¼»«¡«ó¬π:
  10637.  
  10638.              TLINK init shownew fromew shownew.sym,show2,,prolog
  10639.  
  10640.              Åα«úαá¼¼á SHOWNEW ¿¼ÑÑΓ ó¿ñ:
  10641.  
  10642.         /* SHOWNEW.PRO */
  10643.  
  10644.         global predicates
  10645.           popmessage(string) - (i) language c  /* »αÑñ¿¬áΓ óδºδóáÑΓß∩
  10646.                                     ¿º »α«µÑñπαδ ¡á ÇßßѼí½ÑαÑ */
  10647.           prom_asm - language c as "_from_asm" /* «»αÑñѽ¿Γ∞ «íΘÑ-
  10648.  
  10649.         TASM2 #3-5/䫬              = 251 =
  10650.  
  10651.                                     ñ«ßΓπ»¡«Ñ ¿¼∩ »α«µÑñπαδ ¡á ∩ºδ¬Ñ
  10652.                                     ÇßßѼí½Ñαá */
  10653.         clauses
  10654.           popmessage(S) :-
  10655.             str_len(S,L),
  10656.             LL=L+4,
  10657.             makewindow(13,7,7,"Ĭ¡«",10,10,3,LL),
  10658.             write(S),
  10659.             readchar(_),
  10660.             removewindow.
  10661.  
  10662.         goal
  10663.           from_asm.         /* óδºóáΓ∞ »α«µÑñπαπ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá */
  10664.  
  10665.              æ½ÑñπεΘ¿⌐ ¿ßσ«ñ¡δ⌐ ¬«ñ ÇßßѼí½Ñαá αÑ὿ºπÑΓ from_asm ¿ «íαá-
  10666.         ΘáÑΓß∩ ¬ popmessage (¬á¬ ¿ ó »αÑñδñπΘѼ »α¿¼ÑαÑ).
  10667.  
  10668.         ; FORM_NEW.ASM
  10669.                extrn   PopMessage_0:FAR
  10670.                .MODEL  LARGE,C
  10671.                .CODE
  10672.  
  10673.         FROM_ASM       proc
  10674.                push    ds
  10675.                mov     ax,OFFSET DGROUP:messl
  10676.                push    ax
  10677.                call    FAR PTR PopMessage_0
  10678.                pop     cx
  10679.                pop     cx
  10680.                ret
  10681.         FROM_ASM       ENDP
  10682.  
  10683.                .DATA
  10684.         messl  DB      "Report: Condition Red",0
  10685.                END
  10686.  
  10687.  
  10688.  
  10689.  
  10690.         TASM2 #3-5/䫬              = 252 =
  10691.  
  10692.                                    æ»¿ß¬¿ ¿ Σπ¡¬Γ«αδ                           
  10693.         -----------------------------------------------------------------
  10694.  
  10695.              é ñá¡¡«¼ αáºñѽѠ¼δ «íßπñ¿¼ ¼ÑΓ«ñ, ¿ß»«½∞ºπѼδ⌐ ñ½∩ »ÑαÑñáτ¿
  10696.         ó »α«µÑñπαδ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá ß»¿ß¬«ó ¿ Σπ¡¬Γ«α«ó. èᬠπªÑ π»«-
  10697.         ¼¿¡á½«ß∞ αá¡ÑÑ, ß½«ª¡δÑ «íΩѬΓδ Æπαí« Åα«½«úá ¡Ñ  »ÑαÑñáεΓß∩  ¡Ñ-
  10698.         »«ßαÑñßΓóÑ¡¡«. é¼ÑßΓ« φΓ«ú« Æπαí« Åα«½«ú »ÑαÑñáÑΓ 4-íá⌐Γ«óδ⌐ π¬á-
  10699.         ºáΓѽ∞ ¡á ßΓαπ¬Γπαπ.
  10700.  
  10701.              æΓαπ¬Γπαᠺỿ߿, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß»¿ß¬«ó ¿ Σπ¡¬Γ«-
  10702.         α«ó, »α«ßΓá ¿ »«¡∩Γ¡á. ÅαÑñ»«½«ª¿¼, ¿¼ÑεΓß∩ ß½ÑñπεΘ¿Ñ ñ«¼Ñ¡δ Æπα-
  10703.         í« Åα«½«úá:
  10704.  
  10705.           domains
  10706.             ilist = integer*
  10707.             ifunc = int(integer)
  10708.  
  10709.              æ««ΓóÑΓßΓóπεΘá∩ ßΓαπ¬Γπαá ñ½∩ πº½á ß»¿ß¬á ñ«¼Ñ¡á ilist ¿¼Ñ½á
  10710.         íδ ß½ÑñπεΘ¿⌐ ó¿ñ:
  10711.  
  10712.         STRUCT ILIST
  10713.            NodeType  DB ?
  10714.            Value     DW ?
  10715.            NexNode   DD ?
  10716.         ENDS
  10717.  
  10718.              èᬠ¼«ª¡« ó¿ñÑΓ∞ ¿º φΓ«⌐ ßΓαπ¬Γπαδ, πºÑ½ ß»¿ß¬á ß«ñÑαª¿Γ Γα¿
  10719.         τáßΓ¿:
  10720.  
  10721.              - Γ¿» πº½á (íá⌐Γ);
  10722.              - º¡áτÑ¡¿Ñ πº½á (ºáó¿ß¿Γ «Γ Γ¿»á);
  10723.              - π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐ πºÑ½ (4 íá⌐Γá).
  10724.  
  10725.              Æ¿» πº½á ß«ñÑαª¿Γ ñóá ¿¼ÑεΘ¿σ «»αÑñѽѡ¡δ⌐  ß¼δß½  º¡áτÑ¡¿Ñ:
  10726.         Value  1  «º¡áτáÑΓ,  τΓ«  πºÑ½  »αÑñßΓáó½∩ÑΓ ß«í«⌐ πºÑ½ ß»¿ß¬á, á
  10727.         Value 2 «º¡áτáÑΓ, τΓ« πºÑ½ - φΓ« πºÑ½ ¬«¡µá  ß»¿ß¬á  (¬«Γ«αδ⌐  ¡Ñ
  10728.         ß«ñÑαª¿Γ  ñαπú«⌐  º¡áτáΘÑ⌐ ¿¡Σ«α¼áµ¿¿). ç¡áτÑ¡¿Ñ πº½á ¼«ªÑΓ «Γ¡«-
  10729.         ß¿Γ∞ß∩ ¬ ½εí«¼π ñ«¼Ñ¡π Æπαí« Åα«½«úá.
  10730.  
  10731.              æ««ΓóÑΓßΓóπεΘá∩ ßΓαπ¬Γπαá ñ½∩ Σπ¡¬Γ«αá ifunc íδ½á íδ ß½Ññπε-
  10732.         ΘÑ⌐:
  10733.  
  10734.           STRUC IFUNC
  10735.             FuncType   DB ?
  10736.             Value      DW ?
  10737.           ENDS
  10738.  
  10739.         TASM2 #3-5/䫬              = 253 =
  10740.  
  10741.  
  10742.              æΓαπ¬Γπαá Σπ¡¬Γ«αá ß«ßΓ«¿Γ ¿º ñóπσ τáßΓÑ⌐: Γ¿»á  Σπ¡¬Γ«αá  ¿
  10743.         ºá»¿ß¿  Σπ¡¬Γ«αá.  Æ¿» Σπ¡¬Γ«αá - φΓ« µÑ½«Ñ, ßó∩ºá¡¡«Ñ ß »«º¿µ¿Ñ⌐
  10744.         óáα¿á¡Γá Σπ¡¬Γ«αá ó ß»¿ß¬Ñ á½∞ΓÑα¡áΓ¿ó. ÅÑαóá∩ á½∞ΓÑα¡áΓ¿óá ¿¼ÑÑΓ
  10745.         Γ¿» 1, óΓ«αá∩ - Γ¿» 2 ¿ Γ.ñ.
  10746.  
  10747.              é ß½ÑñπεΘ¿σ ¼«ñπ½∩σ Æπαí« Åα«½«úá ¿ Æπαí« ÇßßѼí½Ñαá ¼δ αÑá-
  10748.         ½¿º«ó὿ »αÑñ¿¬áΓ ¿ ó«ºóαáΓ¿½¿ Σπ¡¬Γ«α Æπαí« Åα«½«úπ.
  10749.  
  10750.              î«ñπ½∞ Æπαí« Åα«½«úá ¿¼ÑÑΓ ó¿ñ:
  10751.  
  10752.         /* FUNC.PRO */
  10753.  
  10754.         domains
  10755.           ifunc = int(integer)
  10756.  
  10757.         global predicates
  10758.           makefunk(integer,ifunc) - (i,o) language c
  10759.  
  10760.         goal
  10761.           makefunc(4,H),
  10762.           write(H).
  10763.  
  10764.              î«ñπ½∞ Æπαí« ÇßßѼí½Ñαá ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  10765.  
  10766.         ;
  10767.         ; IFUNC.ASM
  10768.         ;
  10769.               EXTRN _alloc_qstask:FAR     ; _alloc_qstack ó«ºóαáΘáÑΓ
  10770.                                           ; π¬áºáΓѽ∞ ¡á í½«¬ »á¼∩Γ¿
  10771.  
  10772.         STRUCT IFUNC
  10773.           FuncType    DB ?
  10774.           Value       DW ?
  10775.         ENDS
  10776.  
  10777.         IFUNC_TEXT    SEGMENT  WORD PUBLIC 'CODE'
  10778.                       ASSUME   CS:IFUNC_TEXT
  10779.  
  10780.                       PUBLIC   Makeifunc_0
  10781.         Makefunc_0    PROC FAR
  10782.                       arc      __inval:WORD, __outp:dWORD
  10783.                       push     bp
  10784.                       mov      bp,sp
  10785.                       mov      ax,3      ; óδñѽ¿Γ∞ 3 íá⌐Γá
  10786.                       push     ax
  10787.  
  10788.         TASM2 #3-5/䫬              = 254 =
  10789.  
  10790.                       call     FAR PTR_alloc_qstack
  10791.                       pop      cx
  10792.                       les      bx,__outp
  10793.                       mov      [WORD PTR ES:BX+2],DX
  10794.                       mov      [WORD PTR ES:BX],AX
  10795.                       mov      ax,__inval
  10796.         ;;            les      bx,__outp
  10797.                       les      bx,[DWORD PTR ES:BX]
  10798.                       mov      [(IFUNC PTR ES:BX).VALUE],AX
  10799.                                  ; º¡áτÑ¡¿Ñ = __inval
  10800.                       mov      [(IFUNC PTR ES:BX).FUNCTYPE],1
  10801.                                  ; Γ¿» = 1
  10802.                       pop      bp
  10803.                       ret
  10804.         Makeifunc_0   ENDP
  10805.         IFUNC_TEXT    ENDS
  10806.                       END
  10807.  
  10808.              é ñá¡¡«¼ »α¿¼ÑαÑ ñ½∩  ifunc  ¿ß»«½∞ºπÑΓß∩  Γ«½∞¬«  «ñ¿¡  Γ¿»
  10809.         Σπ¡¬Γ«αá. àß½¿ íδ óδ «íΩ∩󿽿 ñαπú«⌐ Σπ¡¬Γ«α, Γ¿»á:
  10810.  
  10811.              myfunc = int(integer); char(char); r(real); d2(integer,real)
  10812.  
  10813.         Γ« ßΓαπ¬Γπαá íδ½á íδ í«½ÑÑ ß½«ª¡«⌐. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ ßΓαπ¬Γπαá  ΓᬪÑ
  10814.         ¿¼Ñ½á  íδ  ñóÑ  τáßΓ¿,  Γ«½∞¬«  óΓ«αá∩ τáßΓ∞ íδ½á íδ «íΩÑñ¿¡Ñ¡¿Ñ¼
  10815.         ßΓαπ¬Γπα  ñá¡¡δσ,  ¡Ñ«íσ«ñ¿¼δσ  ñ½∩  «»αÑñѽѡ¿∩  óßÑσ  óáα¿á¡Γ«ó
  10816.         myfunc. æ½ÑñπεΘá∩ ßΓαπ¬Γπαá »αÑñßΓáó½∩ÑΓ ß«í«⌐ ó«º¼«ª¡πε αÑ὿ºá-
  10817.         µ¿ε myfunc ¡á Æπαí« ÇßßѼí½ÑαÑ:
  10818.  
  10819.          STRUCT MyFunc
  10820.                 FuncType    DB ?
  10821.                 UNION
  10822.                   STRUC
  10823.                      _int   DW ?
  10824.                   ENDS
  10825.                   STRUC
  10826.                      _char  DB ?
  10827.                   ENDS
  10828.                   STRUC
  10829.                      _real  DQ ?
  10830.                   ENDS
  10831.                   STRUC
  10832.                      v1     DW ?
  10833.                      v2     DQ ?
  10834.                   ENDS
  10835.                 ENDS
  10836.  
  10837.         TASM2 #3-5/䫬              = 255 =
  10838.  
  10839.          ENDS
  10840.  
  10841.              Æ¿»á¼¿, ßó∩ºá¡¡δ¼¿ ß á½∞ΓÑα¡áΓ¿óἿ Σπ¡¬Γ«αá í뫨 íδ ß½Ññπε-
  10842.         Θ¿Ñ Γ¿»δ:
  10843.  
  10844.            int(integer)          1
  10845.            char(char)            2
  10846.            r(real)               3
  10847.            d2(integer,real)      4
  10848.  
  10849.              ùΓ«íδ ½πτΦÑ »«¡∩Γ∞ ß»¿ß¬¿ ¿ Σπ¡¬Γ«αδ, óºú½∩¡¿ΓÑ ¡á í«½ÑÑ αá-
  10850.         ¡ÑÑ «»¿ßá¡¿Ñ ñ«¼Ñ¡«ó ñ½∩ ilist. Å«τѼπ ñ«»πßΓ¿¼δ Γ¿»δ πº½á 1 ¿ 2?
  10851.         Å«Γ«¼π τΓ« Æπαí« Åα«½«ú ¿¡ΓÑα»αÑΓ¿απÑΓ ilist, ¬á¬ ßΓαπ¬Γπαπ,  ¬«-
  10852.         Γ«απε ¼«ª¡« í佫 íδ «»¿ßáΓ∞ »α«ßΓ« ¬á¬:
  10853.  
  10854.              ilist = listnode(integer,listnode); end_of_list.
  10855.  
  10856.              ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« ¬«úñá óδ »ÑαÑñáÑΓÑ  ß½«ª¡δÑ  «íΩѬΓδ,  óδ
  10857.         »ÑαÑñáÑΓÑ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ. ü«½ÑÑ ¬«¡¬αÑΓ¡«: ó« óσ«ñ¡«¼ »«-
  10858.         Γ«¬Ñ ß»¿ß«¬ ¿½¿ Σπ¡¬Γ«α »ÑαÑñáÑΓß∩ »« ßß佬Ñ, ó  óδσ«ñ¡«¼  »«Γ«¬Ñ
  10859.         ß»¿ß«¬  ¿½¿ Σπ¡¬Γ«α »ÑαÑñáÑΓß∩, ¬á¬ π¬áºáΓѽ∞ ¡á ßß佬π ¡á ßΓαπ¬-
  10860.         Γπαπ. (Æπαí« Åα«½«ú  »ÑαÑñáÑΓ  áñαÑß  π¬áºáΓѽ∩  ¡á  ó«ºóαáΘáѼπε
  10861.         ßΓαπ¬Γπαπ.) éßÑ ßΓαπ¬Γπαδ, ó«ºóαáΘáѼδÑ Æπαí« Åα«½«úπ, ñ«½ª¡δ ¿ß-
  10862.         »«½∞º«óáΓ∞ »á¼∩Γ∞, óδñѽѡ¡πε ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ αáß»αÑñѽѡ¿∩ »á-
  10863.         ¼∩Γ¿  Æπαí« Åα«½«úá. (æ¼. "Éπ¬«ó«ñßΓó« »«½∞º«óáΓѽ∩ »« Æπαí« Åα«-
  10864.         ½«úπ" ¿ "æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó« »« Æπαí« Åα«½«úπ".)
  10865.  
  10866.  
  10867.  
  10868.  
  10869.  
  10870.         TASM2 #3-5/䫬              = 256 =
  10871.  
  10872.                          Åα¿½«ªÑ¡¿Ñ C. ÄΓóÑΓδ ¡á «íΘ¿Ñ ó«»α«ßδ                 
  10873.         -----------------------------------------------------------------
  10874.  
  10875.              Åα¿óÑñÑ¡¡δÑ ñá½ÑÑ  αѬ«¼Ñ¡ñᵿ¿  ¿  ºá¼Ñτá¡¿∩ ¼«úπΓ íδΓ∞ óá¼
  10876.         »«½Ñº¡δ »α¿ ¿ß»«½∞º«óá¡¿¿ Æπαí« ÇßßѼí½Ñαá.
  10877.  
  10878.              é«»α«ß: èᬠπßΓá¡«ó¿Γ∞ Æπαí« ÇßßѼí½Ñα ó ß¿ßΓѼÑ?
  10879.  
  10880.              ÄΓóÑΓ: çá»πßΓ¿ΓÑ »α«úαá¼¼π πßΓᡫ󬿠INSTALL ß πßΓá¡«ó«τ¡«ú«
  10881.         ñ¿ßΓα¿íπΓ¿ó¡«ú«  ñ¿ß¬á Æπαí« ÇßßѼí½Ñαá.  ùΓ«íδ ¡áτáΓ∞ πßΓá¡«ó¬π,
  10882.         ¿º¼Ñ¡¿ΓÑ ΓѬπΘ¿⌐ ñ¿ß¬ ¡á Γ«Γ, úñÑ ß«ñÑαªáΓß∩ »α«úαá¼¼δ πßΓá¡«ó¬¿,
  10883.         ¿ óóÑñ¿ΓÑ INSTALL.  é αἬѠ󠡿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á óá¼ íπñπΓ óδó«-
  10884.         ñ¿Γ∞ß∩ ¿¡ßΓαπ¬µ¿¿. ìá»α¿¼Ñα, Ñß½¿ óδ óδ»«½¡∩ÑΓÑ πßΓá¡«ó¬π ß ñ¿ß¬á
  10885.         A:, óóÑñ¿ΓÑ:
  10886.  
  10887.               A:
  10888.               INSTALL
  10889.  
  10890.              Å«ß½Ñ φΓ«ú« »α«úαá¼¼á INSTALL óδóÑñÑΓ ¼Ñ¡ε óδí«αá  ¿  «»¿ßá-
  10891.         ¡¿∩, ¬«Γ«αδÑ »«¼«úπΓ óá¼ óδ»«½¡¿Γ∞ »α«µÑßß πßΓá¡«ó¬¿.
  10892.  
  10893.              é«»α«ß: è«úñá  ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ αẽ¿τ¡δÑ αѪ¿¼δ áßßѼí-
  10894.         ½¿α«óá¡¿∩, »αÑñπß¼«ΓαÑ¡¡δÑ ñ½∩ »«ßΓáó½∩Ѽδσ ¡á ñ¿ß¬Ñ »α«úαá¼¼?
  10895.  
  10896.              ÄΓóÑΓ:
  10897.  
  10898.             ÉѪ¿¼                     ôß½«ó¿∩ ¿ß»«½∞º«óá¡¿∩
  10899.             -------------------------------------------------------------
  10900.             Äíδτ¡δ⌐(MASM)        - Åα«úαá¼¼δ  áßßÑ¼í½¿απεΓß∩  »«ñ óÑαß¿Ñ⌐
  10901.                                    MASM 4.00 ¿½¿ MASM 5.00.
  10902.             Quirks               - Åα«úαá¼¼δ  áßßÑ¼í½¿απεΓß∩ »«ñ  óÑαß¿Ñ⌐
  10903.                                    MASM 4.00 ¿½¿ MASM 5.00, ¡«  ¡Ñ  íπñπΓ
  10904.                                    áßßÑ¼í½¿α«óáΓ∞ß∩ ó  TASM íѺ  π¬áºá¡¿∩
  10905.                                    ñ¿αÑ¬Γ¿ó MASM51 ¿½¿ QUIRKS.
  10906.             Masm51               - Åα«úαá¼¼δ ΓαÑíπεΓ  ñ½∩ áßßÑ¼í½¿α«óá¡¿∩
  10907.                                    MASM óÑαß¿¿ 5.1.
  10908.             Masm51 ¿ Quirks      - Åα«úαá¼¼δ ΓαÑíπεΓ ñ½∩  áßßÑ¼í½¿α«óá¡¿∩
  10909.                                    MASM 5.1, ¡« ¡Ñ íπñπΓ áßßÑ¼í½¿α«óáΓ∞ß∩
  10910.                                    ó TASM, ¬«úñá ºáñá¡« Γ«½∞¬« MASM51.
  10911.  
  10912.              é«»α«ß: ìπª¡« ½¿  ¿ß»«½∞º«óáΓ∞  MASM51  ñ½∩  áßßÑ¼í½¿α«óá¡¿∩
  10913.         Σá⌐½«ó, ¡á»¿ßá¡¡δσ ñ½∩ MASM óÑαß¿¿ 5.1?
  10914.  
  10915.              ÄΓóÑΓ: ü«½∞Φ¿¡ßΓó«  Σá⌐½«ó  íπñπΓ áßßÑ¼í½¿α«óáΓ∞ß∩  ñáªÑ íѺ
  10916.         ¿ß»«½∞º«óá¡¿∩ ñ¿αÑ¬Γ¿óδ MASM51. Äñ¡á¬«, Ñß½¿ óδ áßßÑ¼í½¿απÑΓÑ ¿ß-
  10917.         σ«ñ¡δ⌐ ¬«ñ, ó ¬«Γ«α«¼ ¿ß»«½∞ºπεΓß∩ ßαÑñßΓóá, »α¿¼Ñ¡∩ѼδÑ Γ«½∞¬« ó
  10918.  
  10919.         TASM2 #3-5/䫬              = 257 =
  10920.  
  10921.         MASM óÑαß¿¿ 5.1, óá¼ »«ΓαÑíπÑΓß∩ ¿ß»«½∞º«óáΓ∞ αѪ¿¼ MASM51.
  10922.  
  10923.              ùΓ«íδ «»αÑñѽ¿Γ∞,  ¬á¬¿Ñ ßαÑñßΓóá φ¼π½∩µ¿¿ MASM51  αáºαÑΦÑ¡δ
  10924.         »α¿ ß«τÑΓá¡¿¿ αѪ¿¼«ó MASM51 ¿ QUIRKS,  »α«óÑα∞ΓÑ ß½ÑñπεΘπε ñá½ÑÑ
  10925.         Γáí½¿µπ.
  10926.  
  10927.              é«»α«ß: èᬿѠφ½Ñ¼Ñ¡Γδ π»αáó½∩εΓß∩ ß »«¼«Θ∞ε  αѪ¿¼«ó QUIRKS
  10928.         ¿ MASM51?
  10929.  
  10930.              ÄΓóÑΓ: é ß½ÑñπεΘÑ⌐ Γáí½¿µÑ π¬áºδóáÑΓß∩, τΓ« ñѽáεΓ αẽ¿τ¡δÑ
  10931.         ß«τÑΓá¡¿∩ αѪ¿¼«ó QUIRKS ¿ MASM51:
  10932.  
  10933.             ÉѪ¿¼                  Ä»Ñαᵿ¿
  10934.             -------------------------------------------------------------
  10935.             Quirks               - àß½¿ φΓ« ñ«»π߬áÑΓ CS, αáºαÑΦáÑΓ úÑ¡Ñ-
  10936.                                    αáµ¿ε »ÑαÑσ«ñ«ó Γ¿»á FAR, ¬á¬ NEAR ¿½¿
  10937.                                    SHORT.
  10938.                                  - ä«»π߬áÑΓ,  τΓ«íδ  ¿¡ßΓαπ¬µ¿¿ óßÑσ αá-
  10939.                                    º«»αÑñѽ∩½¿ß∞  ó   ñó«¿τ¡«⌐   «»Ñαᵿ¿
  10940.                                    Γ«½∞¬« αÑú¿ßΓα«¼ (Ñß½¿ «¡ ¿¼ÑÑΓß∩).
  10941.                                  - ÄΓ¼Ñ¡∩ÑΓ OFFSET, »ÑαÑ«»αÑñѽѡ¿Ñ  ßÑú-
  10942.                                    Γ«ó ¿ Γ.ñ. ê¡Σ«α¼áµ¿ε »« '=' ¿½¿  τ¿ß-
  10943.                                    ½«óδ¼ »α¿ßóá¿óá¡¿∩¼ 'EQU'.
  10944.                                  - Åα¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« »α¿ßóá¿óá¡¿∩  EQU
  10945.                                    ñ½∩ óδαáªÑ¡¿⌐,  ß«ñÑαªáΘ¿σ  "PTR"  ¿½¿
  10946.                                    ":", íπñπΓ ΓѬßΓ«ó묨.
  10947.  
  10948.             Masm51               - Instr,   Catstr,  Substr,  Sizestr,  ¿
  10949.                                    "\" (»α«ñ«½ªÑ¡¿Ñ ßΓ᫬¿) αáºαÑΦáεΓß∩.
  10950.                                  - EQU ñ½∩ ¬½ετÑóδσ ß½«ó íπñπΓ TEXT, á ¡Ñ
  10951.                                    ALIAS.
  10952.                                  - é %textmacro ó áαúπ¼Ñ¡Γáσ ¼á¬α«¬«¼á¡ñδ
  10953.                                    »αÑñΦÑßΓóπεΘ¿Ñ »α«íÑ½δ ¡Ñ «ΓíαáßδóáεΓ-
  10954.                                    ß∩.
  10955.  
  10956.             Masm51 ¿ Quirks      - éßÑ, τΓ« π¬áºá¡« αá¡ÑÑ ñ½∩ QUIRKS.
  10957.                                  - éßÑ, τΓ« π¬áºá¡« αá¡ÑÑ ñ½∩ MASM51.
  10958.                                  - αáºαÑΦáεΓß∩  ½«¬á½∞¡δÑ  ¼ÑΓ¬¿  @@,
  10959.                                    @F, ¿ @B.
  10960.                                  - é αáßΦ¿αÑ¡¡δσ ¼«ñѽ∩σ  ¿¼Ñ¡á  »α«µÑñπα
  10961.                                    áóΓ«¼áΓ¿τÑ߬¿ ßΓá¡«ó∩Γß∩ «íΘÑñ«ßΓπ»¡δ-
  10962.                                    ¼¿.
  10963.                                  - ü½¿ª¡¿Ñ ¼ÑΓ¬¿ »α«µÑñπα ¼«úπΓ »ÑαÑ«»αÑ-
  10964.                                    ñѽ∩Γ∞ß∩ ó ñαπú¿σ »α«µÑñπαáσ.
  10965.                                  - ä½∩ «»αÑñѽѡ¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá,  ¬«Γ«-
  10966.                                    αδ⌐ ñ«ßΓ¿ª¿¼  ó¡Ñ  ΓѬπΘÑ⌐  »α«µÑñπαδ,
  10967.  
  10968.         TASM2 #3-5/䫬              = 258 =
  10969.  
  10970.                                    αáºαÑΦѡᠫ»Ñαᵿ∩ "::".
  10971.  
  10972.             Masm51 ¿ Ideal       - Å«ññÑনóáÑΓß∩  ß¿¡Γá¬ß¿ß  π½πτΦÑ¡¡«ú«
  10973.                                    αѪ¿¼á  ¿   ΓѬßΓ«óδÑ   ¼á¬α«ñ¿αÑ¬Γ¿óδ
  10974.                                    Masm51 (Γ« ÑßΓ∞ Instr, Catstr, Substr,
  10975.                                    ¿ Sizestr).
  10976.  
  10977.              é«»α«ß: è«úñá  ß½ÑñπÑΓ  ¿ß»«½∞º«óáΓ∞  ñ¿αÑ¬Γ¿óδ  DOSSEG  ¿½¿
  10978.         .STACK?
  10979.  
  10980.              ÄΓóÑΓ: è«úñá  óδ  αáºαáíáΓδóáÑΓÑ  ¼«ñπ½¿  Æπαí«  ÇßßѼí½Ñαá,
  10981.         »αÑñ¡áº¡áτÑ¡¡δÑ  ñ½∩  ¬«¼»«¡«ó¬¿  ß ∩ºδ¬á¼¿ óδß«¬«ú« πα«ó¡∩ (Γ¿»á
  10982.         Æπαí« æ¿ ¿½¿ Æπαí« Åá߬á½∩),  Γ« ñ¿αÑ¬Γ¿óδ DOSSEG ¿½¿  .STACK  ¡Ñ
  10983.         ΓαÑíπεΓß∩, Γᬠ¬á¬ »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó ¿ ßΓѬ «»αÑñѽ∩εΓß∩ ¬«¼»¿½∩-
  10984.         Γ«αἿ φΓ¿σ ∩ºδ¬«ó. ¥Γ¿ ñ¿αÑ¬Γ¿óδ «»αÑñѽ∩εΓ ¿¼Ñ¡á ¿ »«α∩ñ«¬ ßÑú-
  10985.         ¼Ñ¡Γ«ó,  ¬«Γ«αδÑ ¼«úπΓ »α¿óÑßΓ¿ ¬ ¬«¡Σ½¿¬Γπ ¼ ñαπú¿¼ ∩ºδ¬«¼ óδß«-
  10986.         ¬«ú« πα«ó¡∩. Äñ¡á¬«, ¿σ ß½ÑñπÑΓ ºáñáΓ∞ («ñ¿¡ αáº) ó ¬á¬«¼-½¿í« ¿º
  10987.         ¼«ñπ½Ñ⌐ áóΓ«¡«¼¡«⌐ »α«úαá¼¼δ ¡á ÇßßѼí½ÑαÑ.  ä¿αÑ¬Γ¿óá DOSSEG ¡Ñ-
  10988.         «íσ«ñ¿¼á Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ óδ σ«Γ¿ΓÑ, τΓ«íδ óáΦ¿ ßÑú¼Ñ¡Γδ
  10989.         π»«α∩ñ«τ¿ó὿ß∞ ó ß««ΓóÑΓßΓó¿¿ ß ß«ú½áΦÑ¡¿∩¼¿ Σ¿α¼δ Microsoft. éδ
  10990.         ¼«ªÑΓÑ ºáñáΓ∞ ß«íßΓóÑ¡¡δ⌐ »«α∩ñ«¬ ßÑú¼Ñ¡Γ«ó,  «íÑß»Ñτ¿ó, τΓ« óáΦ¿
  10991.         ßÑú¼Ñ¡Γδ  íπñπΓ «í¡áαπªÑ¡δ πΓ¿½¿Γ«⌐ TLINK ó Γ«¼ »«α∩ñ¬Ñ,  ¬«Γ«αδ⌐
  10992.         óδ σ«Γ¿ΓÑ.  Å«½¡«Ñ «»¿ßá¡¿Ñ φΓ«ú« »α«µÑßßá ß«ñÑনΓß∩ ó  αáºñѽáσ
  10993.         απ¬«ó«ñßΓóá, ¬áßáεΘ¿σß∩ πΓ¿½¿Γδ TLINK.
  10994.  
  10995.              é«»α«ß: èᬿѠ»áαá¼ÑΓαδ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ ñ½∩ áßßÑ¼í½¿α«-
  10996.         óá¡¿∩ ß »«¼«Θ∞ε Æπαí« ÇßßѼí½Ñαá Σá⌐½«ó,  »«ßΓáó½∩Ѽδσ ß ¬«¼»¿½∩-
  10997.         Γ«α«¼ ∩ºδ¬á æ¿ Σ¿α¼δ Microsoft.
  10998.  
  10999.              ÄΓóÑΓ: Åα¿ ¬«¼»¿½∩µ¿¿ Γá¬¿σ ¼«ñπ½Ñ⌐ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñαá ¡πª-
  11000.         ¡« πíÑñ¿Γ∞ß∩,  τΓ« ¿ß»«½∞ºπεΓß∩ αѪ¿¼δ MASM51 ¿ QUIRKS. ìá»α¿¼Ñα:
  11001.  
  11002.                tasm /jmasm51 /jquirks filename
  11003.  
  11004.              é«»α«ß: èᬠ¼«ª¡« ß«ºñáΓ∞ Σá⌐½ .COM?
  11005.  
  11006.              ÄΓóÑΓ: êßσ«ñ¡δ⌐ ¬«ñ áßßѼí½Ñαá ¡πª¡« ¬«¼»¿½¿α«óáΓ∞ ß ¿ß»«½∞-
  11007.         º«ó᡿Ѽ  ßóÑασ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿ (.MODEL TINY),  á ºá ßÑú¼Ñ¡Γ«¼
  11008.         ¬«ñá ó »α«úαá¼¼π ¡πª¡« ó¬½ετ¿Γ∞ ORG 100h, ¡á»α¿¼Ñα:
  11009.  
  11010.                         .MODEL  TINY
  11011.                         .CODE
  11012.                         ORG     100h
  11013.                 start:
  11014.                         ....          ; Γѽ« »α«úαá¼¼δ
  11015.                 ENDS    start         ; «»αÑñѽ∩ÑΓ Γ«τ¬π óσ«ñá »α¿
  11016.  
  11017.         TASM2 #3-5/䫬              = 259 =
  11018.  
  11019.                                       ; ºá»π߬Ñ
  11020.                 END
  11021.  
  11022.              é »α«úαá¼¼π,  ¬«Γ«αá∩  ¿ß»«½∞ºπÑΓß∩  ñ½∩  Σ«α¼¿α«óá¡¿∩ Σá⌐½á
  11023.         .COM, ¡Ñ ß½ÑñπÑΓ ó¬½ετáΓ∞ ñ¿αÑ¬Γ¿óπ .STACK.
  11024.  
  11025.              ôΓ¿½¿Γá TLINK íπñÑΓ ß«ºñáóáΓ∞ ó¼ÑßΓ« Σá⌐½á .EXE  Σá⌐½  .COM,
  11026.         Ñß½¿ ºáñá¡ »áαá¼ÑΓα /t, ¡á»α¿¼Ñα, ¬«¼á¡ñá:
  11027.  
  11028.                 tlink -t SHOW87
  11029.  
  11030.         íπñÑΓ ó¼ÑßΓ« Σá⌐½á SHOW87.EXE ß«ºñáóáΓ∞ Σá⌐½ SHOW87.COM.
  11031.  
  11032.              Åα¿ »αÑ«íαẫóá¡¿¿  Σá⌐½á .EXE ó Σá⌐½ .COM ¿¼ÑεΓß∩ ¡Ñ¬«Γ«αδÑ
  11033.         «úαá¡¿τÑ¡¿∩.  ¥Γ¿ «úαá¡¿τÑ¡¿∩ «»¿ßá¡δ ó απ¬«ó«ñßΓóÑ »« «»Ñαᵿ«¡-
  11034.         ¡«⌐ ß¿ßΓѼѠDOS Σ¿α¼δ IBM (EXE2BIN).
  11035.  
  11036.              é«»α«ß: èᬠ ß »«¼«Θ∞ε Æπαí« ÇßßѼí½Ñαá ¼«ª¡« áßßÑ¼í½¿α«óáΓ∞
  11037.         ¡Ñ߬«½∞¬« Σá⌐½«ó?
  11038.  
  11039.              ÄΓóÑΓ: ¥Γ« ¼«ª¡« ßñѽáΓ∞, ¿ß»«½∞ºπ∩ ó ¿¼Ñ¡¿ Σá⌐½á  ΓαáΣáαÑΓ-
  11040.         ¡δÑ ß¿¼ó«½δ ¿½¿ αáºñѽ¿ó ºáñáóáѼδѠ󠬫¼á¡ñÑ ¿¼Ñ¡á Σá⌐½«ó º¡á¬«¼
  11041.         "»½εß" (+). ìá»α¿¼Ñα, ó ß½ÑñπεΘÑ⌐ ¬«¼á¡ñÑ:
  11042.  
  11043.                tasm filt + o*
  11044.  
  11045.         íπñÑΓ áßßÑ¼í½¿α«óáΓ∞ß∩ Σá⌐½ FILT.ASM, á ΓᬪѠΣá⌐½δ .ASM, ¬«Γ«αδÑ
  11046.         ¡áτ¿¡áεΓß∩ ß íπ¬óδ 'o'.
  11047.  
  11048.              é«»α«ß: èᬠ¼«ª¡« áßßÑ¼í½¿α«óáΓ∞ ¡Ñ߬«½∞¬« Σá⌐½«ó, ¿ß»«½∞ºπ∩
  11049.         ñ½∩ ¡¿σ αạδÑ »áαá¼ÑΓαδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿?
  11050.  
  11051.              ÄΓóÑΓ: é ¬áτÑßΓóÑ αáºñѽ¿Γѽ∩ ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ  Æπαí«  Çß-
  11052.         ßѼí½Ñαá  ¿ß»«½∞ºπÑΓß∩  Γ«τ¬á ß ºá»∩Γ«⌐ (;).  Å«φΓ«¼π ó «ñ¡«⌐ ¬«-
  11053.         ¼á¡ñ¡«⌐ ßΓα«¬Ñ DOS óδ ¼«ªÑΓÑ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  ºáñáΓ∞ ¡Ñ߬«½∞¬«
  11054.         ¬«¼á¡ñ áßßÑ¼í½¿α«óá¡¿∩. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ ¬«¼á¡ñ¡á∩ ßΓ᫬á:
  11055.  
  11056.                tasm /zi filt; o*
  11057.  
  11058.         íπñÑΓ áßßÑ¼í½¿α«óáΓ∞ Σá⌐½ FILT.ASM ß ó¬½ετÑ¡¿Ñ¼ ó ¡Ñú« ¿¡Σ«α¼áµ¿¿
  11059.         ñ½∩ «Γ½áñ¬¿,  á ºáΓѼ áßßÑ¼í½¿α«óáΓ∞ óßÑ Σá⌐½δ .ASM, ¡áτ¿¡áεΘ¿Ñß∩
  11060.         ß íπ¬óδ 'o, íѺ ó¬½ετÑ¡¿∩ ¿¡Σ«α¼áµ¿¿ ñ½∩ «Γ½áñ¬¿.
  11061.  
  11062.              é«»α«ß: îá¬α«áßßѼí½Ñα  Σ¿α¼δ Microsoft »«ºó«½∩ÑΓ «»αÑñѽ∩Γ∞
  11063.         »ÑαѼѡ¡δÑ «»Ñαᵿ«¡¡«⌐ ßαÑñδ,  »«φΓ«¼π ¿σ ¡Ñ  ¡πª¡«  óó«ñ¿Γ∞  ¡á
  11064.         ¬áªñ«⌐ ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ.  î«ª¡« ½¿ φΓ« ßñѽáΓ∞ »α¿ αáí«ΓÑ ß Æπαí«
  11065.  
  11066.         TASM2 #3-5/䫬              = 260 =
  11067.  
  11068.         ÇßßѼí½Ñα«¼?
  11069.  
  11070.              ÄΓóÑΓ: ìÑΓ, «ñ¡á¬«, τΓ«íδ ¿ºíѪáΓ∞ óó«ñá »áαá¼ÑΓα«ó »α¿ ¬áª-
  11071.         ñ«¼ ¡áí«αÑ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿,  ó Æπαí« ÇßßѼí½ÑαÑ »αÑñπß¼«ΓαÑ¡ ÑΘÑ
  11072.         í«½ÑÑ ú¿í¬¿⌐ ß»«ß«í.  èáªñδ⌐ αẠ»α¿ ºá»π߬ѠÆπαí« ÇßßѼí½Ñαá  «¡
  11073.         ¿ΘÑΓ ó ΓѬπΘѼ ¬áΓὫúÑ,  á ºáΓѼ ó Γ«¼ ¬áΓὫúÑ,  ¿º ¬«Γ«α«ú« «¡
  11074.         ºá»π߬áÑΓß∩,  (ó DOS óÑαß¿¿ 3.σ ¿ ßΓáαΦÑ) ß»Ñµ¿á½∞¡δ⌐ Σá⌐½ ß ¿¼Ñ-
  11075.         ¡Ñ¼ TASM.CFG. ¥Γ«Γ Σá⌐½ ¼«ªÑΓ ß«ñÑαªáΓ∞ ½εíπε ¿¡Σ«α¼áµ¿ε, ¬«Γ«αá∩
  11076.         ß«ñÑনΓß∩ ó ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ.  Ä¡ «íαáíáΓδóáÑΓß∩  »Ñαóδ¼,  »«ß½Ñ
  11077.         τÑú« «íαáíáΓδóáÑΓß∩ ¬«¼á¡ñ¡á∩ ßΓ᫬á, »«φΓ«¼π »áαá¼ÑΓαδ ¬«¼á¡ñ¡«⌐
  11078.         ßΓ᫬¿ ¿¼ÑεΓ í«½ÑÑ óδß«¬¿⌐ »α¿«α¿ΓÑΓ »« ßαáó¡Ñ¡¿ε ß  »áαá¼ÑΓαἿ,
  11079.         ¬«Γ«αδÑ ß«ñÑαªáΓß∩ ó Σá⌐½Ñ ¬«¡Σ¿úπαᵿ¿ TASM.CFG.  ìá»α¿¼Ñα, Ñß½¿
  11080.         ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ óδ óßÑúñá ¿ß»«½∞ºπÑΓÑ »áαá¼ÑΓαδ:
  11081.  
  11082.                /t /ml /zi /jJUMPS /jLOCALS
  11083.  
  11084.         Γ« ß½ÑñπÑΓ ß«ºñáΓ∞ Σá⌐½ TASM.CFG, ß«ñÑαªáΘ¿⌐ ß½ÑñπεΘ¿Ñ ßΓ᫬¿:
  11085.  
  11086.                /t
  11087.                /ml
  11088.                /zi
  11089.                /jJUMPS
  11090.                /jLOCALS
  11091.  
  11092.              çá¼ÑΓ¿¼, τΓ« »α¿ ¬áªñ«¼ ºá»π߬ѠÆπαí« ÇßßѼí½Ñαá  φΓ¿  »áαá-
  11093.         ¼ÑΓαδ íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ »« π¼«½τá¡¿ε.  ¥Γ« «º¡áτáÑΓ,  τΓ« Ñß½¿
  11094.         φΓ« ¡Ñ«íσ«ñ¿¼«,  óδ ¼«ªÑΓÑ ñ½∩ ¬áªñ«ú« ¿º  ßó«¿σ  »α«Ñ¬Γ«ó  ¿¼ÑΓ∞
  11095.         αẽ¿τ¡δÑ  Σá⌐½δ TASM.CFG.  àß½¿ π óáß ¿¼ÑÑΓß∩ ¡Ñ߬«½∞¬« »α«Ñ¬Γ«ó
  11096.         (»α«úαá¼¼),  ß«ñÑαªáΘ¿σß∩ ó «ñ¡«¼ »«ñ¬áΓὫúÑ,  Γ« óδ ¼«ªÑΓÑ  ñ½∩
  11097.         ¬áªñ«ú« ¿º ¡¿σ ß«ºñáΓ∞ «Γñѽ∞¡δ⌐ Σá⌐½ ¬«¡Σ¿úπαᵿ¿ ¿ ¿ß»«½∞º«óáΓ∞
  11098.         ¿σ, ¬á¬ ¬«ßóÑ¡¡δÑ ¬«¼á¡ñ¡δÑ Σá⌐½δ Æπαí« ÇßßѼí½Ñαá.
  11099.  
  11100.              é«»α«ß: ùΓ« »αÑñßΓáó½∩εΓ  ß«í«⌐  ¬«ßóÑ¡¡δÑ  ¬«¼á¡ñ¡δÑ  Σá⌐½δ
  11101.         Æπαí« ÇßßѼí½Ñαá?
  11102.  
  11103.              ÄΓóÑΓ: ¥Γ« Σá⌐½δ,  ¬«Γ«αδÑ ß«ñÑαªáΓ τáßΓ¿τ¡δÑ ¿½¿ »«½¡δÑ ¬«-
  11104.         ¼á¡ñ¡δÑ ßΓ᫬¿ Æπαí« ÇßßѼí½Ñαá,  ¿  »ÑαÑñ  ¬«Γ«α묨  π¬áºδóáÑΓß∩
  11105.         º¡á¬  @.  ìá»α¿¼Ñα,  Ñß½¿ π óáß ¿¼ÑÑΓß∩ Σá⌐½ ß ¿¼Ñ¡Ñ¼ "FILE.CMD",
  11106.         ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ß½ÑñπεΘÑÑ:
  11107.  
  11108.                /t
  11109.                /ml
  11110.                /zi
  11111.                /jJUMPS
  11112.                /jLOCALS
  11113.                file1 +
  11114.  
  11115.         TASM2 #3-5/䫬              = 261 =
  11116.  
  11117.                file2 +
  11118.                file3 +
  11119.                file4
  11120.  
  11121.         Γ« óáß ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ ¬«¼á¡ñ¡πε ßΓ᫬π:
  11122.  
  11123.                tasm @FILE.CMD
  11124.  
  11125.         á ¡Ñ ¬«¼á¡ñ¡πε ßΓ᫬π:
  11126.  
  11127.                tasm /t /ml /zi /jJUMPS /jLOCALS file1+file2+file3+file4
  11128.  
  11129.              çá¼ÑΓ¿¼, τΓ« ß¿¼ó«½ @ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¡Ñ  ∩ó½∩ÑΓß∩ τáßΓ∞ε
  11130.         ¿¼Ñ¡¿ Σá⌐½á. öá¬Γ¿τÑ߬¿, Ñß½¿ óδ »α¿ßó«¿ΓÑ Σá⌐½π ¿¼∩, ¬«Γ«α«Ñ ¡á-
  11131.         τ¿¡áÑΓß∩ ß ß¿¼ó«½á @,  Γ« Æπαí« ÇßßѼí½Ñα íπñÑΓ «íαáíáΓδóáΓ∞ Ñú«,
  11132.         ¬á¬ ¬«ßóÑ¡¡δ⌐ ¬«¼á¡ñ¡δ⌐ Σá⌐½.
  11133.  
  11134.              é«»α«ß: ƒ óδ»«½¡∩ε ¬«¼»«¡«ó¬π ßó«¿σ Σπ¡¬µ¿⌐ ¡á ∩ºδ¬Ñ ÇßßѼí-
  11135.         ½Ñαá ß Æπαí« æ¿. Å«τÑ¼π ¬«¼»«¡«óΘ¿¬ ß««íΘáÑΓ, τΓ« óßÑ ¼«¿ Σπ¡¬µ¿¿
  11136.         ¡Ñ«»αÑñѽѡδ?
  11137.  
  11138.              ÄΓóÑΓ: ôíÑñ¿ΓÑß∞,  τΓ« »ÑαÑñ óßѼ¿ ¿¼Ñ¡á¼¿ Σπ¡¬µ¿⌐, αÑ὿º«-
  11139.         óá¡¡δσ ¡á ÇßßѼí½ÑαÑ ¿ óδºδóáѼδσ ó Æπαí« æ¿,  óδ π¬áºá½¿  ß¿¼ó«½
  11140.         »«ñτÑનóá¡¿∩  (_).  àß½¿  óδ  ¿ß»«½∞ºπÑΓÑ π»α«ΘÑ¡¡δÑ «»αÑñѽѡ¿∩
  11141.         ßÑú¼Ñ¡Γ«ó ¿ ó¬½ετáÑΓÑ ó ñ¿αÑ¬Γ¿óπ .MODEL ß»Ñµ¿Σ¿¬áΓ«α  ∩ºδ¬á  æ¿,
  11142.         Γ« Æπαí« ÇßßѼí½Ñα íπñÑΓ ñ«íáó½∩Γ∞ φΓ¿ ß¿¼ó«½δ áóΓ«¼áΓ¿τÑ߬¿. éá-
  11143.         Φá »α«úαἼᠡá ∩ºδ¬Ñ ÇßßѼí½Ñαá ñ«½ª¡á áßßÑ¼í½¿α«óáΓ∞ß∩ ß αẽ¿-
  11144.         τ¿Ñ¼  ó  íπ¬óáσ  óÑασ¡Ñú«  ¿ ¡¿ª¡Ñú« αÑú¿ßΓα«ó (»áαá¼ÑΓαδ /ML ¿½¿
  11145.         /MX).  Å«ñα«í¡«ßΓ¿ ¼«ª¡« πº¡áΓ∞ ó â½áóÑ 6 "Äαúá¡¿ºáµ¿∩ ¿¡ΓÑαΣÑ⌐ßá
  11146.         Æπαí« ÇßßѼí½Ñαá ¿ Æπαí« æ¿".
  11147.  
  11148.              é«»α«ß: î«ª¡«  ½¿  ó ¬áτÑßΓóѠ߻ѵ¿Σ¿¬áΓ«αá »áαá¼ÑΓαá π¬áºδ-
  11149.         óáΓ∞ ¡Ñ »α∩¼πε (/), á «íαáΓ¡πε ¬«ßπε τÑαΓπ (\)?
  11150.  
  11151.              ÄΓóÑΓ: ìÑΓ. Æπαí« ÇßßѼí½Ñα (¿ MASM) íπñπΓ «íαáíáΓδóáΓ∞ φΓ«,
  11152.         ¬á¬ ¿¼∩ Σá⌐½á, ¬«Γ«αδ⌐ ¡áσ«ñ¿Γß∩ ó ¬«α¡Ñó«¼ ¬áΓὫúÑ ¡á ¿ß»«½∞ºπ-
  11153.         Ñ¼«¼ »« π¼«½τá¡¿ε ñ¿ß¬Ñ. Æá¬ ¬á¬ «íá áßßѼí½Ñαá «íαáíáΓδóáεΓ ß¿¼-
  11154.         ó«½  »α«íѽᠿñÑ¡Γ¿τ¡« ºá»∩Γ«⌐,  φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »«ΓÑαÑ Σá⌐-
  11155.         ½«ó. àß½¿ óδ ß½πτá⌐¡« ºáñáñ¿ΓÑ ß½ÑñπεΘπε ¬«¼á¡ñ¡πε ßΓ᫬π:
  11156.  
  11157.               tasm \zi prid&joy.asm
  11158.  
  11159.         Γ« Æπαí« ÇßßѼí½Ñα (¿ MASM) ó«ß»α¿¡∩½¿ íδ φΓπ  ¬«¼á¡ñ¡πε  ßΓ᫬π,
  11160.         ¬á¬  π¬áºá¡¿Ñ áßßÑ¼í½¿α«óáΓ∞ Σá⌐½ ß ¿¼Ñ¡Ñ¼ ZI.ASM,  ¬«Γ«αδ⌐ ¼«ª¡«
  11161.         ¡á⌐Γ¿ ó ¬«α¡Ñó«¼ ¬áΓὫúÑ, ¿ ß«ºñáΓ∞ óδσ«ñ¡«⌐ Σá⌐½ (ó ΓѬπΘѼ ¬á-
  11162.         ΓὫúÑ)  ß  ¿¼Ñ¡Ñ¼  PRID&JOY.ASM.  (çá¼ÑΓ¿¼,  τΓ« ¿ß»«½∞ºπѼ«Ñ »«
  11163.  
  11164.         TASM2 #3-5/䫬              = 262 =
  11165.  
  11166.         π¼«½τá¡¿ε αáßΦ¿αÑ¡¿Ñ «íΩÑ¬Γ¡«ú« Σá⌐½á .OBJ ∩ó¡«  »ÑαÑ«»αÑñѽѡ« ó
  11167.         .ASM.) öá⌐½ PRID&JOY.ASM íπñÑΓ »ÑαѺỿßá¡ «íΩÑ¬Γ¡δ¼ Σá⌐½«¼, ½¿í«
  11168.         íπñÑΓ πñá½Ñ¡,  Ñß½¿ Σá⌐½ \ZI.ASM ¡Ñ󫺼«ª¡« ¡á⌐Γ¿ ¿  πß»ÑΦ¡«  áß-
  11169.         ßÑ¼í½¿α«óáΓ∞.   é   ½εí«⌐   ß½πτáÑ   ¿ßσ«ñ¡«Ñ   ß«ñÑন¼«Ñ  Σá⌐½á
  11170.         PRID&JOY.ASM íπñÑΓ »«ΓÑα∩¡«.
  11171.  
  11172.