home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / tp6progg.doc / pg22 < prev    next >
Encoding:
Text File  |  1991-02-04  |  42.2 KB  |  1,219 lines

  1.                            ù Ç æ Æ £  4.
  2.  
  3.           êæÅÄï£çÄéÇìêà TURBO PASCAL æ ƒç¢èÄî ÇææàîüïàÉÇ.
  4.  
  5.                              âïÇéÇ 22.
  6.  
  7.                        éæÆÉÄàìì¢ë ÇææàîüïàÉ.
  8.  
  9.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα  Turbo  Pascal   »«ºó«½∩ÑΓ   éá¼   »¿ßáΓ∞
  10. áßßѼí½Ñα¡δ⌐ ¬«ñ   ñ½∩   8086/8087  ¿  80286/80287  »α∩¼«  ó  éáΦ¿σ
  11. »α«úαá¼¼áσ ¡á  Åá߬á½Ñ.  è«¡Ñτ¡«,  éδ  ÑΘÑ  ¼«ªÑΓÑ  »αÑ«íαẫóδóáΓ∞
  12. áßßѼí½Ñα¡δÑ ¿¡ßΓαπ¬µ¿¿  ó ¼áΦ¿¡¡δ⌐ ¬«ñ óαπτ¡πε ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó
  13. «»ÑαáΓ«αáσ inline  ¿½¿  »«ñαÑñá¬Γ¿α«óáΓ∞∞   .OBJ   Σá⌐½δ,   ¬«Γ«αδÑ
  14. ß«ñÑαªáΓ external  »α«µÑñπαδ  ¿ Σπ¡¬µ¿¿,  ¬«úñá éδ σ«Γ¿ΓÑ ß¼ÑΦ¿óáΓ∞
  15. Åá߬á½∞ ¿ ÇßßѼí½Ñα.
  16.  
  17.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα    αÑ὿ºπÑΓ     í«½∞Φ«Ñ     »«ñ¼¡«ªÑßΓó«
  18. ß¿¡Γá¬ß¿ßá, »«ññÑনóáѼ«ú«   Turbo  Assembler  ¿  ¼á¬α«áßßѼí½Ñα«¼
  19. Microsoft. éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ññÑনóáÑΓ óßÑ ¬«ñδ «»Ñαᵿ⌐ 8086
  20. /8087 ¿   80286/80287   ¿   »«τΓ¿  óßÑ  «»ÑαáΓ«αδ  óδαáªÑ¡¿⌐  Turbo
  21. Assembler.
  22.  
  23.      çᠿ߬½ετÑ¡¿Ñ¼ DB,  DW,  DD («»αÑñѽ¿Γ∞ íá⌐Γ,  ß½«ó« ¿ ñó«⌐¡«Ñ
  24. ß½«ó«) ¡¿  «ñ¡á ¿º ñ¿αÑ¬Γ¿ó Turbo Assembler,  Γᬿσ ¬á¬ EQU,  PROC,
  25. STRUC, SEGMENT ¿ MACRO ¡Ñ  »«ññÑনóáÑΓß∩  óßΓα«Ñ¡¡δ¼  ÇßßѼí½Ñα«¼.
  26. Äñ¡á¬« «»Ñαᵿ¿,  »«ññÑনóáѼδÑ  ñ¿αÑ¬Γ¿óἿ  Turbo Assembler,  ó«
  27. ¼¡«ú«¼ ß««ΓóÑΓßΓóπεΓ  ß««ΓóÑΓßΓóπεΘ¿¼  ¬«¡ßΓαπ¬µ¿∩¼  Turbo  Pascal.
  28. ìá»α¿¼Ñα í«½∞Φ¿¡ßΓó«  ñ¿αÑ¬Γ¿ó EQU ß««ΓóÑΓßΓóπÑΓ «íΩ∩ó½Ñ¡¿∩¼ const,
  29. var ¿ type ó Turbo Pascal, ñ¿αÑ¬Γ¿óá PROC ß««ΓóÑΓßΓóπÑΓ «íΩ∩ó½Ñ¡¿∩¼
  30. procedure ¿ function, á ñ¿αÑ¬Γ¿óá STRUC ß««ΓóÑΓßóπÑΓ Γ¿»á¼ record ó
  31. Turbo Pascal.  é  ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  ¼«ª¡«   ñπ¼áΓ∞   «   óßΓα«Ñ¡¡«¼
  32. ÇßßѼí½ÑαÑ Turbo  Pascal,  ¬á¬  «  ¬«¼»¿½∩Γ«αÑ  ß  ∩ºδ¬á ÇßßѼí½Ñα,
  33. ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ ß¿¡Γá¬ß¿ß Åá߬á½∩ ñ½∩ óßÑσ «íΩ∩ó½Ñ¡¿⌐.
  34.  
  35.  
  36.                            Ä»ÑαáΓ«α asm.
  37.  
  38.      è óßΓα«Ñ¡¡«¼π   ÇßßѼí½Ñαπ   «íαáΘáεΓß∩  τÑαѺ  «»ÑαáΓ«α  asm.
  39. æ¿¡Γá¬ß¿ß «»ÑαáΓ«αá asm:
  40.  
  41.      asm AsmStatement < Separator AsmStatement > end
  42.  
  43.      úñÑ AsmStatement - φΓ« áßßѼí½Ñα¡δ⌐ «»ÑαáΓ«α,  á  Separator  -
  44. φΓ« ";",  ¡«óá∩ ßΓα«¬á ¿½¿ ¬«¼¼Ñ¡Γáα¿⌐ Åá߬á½∩.  ìÑ߬«½∞¬« »α¿¼Ñα«ó
  45. «»ÑαáΓ«αá asm:
  46.  
  47.      if EnableInts then
  48.        asm
  49.          sti
  50.        end
  51.        else
  52.        asm
  53.          cli
  54.        end;
  55.  
  56.      asm
  57.        mov ax,Left; xchg ax,Right; mov Left,ax;
  58.      end;
  59.      asm
  60.        mov    ah,0
  61.        int    16H
  62.        mov    CharCode,al
  63.        mov    ScanCode,ah
  64.      end;
  65.  
  66.      asm
  67.        push   ds
  68.        lds    si,Source
  69.        les    di,Dest
  70.        mov    cx,Count
  71.        cld
  72.        rep    movsb
  73.        pop    ds
  74.      end;
  75.  
  76.      çá¼ÑΓ¿¼, τΓ«  ¡á  «ñ¡«⌐  ßΓα«¬Ñ  ¼«ª¡«   »«¼ÑßΓ¿Γ∞   ¡Ñ߬«½∞¬«
  77. «»ÑαáΓ«α«ó ÇßßѼí½Ñαá,  αáºñѽѡ¡δσ ";". çá¼ÑΓ¿¼ ΓᬠªÑ, τΓ« ";" ¡Ñ
  78. ΓαÑíπÑΓß∩ ¼Ñªñπ ñóπ¼∩ áßßѼí½Ñα¡δ¼¿ «»ÑαáΓ«αἿ, Ñß½¿ «¡¿ ¡á αạδσ
  79. ßΓ᫬áσ. ìᬫ¡Ñµ  ºá¼ÑΓ¿¼,  τΓ«  ";"  ¡Ñ π¬áºδóáÑΓ,  τΓ« «ßΓáóΦá∩ß∩
  80. τáßΓ∞ ßΓ᫬¿ - ¬«¼¼Ñ¡Γáα¿⌐,  Γ.¬. ¬«¼¼Ñ¡Γáα¿⌐ ñ«½ªÑ¡ íδΓ∞ ¡á»¿ßá¡ ó
  81. ßΓ¿½Ñ Åá߬á½∩, ¿ß»«½∞ºπ∩ {} ¿ (* *).
  82.  
  83.  
  84.                      êß»«½∞º«óá¡¿Ñ αÑú¿ßΓα«ó.
  85.  
  86.      Åαáó¿½á ¿ß»«½∞º«óá¡¿∩ αÑú¿ßΓα«ó ó «»ÑαáΓ«αÑ asm  ó «íΘѼ ΓᬿÑ
  87. ªÑ, ¬á¬  ¿  ó  external »α«µÑñπαáσ ¿ Σπ¡¬µ¿∩σ.  Ä»ÑαáΓ«α asm ñ«½ªÑ¡
  88. ß«σαá¡∩Γ∞ αÑú¿ßΓαδ BP,  SP,  SS ¿  DS  ¿  ¼«ªÑΓ  ßó«í«ñ¡«  ¿º¼Ñ¡∩Γ∞
  89. αÑú¿ßΓαδ AX, BX, CX, DX, SI, DI, ES ¿ Flags. ìá óσ«ñÑ «»ÑαáΓ«αá asm
  90. BP π¬áºδóáÑΓ ¡á ΓѬπΘ¿⌐ ßΓѬ,  SP π¬áºδóáÑΓ ¡á  óÑαΦ¿¡π  ßΓѬá,  SS
  91. ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ¡δ⌐ áñαÑß ßÑú¼Ñ¡Γá ßΓѬá,  á DS ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ¡δ⌐
  92. áñαÑß ßÑú¼Ñ¡Γá ñá¡¡δσ. çᠿ߬½ετÑ¡¿Ñ¼ BP, SP, SS ¿ DS, «»ÑαáΓ«α asm
  93. ¡Ñ ñ«½ªÑ¡ ñѽáΓ∞ »αÑñ»«½«ªÑ¡¿⌐ « ß«ñÑন¼«¼ «ßΓá½∞¡δσ αÑú¿ßΓα«ó »α¿
  94. óσ«ñÑ ó «»ÑαáΓ«α.
  95.  
  96.  
  97.                 æ¿¡Γá¬ß¿ß áßßѼí½Ñα¡δσ «»ÑαáΓ«α«ó.
  98.  
  99.      æ¿¡Γá¬ß¿ß áßßѼí½Ñα¡«ú« «»ÑαáΓ«αá:
  100.  
  101.     [ Label ":" ] < Prefix > [ Opcode [ Operand < "," Operand > ] ]
  102.  
  103.      úñÑ Label - ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼ÑΓ¬¿, Prefix - ¬«ñ »αÑΣ¿¬ßá, Opcode
  104. - ñ¿αÑ¬Γ¿óá ¿½¿ ¿¡ßΓαπ¬µ¿∩  ÇßßѼí½Ñαá  ¿  OpÑrand  -  áßßѼí½Ñα¡«Ñ
  105. óδαáªÑ¡¿Ñ.
  106.  
  107.      è«¼¼Ñ¡Γáα¿¿ αáºαÑΦÑ¡δ  ¼Ñªñπ  áßßѼí½Ñα¡δ¼¿ «»ÑαáΓ«αἿ, ¡« ¡Ñ
  108. ó¡πΓα¿ ¿σ. ìá»α¿¼Ñα, φΓ« αáºαÑΦÑ¡«:
  109.  
  110.      asm
  111.        mov   ax,1        {Initial value}
  112.        mov   cx,100      {Count}
  113.      end;
  114.  
  115.      á φΓ« ¡ÑΓ:
  116.  
  117.      asm
  118.        mov   {Initial value} ax,1
  119.        mov   cx,{Count} 100
  120.      end;
  121.  
  122.  
  123.                               îÑΓ¬¿.
  124.  
  125.      îÑΓ¬¿ «»αÑñѽ∩εΓß∩   ó  ÇßßѼí½ÑαÑ  Γᬠ ªÑ,  ¬á¬  ó  Åá߬á½Ñ,
  126. ºá»¿ßδóá∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼ÑΓ¬¿ ß ñó«ÑΓ«τ¿Ñ¼ ñ« «»ÑαáΓ«αá;  ¬á¬  ¿  ó
  127. Åá߬á½Ñ, ¼ÑΓ¬¿,  «»αÑñѽѡ¡δÑ  ó  ÇßßѼí½ÑαÑ,  ñ«½ª¡δ «íΩ∩ó½∩Γ∞ß∩ ó
  128. ñѬ½áαáΓ¿ó¡«⌐ τáßΓ¿ label ó í½«¬Ñ,  ß«ñÑαªáΘѼ «»ÑαáΓ«α asm. Äñ¡á¬«
  129. ßπΘÑßΓóπÑΓ «ñ¡« ¿ß¬½ετÑ¡¿Ñ ¿º φΓ«ú« »αáó¿½á: ½«¬á½∞¡δÑ ¼ÑΓ¬¿.
  130.  
  131.      ï«¬á½∞¡δÑ ¼ÑΓ¬¿ - φΓ« ¼ÑΓ¬¿, ¬«Γ«αδÑ ¡áτ¿¡áεΓß∩ ß @. Å«ß¬«½∞¬π
  132. @ ¡Ñ ¼«ªÑΓ íδΓ∞ τáßΓ∞ε ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Åá߬á½∩,  ¿ß»«½∞º«óá¡¿Ñ Γᬿσ
  133. ½«¬á½∞¡δσ ¼ÑΓ«¬  ñ«»π߬áÑΓß∩  Γ«½∞¬« ó¡πΓα¿ «»ÑαáΓ«αá asm,  ¬«Γ«αδ⌐
  134. «»αÑñѽ∩ÑΓ ¿σ (Γ.Ñ.  ßΣÑαá ñÑ⌐ßΓó¿∩ ½«¬á½∞¡«⌐ ¼ÑΓ¬¿ αáßΦ¿α∩ÑΓß∩  «Γ
  135. ¬½ετÑó«ú« ß½«óá  asm  ñ«  ¬½ετÑó«ú«  ß½«óá  end ñ½∩ φΓ«ú« «»ÑαáΓ«αá
  136. asm).
  137.  
  138.      Åα¿¼Ñτá¡¿Ñ: é «Γ½¿τ¿Ñ «Γ «íδτ¡δσ  ¼ÑΓ«¬,  ½«¬á½∞¡δÑ  ¼ÑΓ¬¿  ¡Ñ
  139. «íΩ∩ó½∩εΓß∩ ó αáºñѽѠ«íΩ∩ó½Ñ¡¿∩ label ñ« ¿σ ¿ß»«½∞º«óá¡¿∩.
  140.  
  141.      êñÑ¡Γ¿Σ¿¬áΓ«α ½«¬á½∞¡«⌐   ¼ÑΓ¬¿   ß«ßΓ«¿Γ   ¿º   ß¿¼ó«½á  @  ß
  142. »«ß½ÑñπεΘÑ⌐ «ñ¡«⌐ ¿½¿ í«½ÑÑ íπ¬ó«⌐ A..Z,  µ¿Σα 0..9, "_" ¿½¿ @. èá¬
  143. ñ½∩ óßÑσ ¼ÑΓ«¬, »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ñÑΓ ":".
  144.      æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ   »α«úαá¼¼δ   ñѼ«¡ßΓα¿απÑΓ   ¿ß»«½∞º«óá¡¿Ñ
  145. ½«¬á½∞¡δσ ¿ ú½«íá½∞¡δσ ¼ÑΓ«¬ ó «»ÑαáΓ«αÑ asm:
  146.  
  147.      label Start, Stop;
  148.        ...
  149.      begin
  150.        asm
  151.          Start:
  152.          ...
  153.            jz      Stop
  154.          @1:
  155.            ...
  156.            loop    @1
  157.        end;
  158.        asm
  159.          @1:
  160.            ...
  161.            jc      @2
  162.            ...
  163.            jmp    @1
  164.          @2:
  165.        end;
  166.        goto Start;
  167.        Stop:
  168.      end;
  169.  
  170.  
  171.      çá¼ÑΓ¿¼, τΓ« ¡«α¼á½∞¡á∩ ¼ÑΓ¬á  ¼«ªÑΓ  íδΓ∞  «»αÑñѽѡᠠó¡πΓα¿
  172. «»ÑαáΓ«αá asm ¿ ¿ß»«½∞º«óá¡á ó¡Ñ «»ÑαáΓ«αá asm, ¿ ¡á«í«α«Γ. çá¼ÑΓ¿¼
  173. ΓᬪÑ, τΓ« «ñ¡« ¿ Γ« ªÑ ¿¼∩ ½«¬á½∞¡«⌐ ¼ÑΓ¬¿ ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞ß∩ ó
  174. αẽ¿τ¡δσ «»ÑαáΓ«αáσ asm.
  175.  
  176.                              ÅαÑΣ¿¬ß.
  177.  
  178.      éßΓα«Ñ¡¡δ⌐ áßßѼí½Ñα »«ññÑনóáÑΓ óßΓα«Ñ¡¡δÑ »αÑΣ¿¬ßδ:
  179.  
  180. ───────────────────────────────────────────────────────────────────
  181.      LOCK              çáσóáΓ Φ¿¡δ
  182.      REP               Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿
  183.      REPE/REPZ         Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿ »«¬á =/0
  184.      REPNE/REPNZ       Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿ »«¬á (¡Ñ =)/(¡Ñ 0)
  185.      SEGCS             ÅÑαѬαδΓ¿Ñ CS (ßÑú¼Ñ¡Γ ¬«ñá)
  186.      SEGDS             ÅÑαѬαδΓ¿Ñ DS (ßÑú¼Ñ¡Γ ñá¡¡δσ)
  187.      SEGES             ÅÑαѬαδΓ¿Ñ ES (φ¬ßΓαá ßÑú¼Ñ¡Γ)
  188.      SEGSS             ÅÑαѬαδΓ¿Ñ SS (ßÑú¼Ñ¡Γ ßΓѬá)
  189. ───────────────────────────────────────────────────────────────────
  190.  
  191.      æ áßßѼí½Ñα¡«⌐ ¿¡ßΓαπ¬µ¿Ñ⌐ ¼«úπΓ  íδΓ∞  π¬áºá¡δ  0  ¿½¿  í«½ÑÑ
  192. »αÑΣ¿¬ß«ó. ìá»α¿¼Ñα:
  193.  
  194.      asm
  195.        rep    movsb
  196.        SEGES  lodsw
  197.        SEGCS  mov ax,[bx]
  198.        SEGES
  199.        mov    WORD PTR [DI],0
  200.      end;
  201.  
  202.      çá¼ÑΓ¿¼, τΓ«  »αÑΣ¿¬ß  ¼«ªÑΓ íδΓ∞ π¬áºá¡ íѺ ¬«ñá ¿¡ßΓαπ¬µ¿¿ ó
  203. Γ«¼ ªÑ «»ÑαáΓ«αÑ -  ó  φΓ«¼  ß½πτáÑ  »αÑΣ¿¬ß  ó«ºñÑ⌐ßΓóπÑΓ  ¡á  ¬«ñ
  204. ¿¡ßΓαπ¬µ¿¿ ó ß½ÑñπεΘѼ áßßѼí½Ñα¡«¼ «»ÑαáΓ«αÑ.
  205.  
  206.      è«ñ ¿¡ßΓαπ¬µ¿¿  «τÑ¡∞  αÑñ¬«  ¿¼ÑÑΓ í«½ÑÑ «ñ¡«ú« »αÑΣ¿¬ßá ¿ ¡Ñ
  207. ¼«ªÑΓ íδΓ∞ π¬áºá¡« í«½ÑÑ  3  »αÑΣ¿¬ß«ó  (LOC,  ºáΓѼ  SEGxx,  ºáΓѼ
  208. REPxx). üπñ∞ΓÑ ó¡¿¼áΓѽ∞¡δ »α¿ ¿ß»«½∞º«óá¡¿¿ ¡Ñ߬«½∞¬¿σ »αÑΣ¿¬ß«ó -
  209. ¿σ »«α∩ñ«¬ óáªÑ¡ ¿ ¡Ñ¬«Γ«αδÑ »α«µÑßß«αδ 80σ86 ¡Ñ ¼«úπΓ «íαáíáΓδóáΓ∞
  210. óßÑ ¬«¼í¿¡áµ¿¿  »αáó¿½∞¡«.  ìá»α¿¼Ñα,  8086  ¿½¿ 8088 »«¼¡∩Γ Γ«½∞¬«
  211. »αÑΣ¿¬ß REPxx,  Ñß½¿  ó  ßÑαÑñ¿¡Ñ  ßΓ᫬«ó«⌐  ¿¡ßΓαπ¬µ¿¿  ó«º¡¿¬áÑΓ
  212. »αÑαδóá¡¿Ñ. Å«φΓ«¼π  »αÑΣ¿¬ßδ  LOC  ¿  SEGxx  ¡Ñ ¼«úπΓ íδΓ∞ ¡áñѪ¡«
  213. ºá¬«ñ¿α«óá¡δ ñ« REPxx ó ßΓ᫬«ó«⌐ ¿¡ßΓαπ¬µ¿¿.
  214.  
  215.  
  216.                          è«ñδ ¿¡ßΓαπ¬µ¿⌐.
  217.  
  218.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα    »«ññÑনóáÑΓ   óßÑ   ¬«ñδ   ¿¡ßΓαπ¬µ¿⌐
  219. 8086/8087 ¿ 80286/80287. è«ñδ 8087 ñ«»πßΓ¿¼δ Γ«½∞¬« ó ß«ßΓ«∩¡¿¿ {$N
  220. +} (τ¿ß½«ó«⌐  »α«µÑßß«α  αáºαÑΦÑ¡),  ¬«ñδ  80286 ñ«»πßΓ¿¼δ Γ«½∞¬« ó
  221. ß«ßΓ«∩¡¿¿ {$G+} ( úÑ¡Ñαᵿ∩ ¬«ñá 80286  αáºαÑΦÑ¡á),  ¿  ¬«ñδ  80287
  222. αáºαÑΦÑ¡δ Γ«½∞¬« ó ß«ßΓ«∩¡¿¿ {$G+,N+}.
  223.  
  224.      Å«½¡«Ñ «»¿ßá¡¿Ñ φΓ¿σ ¿¡ßΓαπ¬µ¿⌐ ß¼.  ó απ¬«ó«ñßΓóáσ »« 80σ86 ¿
  225. 80σ87.
  226.  
  227.  
  228.                       ÉẼÑα ¿¡ßΓαπ¬µ¿¿ RET.
  229.  
  230.      ê¡ßΓαπ¬µ¿∩ RET   úÑ¡Ñα¿απÑΓ   í½¿ª¡¿⌐   ¿½¿   ñá½∞¡¿⌐  ó«ºóαáΓ
  231. ó ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ ó맮óá ΓѬπΘÑ⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
  232.  
  233.      procedure NearProc; near;
  234.      begin
  235.        asm
  236.          ret     {úÑ¡Ñα¿απÑΓ í½¿ª¡¿⌐ ó맮ó}
  237.        end;
  238.      end;
  239.  
  240.      procedure FarProc; far;
  241.      begin
  242.        asm
  243.          ret     {úÑ¡Ñα¿απÑΓ ñá½∞¡¿⌐ ó맮ó}
  244.        end;
  245.      end;
  246.  
  247.      æ ñαπú«⌐ ßΓ«α«¡δ,  ¿¡ßΓαπ¬µ¿¿ RETN ¿  RETF  óßÑúñá  úÑ¡Ñα¿απεΓ
  248. í½¿ª¡¿⌐ ó«ºóαáΓ ¿ ñá½∞¡¿⌐ ó«ºóαáΓ, ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ ó맮óá
  249. ΓѬπΘÑ⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
  250.  
  251.  
  252.                   ÇóΓ«¼áΓ¿τÑ߬¿⌐ αẼÑα »ÑαÑσ«ñá.
  253.  
  254.      àß½¿ ¡Ñ   í佫   π¬áºá¡«   »α«Γ¿ó¡«Ñ,   óßΓα«Ñ¡¡δ⌐   ÇßßѼí½Ñα
  255. «»Γ¿¼¿º¿απÑΓ ¿¡ßΓαπ¬µ¿¿  »ÑαÑσ«ñá,  áóΓ«¼áΓ¿τÑ߬¿   óδí¿αá∩   ßá¼πε
  256. ¬«α«Γ¬πε, ¿,  ß½Ññ«óáΓѽ∞¡«, ßá¼πε φΣΣÑ¬Γ¿ó¡πε ¿¡ßΓαπ¬µ¿ε »ÑαÑσ«ñá.
  257. ÇóΓ«¼áΓ¿τÑ߬¿⌐ óδí«α ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá »α¿¼Ñ¡∩ÑΓß∩  ¬  ¿¡ßΓαπ¬µ¿¿
  258. íѺπß½«ó¡«ú« »ÑαÑσ«ñá JMP ¿ ¬« óßѼ ¿¡ßΓαπ¬µ¿∩¼ πß½«ó¡«ú« »ÑαÑσ«ñá,
  259. ¬«úñᠡạáτÑ¡¿Ñ - ¼ÑΓ¬á (á ¡Ñ »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩).
  260.  
  261.      ä½∩ ¿¡ßΓαπ¬µ¿¿ íѺπß½«ó¡«ú« »ÑαÑσ«ñá JMP  óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα
  262. úÑ¡Ñα¿απÑΓ ¬«α«Γ¬¿⌐   »ÑαÑσ«ñ  (1  íá⌐Γ  ¬«ñá  «»Ñαᵿ¿  ¿  1  íá⌐Γ
  263. ß¼ÑΘÑ¡¿∩), Ñß½¿ αáßßΓ«∩¡¿Ñ ñ«  ¼ÑΓ¬¿  ¡áº¡áτÑ¡¿∩  ó¡πΓα¿  ñ¿á»áº«¡á
  264. «Γ -128  ñ«  127  íá⌐Γ;  ¿¡áτÑ úÑ¡Ñα¿απÑΓß∩ í½¿ª¡¿⌐ »ÑαÑσ«ñ (1 íá⌐Γ
  265. ¬«ñá «»Ñαᵿ¿ ¿ 2 íá⌐Γá ß¼ÑΘÑ¡¿∩).
  266.  
  267.      ä½∩ ¿¡ßΓαπ¬µ¿¿  πß½«ó¡«ú«   »ÑαÑσ«ñá   úÑ¡Ñα¿απÑΓß∩   ¬«α«Γ¬¿⌐
  268. »ÑαÑσ«ñ (1  íá⌐Γ ¬«ñá ¿ 1 íá⌐Γ ß¼ÑΘÑ¡¿∩),  Ñß½¿ αáßßΓ«∩¡¿Ñ ñ« ¼ÑΓ¬¿
  269. ¡áº¡áτÑ¡¿∩ «Γ -128 ñ« 127 íá⌐Γ; ¿¡áτÑ úÑ¡Ñα¿απÑΓß∩ ¬«α«Γ¬¿⌐ »ÑαÑσ«ñ
  270. ß «íαáΓ¡δ¼  πß½«ó¿Ñ¼,  ¬«Γ«αδ⌐  «íσ«ñ¿Γ  í½¿ª¡¿⌐  »ÑαÑσ«ñ  ¡á ¼ÑΓ¬π
  271. ¡áº¡áτÑ¡¿∩ (5 íá⌐Γ ó ¿Γ«úÑ). ìá»α¿¼Ñα «»ÑαáΓ«α
  272.  
  273.      JC Stop
  274.  
  275.      úñÑ Stop ¡Ñ ó¡πΓα¿ ñ¿á»áº«¡á ¬«α«Γ¬«ú« »ÑαÑσ«ñá, »αÑ«íαáºπÑΓß∩
  276. ó ¼áΦ¿¡¡δ⌐ ¬«ñ
  277.  
  278.      jnc Skip
  279.      jmp Stop
  280.      Skip:
  281.  
  282.      ÅÑαÑσ«ñδ ¡á   Γ«τ¬¿  óσ«ñá  »α«µÑñπα  ¿  Σπ¡¬µ¿⌐  óßÑúñá  ½¿í«
  283. í½¿ª¡¿Ñ, ½¿í« ñá½∞¡¿Ñ,  ¿ ¡¿¬«úñá ¡Ñ ¬«α«Γ¬¿Ñ,  á πß½«ó¡δÑ »ÑαÑσ«ñá
  284. ¡á »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¡Ñ αáºαÑΦÑ¡δ.  éδ ¼«ªÑΓÑ π¬áºáΓ∞ óßΓα«Ñ¡¡«¼π
  285. ÇßßѼí½Ñαπ úÑ¡Ñα¿α«óáΓ∞ íѺπß½«ó¡δ⌐ í½¿ª¡¿⌐ ¿½¿ ñá½∞¡¿⌐  »ÑαÑσ«ñ ¡á
  286. ¼ÑΓ¬π, ¿ß»«½∞ºπ∩   ¬«¡ßΓαπ¬µ¿ε  NEAR  PTR  ¿½¿  FAR  PTR.  ìá»α¿¼Ñα
  287. «»ÑαáΓ«αδ
  288.  
  289.      jmp NEAR PTR Stop
  290.      jmp FAR PTR Stop
  291.  
  292.     óßÑúñá úÑ¡Ñα¿απεΓ  í½¿ª¡¿⌐  ¿  ñá½∞¡¿⌐ »ÑαÑσ«ñδ ß««ΓóÑΓßΓóÑ¡¡«,
  293. ñáªÑ Ñß½¿ Stop ó¡πΓα¿ ñ¿á»áº«¡á ¬«α«Γ¬«ú« »ÑαÑσ«ñá.
  294.  
  295.  
  296.                        ä¿αÑ¬Γ¿óδ ÇßßѼí½Ñαá.
  297.  
  298.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα  Turbo  Pascal  »«ññÑনóáÑΓ  3 ñ¿αÑ¬Γ¿óδ
  299. ÇßßѼí½Ñαá:
  300.  
  301.      DB, DW, DD («»αÑñѽ¿Γ∞ íá⌐Γ, ß½«ó« ¿ ñó«⌐¡«Ñ ß½«ó«)
  302.  
  303.      Ä¡¿ úÑ¡Ñα¿απεΓ ñá¡¡δÑ,  ß««ΓóÑΓßΓóπεΘ¿Ñ «»Ñαá¡ñá¼, αáºñѽѡ¡δ¼
  304. ºá»∩Γ묨, ó φΓ«⌐ ñ¿αÑ¬Γ¿óÑ.
  305.  
  306.      ä¿αÑ¬Γ¿óá DB   úÑ¡Ñα¿απÑΓ   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞   íá⌐Γ.  èáªñδ⌐
  307. «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼ ß« º¡áτÑ¡¿Ñ¼ «Γ  -128  ñ«
  308. 255 ¿½¿   ßΓ᫬«⌐   ß¿¼ó«½«ó  ½εí«⌐  ñ½¿¡δ.  è«¡ßΓá¡Γ¡«Ñ  óδαáªÑ¡¿Ñ
  309. úÑ¡Ñα¿απÑΓ 1 íá⌐Γ ¬«ñá, á ßΓ᫬á úÑ¡Ñα¿απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íá⌐Γ
  310. ß« º¡áτÑ¡¿∩¼¿, ß««ΓóÑΓßΓóπεΘ¿¼¿ ASCII ¬«ñá ¬áªñ«ú« ß¿¼ó«½á.
  311.  
  312.      ä¿αÑ¬Γ¿óá DW   úÑ¡Ñα¿απÑΓ   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞   ß½«ó.  èáªñδ⌐
  313. «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼ ß« º¡áτÑ¡¿Ñ¼ «Γ -32768 ñ«
  314. 65535 ¿½¿  áñαÑß¡δ¼ óδαáªÑ¡¿Ñ¼.  ä½∩ áñαÑß¡«ú« óδαáªÑ¡¿∩ óßΓα«Ñ¡¡δ⌐
  315. ÇßßѼí½Ñα úÑ¡Ñα¿απÑΓ í½¿ª¡¿⌐ π¬áºáΓѽ∞,  ¬«Γ«αδ⌐ ß«ñÑαª¿Γ  ß¼ÑΘÑ¡¿Ñ
  316. φΓ«ú« áñαÑßá.
  317.  
  318.      ä¿αÑ¬Γ¿óá DD   úÑ¡Ñα¿απÑΓ   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  ñó«⌐¡δσ  ß½«ó.
  319. èáªñδ⌐ «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼  ß«  º¡áτÑ¡¿Ñ¼  «Γ
  320. -2,147,483,648 ñ«   4,294,967,295   ¿½¿  áñαÑß¡δ¼  óδαáªÑ¡¿Ñ¼.  ä½∩
  321. áñαÑß¡«ú«  óδαáªÑ¡¿∩  óßΓα«Ñ¡¡δ⌐   ÇßßѼí½Ñα   úÑ¡Ñα¿απÑΓ   ñá½∞¡¿⌐
  322. π¬áºáΓѽ∞, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ¿ ß¼ÑΘÑ¡¿Ñ ¿ ßÑú¼Ñ¡Γ¡πε τáßΓ∞ áñαÑßá.
  323.  
  324.      äá¡¡δÑ, úÑ¡Ñα¿απѼδÑ ñ¿αÑ¬Γ¿óἿ DB,  DW, DD óßÑúñá σαá¡∩Γß∩ ó
  325. ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ ΓᬠªÑ,  ¬á¬ ¬«ñ, úÑ¡Ñα¿απѼδ⌐ ñαπú¿¼¿ «»ÑαáΓ«αἿ
  326. óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá. ùΓ«íδ úÑ¡Ñα¿α«óáΓ∞ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ¿½¿
  327. ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ, ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ éδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
  328. «íδτ¡δÑ «íΩ∩ó½Ñ¡¿∩ Var ¿½¿ Const Åá߬á½∩.
  329.  
  330.      Åα¿¼Ñαδ ñ¿αÑ¬Γ¿ó DB, DW, DD:
  331.  
  332.      asm
  333.        DB   0FFH
  334.        DB   0,99
  335.        DB   'A'
  336.        DB   'Hello world...',0DH,0AH
  337.        DB   12,"Turbo Pascal"
  338.        DW   0FFFFH
  339.        DW   0,9999
  340.        DW   'A'
  341.        DW   'BA'
  342.        DW   MyVar
  343.        DW   MyProc
  344.        DD   0FFFFFFFFH
  345.        DD   0,999999999
  346.        DD   'A'
  347.        DD   'DCBA'
  348.        DD   MyVar
  349.        DD   MyProc
  350.      end;
  351.  
  352.      Åα¿¼Ñτá¡¿Ñ: é Turbo Assembler, ¬«úñá ¿ñÑ¡Γ¿Σ¿¬áΓ«α ßΓ«¿Γ »ÑαÑñ
  353. ñ¿αÑ¬Γ¿ó«⌐ DB,  DW ¿  DD,  φΓ«  »α¿ó«ñ¿Γ  ¬  «íΩ∩ó½Ñ¡¿ε  »ÑαѼѡ¡«⌐
  354. αẼÑα«¼ ó íá⌐Γ,  ß½«ó« ¿½¿ ñó«⌐¡«Ñ ß½«ó« »« áñαÑßπ φΓ«⌐ ñ¿αÑ¬Γ¿óδ.
  355. ìá»α¿¼Ñα, Turbo Assembler αáºαÑΦáÑΓ:
  356.  
  357.      ByteVar   DB    ?
  358.      WordVar   DW    ?
  359.      ...
  360.                mov   al,ByteVar
  361.                mov   bx,WordVar
  362.  
  363.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα   ¡Ñ   »«ññÑনóáÑΓ   ΓᬫѠ   «íΩ∩ó½Ñ¡¿Ñ
  364. »ÑαѼѡ¡δσ. é Turbo Pascal Ññ¿¡ßΓóÑ¡¡δ⌐ ß¿¼ó«½,  ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞
  365. «»αÑñѽѡ ó «»ÑαáΓ«αÑ  óßΓα«Ñ¡¡«ú«  ÇßßѼí½Ñαá  -  φΓ«  ¼ÑΓ¬á.  éßÑ
  366. »ÑαѼѡ¡δÑ ñ«½ª¡δ   íδΓ∞   «íΩ∩ó½Ñ¡δ  ß  ¿ß»«½∞º«ó᡿Ѽ  ß¿¡Γá¬ß¿ßá
  367. Åá߬á½∩ ¿ »αÑñδñπΘ¿⌐ »α¿¼Ñα ß««ΓóÑΓßΓóπÑΓ:
  368.  
  369.      var
  370.        ByteVar: Byte;
  371.        WordVar: Word;
  372.        ...
  373.      asm
  374.        mov   al,ByteVar
  375.        mov   bx,WordVar
  376.      end;
  377.  
  378.  
  379.                              Ä»Ñαá¡ñδ.
  380.  
  381.      Ä»Ñαá¡ñδ óßΓα«Ñ¡¡«ú«   ÇßßѼí½Ñαá  -  φΓ«  óδαáªÑ¡¿∩,  ¬«Γ«αδÑ
  382. ß«ßΓ«∩Γ ¿º ¬«¼í¿¡áµ¿¿ ¬«¡ßΓá¡Γ,  αÑú¿ßΓα«ó,  ß¿¼ó«½«ó ¿ «»ÑαáΓ«α«ó.
  383. ò«Γ∩ óδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ßΓα«∩Γß∩ ß ¿ß»«½∞º«ó᡿Ѽ ΓÑσ
  384. ªÑ «ß¡«ó¡δσ »α¿¡µ¿»«ó,  τΓ« ¿  óδαáªÑ¡¿∩  Åá߬á½∩,  ßπΘÑßΓóπÑΓ  α∩ñ
  385. ó᪡δσ «Γ½¿τ¿⌐, ¬«Γ«αδÑ «íΩ∩ß¡∩εΓß∩ ¡¿ªÑ.
  386.  
  387.      é¡πΓα¿ «»Ñαá¡ñ«ó  ß½ÑñπεΘ¿Ñ  ºáαѺÑαó¿α«óá¡¡δÑ  ß½«óá ¿¼ÑεΓ ó«
  388. óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ »αÑñ«»αÑñѽѡ¡δ⌐ ß¼δß½:
  389.  
  390.      AH           CL           FAR           SEG
  391.      AL           CS           HIGH          SHL
  392.      AND          CX           LOW           SHR
  393.      AX           DH           MOD           SI
  394.      BH           DI           NEAR          SP
  395.      BL           DL           NOT           SS
  396.      BP           DS           OFFSET        ST
  397.      BX           DWORD        OR            TBYTE
  398.      BYTE         DX           PTR           TYPE
  399.      CH           ES           QWORD         WORD
  400.                                              XOR
  401.  
  402.      çáαѺÑαó¿α«óá¡¡δÑ ß½«óá    óßÑúñá    ¿¼ÑεΓ    »α¿«α¿ΓÑΓ    ¡áñ
  403. ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ »«½∞º«óáΓѽ∩. ìá»α¿¼Ñα Σαáú¼Ñ¡Γ ¬«ñá:
  404.  
  405.      VAR
  406.        Ch: Char;
  407.        ...
  408.      asm
  409.        mov   ch,1
  410.      end;
  411.  
  412.      ºáúαπªáÑΓ 1 ó αÑú¿ßΓα CH,  á ¡Ñ ó »ÑαѼѡ¡πε Ch. ä½∩ ñ«ßΓπ»á ¬
  413. ß¿¼ó«½π, «»αÑñѽѡ¡«¼π »«½∞º«óáΓѽѼ ß ΓѼ  ªÑ  ¿¼Ñ¡Ñ¼,  éδ  ñ«½ª¡δ
  414. ¿ß»«½∞º«óáΓ∞ & ñ½∩ »ÑαѬαδΓ¿∩ «»ÑαáΓ«αá:
  415.  
  416.      asm
  417.        mov   &ch,1
  418.      end;
  419.  
  420.      îδ ¡áßΓ«∩Γѽ∞¡«    αѬ«¼Ñ¡ñπѼ    éá¼   ¿ºíÑúáΓ∞   «»αÑñѽѡ¿∩
  421. ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ß ΓѼ¿ ªÑ ¿¼Ñ¡á¼¿,  τΓ« ¿  ºáαѺÑαó¿α«óá¡¡δÑ  ß½«óá
  422. óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá,    »«ß¬«½∞¬π    φΓ«    ¼«ªÑΓ   »α¿óÑßΓ¿   ¬
  423. Γαπñ¡«¡áσ«ñ¿¼δ¼ «Φ¿í¬á¼.
  424.  
  425.  
  426.                             éδαáªÑ¡¿∩.
  427.  
  428.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα  óδτ¿ß½∩ÑΓ óßÑ óδαáªÑ¡¿∩,  ¬á¬ 32-í¿Γ«óδÑ
  429. µÑ½δÑ óδαáªÑ¡¿∩;  «¡ ¡Ñ »«ññÑনóáÑΓ º¡áτÑ¡¿∩ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐  ¿
  430. ßΓ᫬«óδÑ º¡áτÑ¡¿∩, ºá ¿ß¬½ετÑ¡¿Ñ¼ ßΓ᫬«óδ󠬫¡ßΓá¡Γ.
  431.  
  432.      éδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú«   ÇßßѼí½Ñαá   ßΓα«∩Γß∩   ¿º   φ½Ñ¼Ñ¡Γ«ó
  433. óδαáªÑ¡¿∩ ¿ «»ÑαáΓ«α«ó ¿ ¬áªñ«Ñ óδαáªÑ¡¿Ñ ßó∩ºá¡« ß ¬½áßß«¼ ¿ Γ¿»«¼
  434. óδαáªÑ¡¿∩. ¥Γ¿ ¬«¡µÑ»µ¿¿ «íΩ∩ß¡∩εΓß∩ ó ß½ÑñπεΘ¿σ αáºñѽáσ.
  435.  
  436.  
  437.          Éẽ¿τ¿∩ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ Åá߬á½∩ ¿ ÇßßѼí½Ñαá.
  438.  
  439.      ìá¿í«½ÑÑ ó᪡«Ñ   «Γ½¿τ¿Ñ   ¼Ñªñπ   óδαáªÑ¡¿∩¼¿   Åá߬á½∩    ¿
  440. óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ó Γ«¼,  τΓ« óδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá
  441. ñ«½ª¡δ αáºαÑΦáΓ∞ß∩ ó ¬«¡ßΓá¡Γ¡«Ñ  º¡áτÑ¡¿Ñ,  Γ.Ñ.  º¡áτÑ¡¿Ñ  ñ«½ª¡«
  442. íδΓ∞ óδτ¿ß½Ñ¡« ó« óαѼ∩ ¬«¼»¿½∩µ¿¿. ìá»α¿¼Ñα, ñ½∩ «íΩ∩ó½Ñ¡¿⌐
  443.  
  444.      const
  445.        X = 10;
  446.        Y = 20;
  447.      var
  448.        Z: Integer;
  449.  
  450.      ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α αáºαÑΦÑ¡:
  451.  
  452.      asm
  453.        mov   Z,X+Y
  454.      end;
  455.  
  456.      Å«ß¬«½∞¬π X  ¿  Y - ¬«¡ßΓá¡Γδ,  óδαáªÑ¡¿Ñ X+Y ¡á¿í«½ÑÑ πñ«í¡δ⌐
  457. ß»«ß«í ¡á»¿ßá¡¿∩ ¬«¡ßΓá¡Γδ 30,  á αѺπ½∞Γ¿απεΘá∩  ¿¡ßΓαπ¬µ¿∩  íπñÑΓ
  458. »ÑαÑßδ½áΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ 30 ó »ÑαѼѡ¡πε Z,  αẼÑα«¼ ó
  459. ß½«ó«. ì« Ñß½¿ éδ «íΩ∩ó¿ΓÑ X ¿ Y ¬á¬ »ÑαѼѡ¡δÑ:
  460.  
  461.      var
  462.        X, Y: Integer;
  463.  
  464.      óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ¡Ñ ß¼«ªÑΓ óδτ¿ß½¿Γ∞ º¡áτÑ¡¿Ñ X+Y ó« óαѼ∩
  465. ¬«¼»¿½∩µ¿¿. éßΓα«Ñ¡¡δ⌐    ÇßßѼí½Ñα   ñ½∩   »ÑαÑß佬¿   ßπ¼¼δ   X+Y
  466. úÑ¡Ñα¿απÑΓ:
  467.  
  468.      asm
  469.        mov   ax,X
  470.        add   ax,Y
  471.        mov   Z,ax
  472.      end;
  473.  
  474.      äαπú«Ñ ó᪡«Ñ «Γ½¿τ¿Ñ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ Åá߬á½∩  ¿ óßΓα«Ñ¡¡«ú«
  475. ÇßßѼí½Ñαá ó ß»«ß«íÑ ¿¡ΓÑα»αÑΓᵿ¿ »ÑαѼѡ¡δσ.  é óδαáªÑ¡¿¿ Åá߬á½∩
  476. ßßδ½¬á ¡á »ÑαѼѡ¡πε ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬ ß«ñÑন¼«Ñ  »ÑαѼѡ¡«⌐, á
  477. ó óδαáªÑ¡¿¿  óßΓα«Ñ¡¡«ú«  ÇßßѼí½Ñαá  ßßδ½¬á ¡á »ÑαѼѡ¡πε «º¡áτáÑΓ
  478. áñαÑß φΓ«⌐ »ÑαѼѡ¡«⌐.  ìá»α¿¼Ñα,  ó Åá߬á½Ñ óδαáªÑ¡¿Ñ X+4, úñÑ ò -
  479. »ÑαѼѡ¡á∩, «º¡áτáÑΓ ß«ñÑন¼«Ñ X+4, á ó« óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ φΓ«
  480. «º¡áτáÑΓ ß«ñÑন¼«Ñ ß½«óá ß áñαÑß«¼ ¡á 4 íá⌐Γá óδΦÑ,  τѼ áñαÑß  ò.
  481. Æá¬ ñáªÑ Ñß½¿ éδ ¼«ªÑΓÑ ¡á»¿ßáΓ∞
  482.  
  483.      asm
  484.        mov   ax,X+4
  485.      end;
  486.  
  487.      φëଫñ ¡Ñ ºáúαπªáÑΓ º¡áτÑ¡¿Ñ ò+4 ó AX,  á ºáúαπªáÑΓ º¡áτÑ¡¿Ñ
  488. ß½«óá, σαá¡∩ΘÑú«ß∩ »« áñαÑßπ ¡á 4 íá⌐Γá óδΦÑ ò.  è«ααÑ¬Γ¡δ⌐  ß»«ß«í
  489. ñ«íáó¿Γ∞ 4 ¬ ß«ñÑন¼«¼π ò:
  490.  
  491.      asm
  492.        MOV   AX,X
  493.        ADD   AX,4
  494.      end;
  495.  
  496.  
  497.                         ¥½Ñ¼Ñ¡Γδ óδαáªÑ¡¿∩.
  498.  
  499.      Äß¡«ó¡δÑ φ½Ñ¼Ñ¡Γδ  óδαáªÑ¡¿∩  -  φΓ«  ¬«¡ßΓá¡Γδ,  αÑú¿ßΓαδ   ¿
  500. ß¿¼ó«½δ.
  501.  
  502.  
  503.                             è«¡ßΓá¡Γδ.
  504.  
  505.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ññÑনóáÑΓ 2  Γ¿»á  ¬«¡ßΓá¡Γ:  τ¿ß½«óδÑ
  506. ¬«¡ßΓá¡Γδ ¿ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ.
  507.  
  508.  
  509.                         ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ.
  510.  
  511.      ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ íδΓ∞ µÑ½δ¼¿  ¿  ¿σ  º¡áτÑ¡¿∩  ñ«½ª¡δ
  512. íδΓ∞ ó ñ¿á»áº«¡Ñ «Γ -2,147,483,648 ñ« 4,294,967,295.
  513.  
  514.      ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ »« π¼«½τá¡¿ε ¿ß»«½∞ºπεΓ ñÑß∩Γ¿τ¡πε ¡«Γᵿε,
  515. ¡« óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ΓᬠªÑ »«ññÑনóáÑΓ ñó«¿τ¡πε, 8-α¿τ¡πε ¿ 16
  516. -α¿τ¡πε ¡«Γᵿ¿.  äó«¿τ¡á∩  ¡«Γᵿ∩  óδí¿αáÑΓß∩  ¡á»¿ß᡿Ѽ é »«ß½Ñ
  517. τ¿ß½á, 8-α¿τ¡á∩ ¡«Γᵿ∩ óδí¿αáÑΓß∩ ¡á»¿ß᡿Ѽ íπ¬óδ Ä »«ß½Ñ τ¿ß½á ¿
  518. 16-α¿τ¡á∩ ¡«Γᵿ∩  óδí¿αáÑΓß∩  ¡á»¿ß᡿Ѽ  ì  »«ß½Ñ  τ¿ß½á ¿½¿ $ ñ«
  519. τ¿ß½á.
  520.  
  521.      Åα¿¼Ñτá¡¿Ñ: æπΣΣ¿¬ßδ B,  O,  H ¡Ñ »«ññÑনóáεΓß∩ ó  óδαáªÑ¡¿∩σ
  522. Åá߬á½∩. éδαáªÑ¡¿∩  Åá߬á½∩ ñ«»π߬áεΓ Γ«½∞¬« ñÑß∩Γ¿τ¡πε ¡«Γᵿε (»«
  523. π¼«½τá¡¿ε) ¿ 16-α¿τ¡πε ¡«Γᵿε (¿ß»«½∞ºπ∩ »αÑΣ¿¬ß $).
  524.  
  525.      ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ ¡áτ¿¡áΓ∞ß∩ ß «ñ¡«⌐ ¿º µ¿Σα  0..9 ¿½¿
  526. ß¿¼ó«½á $;  Γá¬,  ¬«úñá  éδ  »¿Φ¿ΓÑ 16-α¿τ¡πε ¬«¡ßΓá¡Γπ,  ¿ß»«½∞ºπ∩
  527. ßπΣΣ¿¬ß ì,  ΓαÑíπÑΓß∩ ñ«»«½¡¿Γѽ∞¡δ⌐ 0 ó ¡áτá½Ñ τ¿ß½á,  Ñß½¿ »Ñαóá∩
  528. º¡áτáΘá∩ µ¿Σαá  «ñ¡á  ¿º  16-α¿τ¡δσ µ¿Σα Ç..F.  ìá»α¿¼Ñα,  0BAD4H ¿
  529. $BAD4 - 16-α¿τ¡δÑ ¬«¡ßΓá¡Γδ,  á BAD4H  -  ¿ñÑ¡Γ¿Σ¿¬áΓ«α,  »«ß¬«½∞¬π
  530. ¡áτ¿¡áÑΓß∩ ß íπ¬óδ, á ¡Ñ ß µ¿Σαδ.
  531.  
  532.  
  533.                        æΓ᫬«óδÑ ¬«¡ßΓá¡Γδ.
  534.  
  535.      æΓ᫬«óδÑ ¬«¡ßΓá¡Γδ  ñ«½ª¡δ  íδΓ∞  ºá¬½ετÑ¡δ  ó  ¬áóδτ¬¿   ¿½¿
  536. ừßΓα«Σδ. äóÑ  »«ß½Ññ«óáΓѽ∞¡δÑ  "" ¿½¿ '' ó¡πΓα¿ ßΓ᫬¿ ßτ¿ΓáεΓß∩
  537. ¬á¬ «ñ¿¡ ß¿¼ó«½. Åα¿¼Ñαδ ßΓ᫬«óδ󠬫¡ßΓá¡Γ:
  538.  
  539.      'Z'
  540.      'Turbo Pascal'
  541.      "That's all folks"
  542.      '"That"s all folks,"he said.'
  543.      '100'
  544.      '"'
  545.      "'"
  546.  
  547.      çá¼ÑΓ¿¼, τΓ«  ó  4  ßΓα«¬Ñ  ¿ß»«½∞º«ó὿ß∞  2  á»«ßΓα«Σá   ñ½∩
  548. π¬áºá¡¿∩ «ñ¿¡«τ¡«ú« ß¿¼ó«½á "ừßΓα«Σ".
  549.  
  550.      é ñ¿αÑ¬Γ¿óáσ DB αáºαÑΦÑ¡δ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ ½εí«⌐ ñ½¿¡δ. ¥Γ«
  551. »α¿ó«ñ¿Γ ¬ αáß»αÑñѽѡ¿ε »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ íá⌐Γ,  ß«ñÑαªáΘÑ⌐ ASCII
  552. º¡áτÑ¡¿∩ ß¿¼ó«½«ó   ßΓ᫬¿.   é«   óßÑσ  ñαπú¿σ  ß½πτá∩σ  ßΓ᫬«óá∩
  553. ¬«¡ßΓá¡Γá ¡Ñ ¼«ªÑΓ íδΓ∞ ñ½¿¡¡ÑÑ 4  ß¿¼ó«½«ó  ¿  «º¡áτáÑΓ,  τ¿ß½«ó«Ñ
  554. º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ   ¼«ªÑΓ   ¿ß»«½∞º«óáΓ∞ß∩  ó  óδαáªÑ¡¿¿.  ù¿ß½«ó«Ñ
  555. º¡áτÑ¡¿Ñ ßΓ᫬«ó«⌐ ¬«¡ßΓá¡Γδ óδτ¿ß½∩ÑΓß∩ ¬á¬
  556.  
  557.      Ord(Ch1) + Ord(Ch2) shl 8 + Ord(Ch3) shl 16 + Ord(Ch4) shl 24
  558.  
  559.      úñÑ Ch1 ¡á¿í«½ÑÑ »αáóδ⌐ (»«ß½Ññ¡¿⌐) ß¿¼ó«½,  á Ch4 -  ¡á¿í«½ÑÑ
  560. ½Ñóδ⌐ (»Ñαóδ⌐) ß¿¼ó«½.  àß½¿ ßΓα«¬á ¬«α«τÑ 4 ß¿¼ó«½«ó,  ßá¼δÑ ½ÑóδÑ
  561. ß¿¼ó«½δ πßΓá¡áó½¿óáεΓß∩ ó 0.  ìÑ߬«½∞¬« »α¿¼Ñα«ó ßΓ᫬«óδ󠬫¡ßΓá¡Γ
  562. ¿ ß««ΓóÑΓßΓóπεΘ¿σ τ¿ß½«óδσ º¡áτÑ¡¿⌐:
  563.  
  564.      'a'       00000061H
  565.      'ba'      00006261H
  566.      'cba'     00636261H
  567.      'dcba'    64636261H
  568.      'a '      00006120H
  569.      '   a'    20202061H
  570.      'a'*2     000000E2H
  571.      'a'-'A'   00000020H
  572.      not'a'    FFFFFF9EH
  573.  
  574.  
  575.                              ÉÑú¿ßΓαδ.
  576.  
  577.      æ½ÑñπεΘ¿Ñ ºáαѺÑαó¿α«óá¡¡δÑ ß¿¼ó«½δ «º¡áτáεΓ αÑú¿ßΓαδ 8086:
  578.  
  579.      16-í¿Γ¡δ⌐ «íΘÑú« ¡áº¡áτÑ¡¿∩     AX  BX  CX  DX
  580.      8-í¿Γ¡δ⌐ ¼½áñΦ¿⌐                AL  BL  CL  DL
  581.      8-í¿Γ¡δ⌐ ßΓáαΦ¿⌐                AH  BH  CH  DH
  582.      16-í¿Γ¡δ⌐ π¬áºáΓѽ∞ ¿½¿ ¿¡ñѬߠ SP  BP  SI  DI
  583.      16-í¿Γ¡δ⌐ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα    CS  DS  SS  ES
  584.      αÑú¿ßΓα ßΓѬá 8087              ST
  585.  
  586.      è«úñá «»Ñαá¡ñ ß«ßΓ«¿Γ Γ«½∞¬« ¿º ¿¼Ñ¡¿ αÑú¿ßΓαá,  «¡ ¡áºδóáÑΓß∩
  587. αÑú¿ßΓα«óδ¼ «»Ñαá¡ñ«¼.  éßÑ αÑú¿ßΓαδ ¼«úπΓ  íδΓ∞  ¿ß»«½∞º«óá¡δ  ¬á¬
  588. αÑú¿ßΓα«óδÑ «»Ñαá¡ñδ.   èα«¼Ñ   Γ«ú«   ¡Ñ¬«Γ«αδÑ   αÑú¿ßΓαδ   ¼«úπΓ
  589. ¿ß»«½∞º«óáΓ∞ß∩ ó ñαπú¿σ ¬«¡ßΓѬßΓáσ.
  590.  
  591.      üẫóδÑ αÑú¿ßΓαδ (BX,  BP) ¿ ¿¡ñѬߡδÑ αÑú¿ßΓαδ (SI, DI) ¼«úπΓ
  592. íδΓ∞ ¡á»¿ßá¡δ   ó¡πΓα¿   []  ñ½∩  π¬áºá¡¿∩  ¿¡ñѬßᵿ¿.  ä«»πßΓ¿¼δÑ
  593. ¬«¼í¿¡áµ¿¿ íẫóδσ/¿¡ñѬߡδσ αÑú¿ßΓα«ó: [BX], [BP], [SI], [DI], [BX
  594. +SI], [BX+DI], [BP+SI], [BP+DI].
  595.  
  596.      æÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ  (ES,  CS,  SS,  DS)  ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩
  597. ó¼ÑßΓÑ ß  ":"  ¬á¬  »ÑαѬαδΓ¿Ñ  ßÑú¼Ñ¡Γá  ñ½∩  π¬áºá¡¿∩   ßÑú¼Ñ¡Γá,
  598. «Γ½¿τ¡«ú« «Γ Γ«ú«, ¬«Γ«αδ⌐ »α«µÑßß«α óδí¿αáÑΓ »« π¼«½τá¡¿ε.
  599.  
  600.      æ¿¼ó«½ S  «º¡áτáÑΓ  ßá¼δ⌐  óÑασ¡¿⌐  αÑú¿ßΓα ¿º αÑú¿ßΓα«ó ßΓѬá
  601. 8087. èáªñδ⌐  ¿º  8  αÑú¿ßΓα«ó  ß  »½áóáεΘÑ⌐  Γ«τ¬«⌐   ¼«ªÑΓ   íδΓ∞
  602. ¿ß»«½∞º«óá¡ ß  »«¼«Θ∞ε  ST(x),  úñÑ  σ  -  ¬«¡ßΓá¡Γá  «Γ  1  ñ«  7,
  603. π¬áºδóáεΘá∩ ¡á ß¼ÑΘÑ¡¿Ñ «Γ óÑαΦ¿¡δ ßΓѬá.
  604.  
  605.  
  606.                              æ¿¼ó«½δ.
  607.  
  608.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα  »«ºó«½∩ÑΓ  éá¼  «íαáΘáΓ∞ß∩ »«τΓ¿ ¬« óßѼ
  609. ß¿¼ó«½á¼ Åá߬á½∩  ó   áßßѼí½Ñα¡δσ   óδαáªÑ¡¿∩σ,   ó¬½ετá∩   ¼ÑΓ¬¿,
  610. ¬«¡ßΓá¡Γδ, Γ¿»δ,  »ÑαѼѡ¡δÑ,  »α«µÑñπαδ  ¿ Σπ¡¬µ¿¿.  ä«»«½¡¿Γѽ∞¡«
  611. óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα αÑ὿ºπÑΓ ß½ÑñπεΘ¿Ñ ß»Ñµ¿á½∞¡δÑ ß¿¼ó«½δ:
  612.  
  613.      @Code             @Data              @Result
  614.  
  615.      æ¿¼ó«½δ @Code ¿ @Data »αÑñßΓáó½∩εΓ  ΓѬπΘ¿Ñ  ßÑú¼Ñ¡Γδ  ¬«ñá  ¿
  616. ñá¡¡δσ. Ä¡¿  ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ß«ó¼ÑßΓ¡« ß «»ÑαáΓ«αἿ
  617. SEG:
  618.  
  619.      asm
  620.        mov   ax,SEG @Data
  621.        mov   ds,ax
  622.      end;
  623.  
  624.      æ¿¼ó«½ @Result »αÑñßΓáó½∩ÑΓ »ÑαѼѡ¡πε ß  αѺπ½∞ΓáΓ«¼  Σπ¡¬µ¿¿
  625. ó¡πΓα¿ «»ÑαáΓ«α¡«⌐ τáßΓ¿ Σπ¡¬µ¿¿. ìá»α¿¼Ñα, ó Σπ¡¬µ¿¿
  626.  
  627.      function Sum(X, Y: Integer): Integer;
  628.      begin
  629.        Sum := X + Y;
  630.      end;
  631.  
  632.      «»ÑαáΓ«α, ¬«Γ«αδ⌐  ¡áº¡áτáÑΓ αѺπ½∞ΓáΓ º¡áτÑ¡¿∩ Σπ¡¬µ¿¿ ó Sum,
  633. íπñÑΓ ¿ß»«½∞º«óáΓ∞ »ÑαѼѡ¡πε @Result:
  634.  
  635.      function Sum(X, Y: Integer): Integer;
  636.      begin
  637.        asm
  638.          mov   ax,X
  639.          add   ax,Y
  640.          mov   @Result,AX
  641.        end;
  642.      end;
  643.  
  644.      æ½ÑñπεΘ¿Ñ ß¿¼ó«½δ ¡Ñ  ¼«úπΓ  íδΓ∞  ¿ß»«½∞º«óá¡δ  ó  óδαáªÑ¡¿∩σ
  645. óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá:
  646.  
  647.      - æΓá¡ñáαΓ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ (¡á»α¿¼Ñα Writeln, Chr).
  648.  
  649.      - æ»Ñµ¿á½∞¡δÑ ¼áßß¿óδ Mem, MemW, MemL, Port, PortW.
  650.  
  651.      - è«¡ßΓá¡Γδ ßΓ᫬«óδÑ, ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿ Γ¿»á ¼¡«ªÑßΓó«.
  652.  
  653.      - Åα«µÑñπαδ ¿ Σπ¡¬µ¿¿, «íΩ∩ó½Ñ¡¡δÑ ß ñ¿αÑ¬Γ¿ó«⌐ inline.
  654.  
  655.      - îÑΓ¬¿, ¬«Γ«αδÑ ¡Ñ «íΩ∩ó½Ñ¡δ ó ΓѬπΘѼ í½«¬Ñ.
  656.  
  657.      - æ¿¼ó«½ @Result ó¡Ñ Σπ¡¬µ¿¿.
  658.  
  659.      Æáí½¿µá 22.1  ßπ¼¼¿απÑΓ º¡áτÑ¡¿Ñ,  ¬½áßß ¿ Γ¿» αẽ¿τ¡δσ ó¿ñ«ó
  660. ß¿¼ó«½«ó, ¬«Γ«αδÑ ¼«úπΓ  ¿ß»«½∞º«óáΓ∞ß∩  ó  óδαáªÑ¡¿∩σ  óßΓα«Ñ¡¡«ú«
  661. ÇßßѼí½Ñαá (Γ¿»δ ¿ ¬½áßßδ óδαáªÑ¡¿⌐ «»¿ßá¡δ ó ß½ÑñπεΘѼ αáºñѽÑ).
  662.  
  663.           Æáí½¿µá 22.1. ç¡áτÑ¡¿∩, ¬½áßßδ ¿ Γ¿»δ ß¿¼ó«½«ó.
  664.  
  665. ───────────────────────────────────────────────────────────────────
  666.    æ¿¼ó«½         ç¡áτÑ¡¿Ñ           è½áßß            Æ¿»
  667. ───────────────────────────────────────────────────────────────────
  668.    îÑΓ¬á        ÇñαÑß ¼ÑΓ¬¿         Åá¼∩Γ∞            SHORT
  669.    è«¡ßΓá¡Γá    ç¡áτÑ¡¿Ñ            ìÑ»«ßαÑñßΓóÑ¡¡δ⌐  0
  670.                 ¬«¡ßΓá¡Γδ
  671.    Æ¿»          0                   Åá¼∩Γ∞            ÉẼÑα Γ¿»á
  672.    Å«½Ñ         æ¼ÑΘÑ¡¿Ñ »«½∩       Åá¼∩Γ∞            ÉẼÑα Γ¿»á
  673.    ÅÑαѼѡ¡á∩   ÇñαÑß               Åá¼∩Γ∞            ÉẼÑα Γ¿»á
  674.                 »ÑαѼѡ¡«⌐
  675.    Åα«µÑñπαá    ÇñαÑß »α«µÑñπαδ     Åá¼∩Γ∞            NEAR ¿½¿ FAR
  676.    öπ¡¬µ¿∩      ÇñαÑß Σπ¡¬µ¿¿       Åá¼∩Γ∞            NEAR ¿½¿ FAR
  677.    î«ñπ½∞       0                   ìÑ»«ßαÑñßΓóÑ¡¡δ⌐  0
  678.    @Code        ÇñαÑß ßÑú¼Ñ¡Γá      Åá¼∩Γ∞            0FFF0H
  679.                 ¬«ñá
  680.    @Data        ÇñαÑß ßÑú¼Ñ¡Γá      Åá¼∩Γ∞            0FFF0H
  681.                 ñá¡¡δσ
  682.    @Result      æ¼ÑΘÑ¡¿Ñ »ÑαѼѡ¡«⌐ Åá¼∩Γ∞            ÉẼÑα Γ¿»á
  683.                 αѺπ½∞ΓáΓá
  684. ───────────────────────────────────────────────────────────────────
  685.  
  686.      ï«¬á½∞¡δÑ »ÑαѼѡ¡δÑ (»ÑαѼѡ¡δÑ,  «íΩ∩ó½Ñ¡¡δÑ ó »α«µÑñπαáσ  ¿
  687. Σπ¡¬µ¿∩σ) óßÑúñá αáß»αÑñѽ∩εΓß∩ ó ßΓѬѠ¿ ¿ß»«½∞ºπεΓß∩ «Γ¡«ß¿Γѽ∞¡«
  688. SS:BP, á º¡áτÑ¡¿Ñ ½«¬á½∞¡«⌐ »ÑαѼѡ¡«⌐ - φΓ« Ñú« ß¼ÑΘÑ¡¿Ñ ß« º¡á¬«¼
  689. «Γ SS:BP.  ÇßßѼí½Ñα  áóΓ«¼áΓ¿τÑ߬¿  ñ«íáó½∩ÑΓ  [BP]  ó  ßß佬¿  ¡á
  690. ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ. ìá»α¿¼Ñα, «íΩ∩ó½Ñ¡¿Ñ
  691.  
  692.      procedure Test;
  693.      var
  694.        Count: Integer;
  695.  
  696.      ¿ ¿¡ßΓαπ¬µ¿∩
  697.  
  698.      asm
  699.        mov   ax,Count
  700.      end;
  701.  
  702.      áßßÑ¼í½¿απÑΓß∩ ó MOV AX, [BP-2]
  703.  
  704.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα óßÑúñá ¿¡ΓÑα»αÑΓ¿απÑΓ var »áαá¼ÑΓα ¬á¬ 32
  705. -í¿Γ¡δ⌐ π¬áºáΓѽ∞  ¿  αẼÑα  var  »áαá¼ÑΓαá   óßÑúñá   4   (αẼÑα
  706. 32-í¿Γ¡«ú« π¬áºáΓѽ∩).  é  Åá߬á½Ñ  ß¿¡Γá¬ß¿ß  ñ½∩  ñ«ßΓπ»á  ¬  var
  707. »áαá¼ÑΓαπ ¿ »áαá¼ÑΓαπ  º¡áτÑ¡¿ε  «ñ¿¡á¬«ó.  ìÑ  Γᬠ ó«  óßΓα«Ñ¡¡«¼
  708. ÇßßѼí½ÑαÑ. Å«ß¬«½∞¬π  var  »áαá¼ÑΓαδ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ π¬áºáΓѽ¿,
  709. éδ ñ«½ª¡δ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ ¿σ Γᬠ󫠠óßΓα«Ñ¡¡«¼  ÇßßѼí½ÑαÑ.  Æá¬,
  710. τΓ«íδ «íαáΓ¿Γ∞ß∩ ¬ ß«ñÑন¼«¼π var »áαá¼ÑΓαá, éδ ó¡áτá½Ñ ºáúαπªáÑΓÑ
  711. 32-í¿Γ¡δ⌐ π¬áºáΓѽ∞,  á ºáΓѼ «íαáΘáÑΓÑß∞ ¬ »á¼∩Γ¿,  ¡á ¬«Γ«απε  «¡
  712. π¬áºδóáÑΓ. ìá»α¿¼Ñα, Ñß½¿ X ¿ Y - var »áαá¼ÑΓαδ Σπ¡¬µ¿¿ Sum, Γ«:
  713.  
  714.      function Sum(var X, Y: Integer): Integer;
  715.      begin
  716.        asm
  717.          les   bx,X
  718.          mov   ax,es:[bx]
  719.          les   bx,Y
  720.          add   ax,es:[bx]
  721.          mov   @Result,ax
  722.        end;
  723.      end;
  724.  
  725.      ìѬ«Γ«αδÑ ß¿¼ó«½δ,   Γ¿»δ   ¿  »ÑαѼѡ¡δÑ  ºá»¿ßÑ⌐,  »«ºó«½∩εΓ
  726. «íαáΘáΓ∞ß∩ ¬ φ½Ñ¼Ñ¡Γá¼ ßΓαπ¬Γπαδ ß  ¿ß»«½∞º«ó᡿Ѽ  ßÑ½Ñ¬Γ«αá  ".".
  727. ìá»α¿¼Ñα, ñ½∩ «íΩ∩ó½Ñ¡¿⌐:
  728.  
  729.      type
  730.        Point = record
  731.          X, Y: Integer;
  732.        end;
  733.        Rect = record
  734.          A, B: Point;
  735.        end;
  736.      var
  737.        P: Point;
  738.        R: Rect;
  739.  
  740.      ß½ÑñπεΘ¿Ñ ¬«¡ßΓαπ¬µ¿¿ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ñ«ßΓπ»á ¬ »«½∩¼ ó
  741. »ÑαѼѡ¡δσ P ¿ R:
  742.  
  743.      asm
  744.        mov   ax,P.X
  745.        mov   dx,P.Y
  746.        mov   cx,R.A.X
  747.        mov   bx,R.B.Y
  748.      end;
  749.  
  750.      êñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩  ß«ºñá¡¿∩ »ÑαѼѡ¡δσ
  751. "¡á ½ÑΓπ".   èáªñá∩   ¿¡ßΓαπ¬µ¿∩   ¡¿ªÑ  úÑ¡Ñα¿απÑΓ  ¼áΦ¿¡¡δ⌐  ¬«ñ,
  752. ºáúαπªáεΘ¿⌐ ß«ñÑন¼«Ñ ES:[DI+4] ó AX.
  753.  
  754.      asm
  755.        mov   ax,(Rect PTR es:[di]).B.X
  756.        mov   ax,Rect(es:[di]).B.X
  757.        mov   ax,es:Rect[di].B.X
  758.        mov   ax,Rect[es:di].B.X
  759.        mov   ax,es:[di].Rect.B.X
  760.      end;
  761.  
  762.      æΣÑαá ñÑ⌐ßΓó¿∩ ß¿¼ó«½á  Γ¿»á  »«½∩  ¿½¿  ºá»¿ß¿  -  φΓ«  ßΣÑαá
  763. ñÑ⌐ßΓó¿∩ ºá»¿ß¿ ¿½¿ «íΩѬΓá φΓ«ú« Γ¿»á.  èα«¼Ñ Γ«ú«,  ¿ñÑ¡Γ¿Σ¿¬áΓ«α
  764. ¼«ñπ½∩ «Γ¬αδóáÑΓ ßΣÑαπ ñÑ⌐ßΓó¿∩ «»αÑñѽѡ¡«ú« ¼«ñπ½∩  Γᬠ ªÑ,  ¬á¬
  765. »«½¡δ⌐ ¬óá½¿Σ¿µ¿α«óá¡¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ó Åá߬á½Ñ.
  766.  
  767.  
  768.                          è½áßßδ óδαáªÑ¡¿⌐.
  769.  
  770.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ñѽ¿Γ óδαáªÑ¡¿∩ ¡á  3  ¬½áßßá:  αÑú¿ßΓαδ,
  771. ßß佬¿ ¡á »á¼∩Γ∞ ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩.
  772.  
  773.      éδαáªÑ¡¿Ñ, ¬«Γ«α«Ñ  ß«ßΓ«¿Γ  Γ«½∞¬«  ¿º  ¿¼Ñ¡¿  αÑú¿ßΓαá - φΓ«
  774. αÑú¿ßΓα«ó«Ñ óδαáªÑ¡¿Ñ.  Åα¿¼Ñα αÑú¿ßΓα«ó«ú« óδαáªÑ¡¿∩ - φΓ« AX, CL,
  775. DI ¿  ES.  êß»«½∞ºπѼδÑ  ¬á¬ «»Ñαá¡ñδ,  αÑú¿ßΓα«óδÑ óδαáªÑ¡¿∩ »α∩¼«
  776. áßßÑ¼í½¿απεΓß∩ ó  ¿¡ßΓαπ¬µ¿¿,  ¬«Γ«αδÑ  ó«ºñÑ⌐ßΓóπεΓ  ¡á   αÑú¿ßΓαδ
  777. »α«µÑßß«αá.
  778.  
  779.      éδαáªÑ¡¿∩, ¬«Γ«αδÑ «º¡áτáεΓ »«½«ªÑ¡¿Ñ »á¼∩Γ¿,  - φΓ« ßß佬¿ ¡á
  780. »á¼∩Γ∞; ¼ÑΓ¬¿, »ÑαѼѡ¡δÑ, Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¿ Σπ¡¬µ¿¿ Åá߬á½∩
  781. «Γ¡«ß∩Γß∩ ¬ φΓ«⌐ ¬áΓÑú«α¿¿.
  782.  
  783.      éδαáªÑ¡¿∩, ¬«Γ«αδÑ  ¡Ñ  «Γ¡«ß∩Γß∩  ¬  αÑú¿ßΓαá¼ ¿ ¡Ñ ßó∩ºá¡δ ß
  784. »«½«ªÑ¡¿Ñ¼ ó »á¼∩Γ¿,  - φΓ« ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩;  φΓá  úαπ»»á
  785. ó¬½ετáÑΓ ¡ÑΓ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¿ Γ¿»δ Åá߬á½∩.
  786.  
  787.      ìÑ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩   ¿   ßß佬¿  ¬  »á¼∩Γ¿  »α¿ó«ñ∩Γ  ¬
  788. úÑ¡Ñαᵿ¿ αẽ¿τ¡«ú«  ¬«ñá,  ¬«úñá   ¿ß»«½∞ºπεΓß∩   ¬á¬   «»Ñαá¡ñδ.
  789. ìá»α¿¼Ñα:
  790.  
  791.      const
  792.        Start = 10;
  793.      var
  794.        Count: Integer;
  795.      ...
  796.      asm
  797.        mov   ax,Start                 { MOV AX,xxxx }
  798.        mov   bx,Count                 { MOV BX,[xxxx] }
  799.        mov   cx,[Start]               { MOV CX,[xxxx] }
  800.        mov   dx,OFFSET Count          { MOV DX,xxxx }
  801.      end;
  802.  
  803.      Å«ß¬«½∞¬π Start  -  φΓ« ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ,  »Ñαóá∩ MOV
  804. áßßÑ¼í½¿απÑΓß∩ ó ¿¡ßΓαπ¬µ¿ε »ÑαÑß佬¿  ¡Ñ»«ßαÑñßΓóÑ¡¡«ú«  º¡áτÑ¡¿∩.
  805. éΓ«αá∩ MOV Γαá¡ß½¿απÑΓß∩ ó ¿¡ßΓαπ¬µ¿ε »ÑαÑß佬¿ »á¼∩Γ¿,  Γ.¬. Count
  806. - φΓ«  ßßδ½¬á  ¡á  »á¼∩Γ∞.  é  ΓαÑΓ¿⌐  MOV  []   ¿ß»«½∞ºπεΓß∩   ñ½∩
  807. »αÑ«íαẫóá¡¿∩ Start  ó  ßßδ½¬π  ¡á  »á¼∩Γ∞ (ó φΓ«¼ ß½πτáÑ ß½«ó« ß«
  808. ß¼ÑΘÑ¡¿Ñ¼ 10 ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ) ¿ ó τÑΓóÑαΓ«⌐ MOV  «»ÑαáΓ«α  OFFSET
  809. ¿ß»«½∞ºπÑΓß∩ ñ½∩  »αÑ«íαẫóá¡¿∩  Count ó ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ
  810. (ß¼ÑΘÑ¡¿Ñ Count ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ).
  811.  
  812.      èᬠéδ ó¿ñ¿ΓÑ,  [] ¿ OFFSET ñ«»«½¡∩εΓ ñαπú ñαπúá.  é  ΓÑନ¡áσ
  813. αѺπ½∞Γ¿απεΘÑú« ¼áΦ¿¡¡«ú«  ¬«ñá  ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α  asm ¿ñÑ¡Γ¿τÑ¡
  814. ñóπ¼ »Ñαóδ¼ ßΓα«¬á¼ »αÑñδñπΘÑú« «»ÑαáΓ«αá asm:
  815.  
  816.      asm
  817.        mov   ax,OFFSET [Start]
  818.        mov   bx,[OFFSET Count]
  819.      end;
  820.  
  821.      æß佬¿ ¡á »á¼∩Γ∞ ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ  º¡áτÑ¡¿∩ ¬½áßß¿Σ¿µ¿απεΓß∩
  822. ¬á¬ »ÑαѼÑΘáѼδÑ  ¿  áíß«½εΓ¡δÑ  óδαáªÑ¡¿∩.  ÅÑαѼÑΘáѼ«Ñ óδαáªÑ¡¿Ñ
  823. «º¡áτáÑΓ º¡áτÑ¡¿Ñ,   ¬«Γ«α«Ñ   ΓαÑíπÑΓ   »ÑαѼÑΘÑ¡¿∩    ó«    óαѼ∩
  824. αÑñá¬Γ¿α«óá¡¿∩, á áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ «º¡áτáÑΓ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ¡Ñ
  825. ΓαÑíπÑΓ Γᬫú« »ÑαѼÑΘÑ¡¿∩.  Äíδτ¡« óδαáªÑ¡¿∩, ¬«Γ«αδÑ ßßδ½áεΓß∩ ¡á
  826. ¼ÑΓ¬¿, »ÑαѼѡ¡δÑ, »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ∩ó½∩εΓß∩ »ÑαѼÑßΓ¿¼δ¼¿, á
  827. óδαáªÑ¡¿∩, ¬«Γ«αδÑ ßßδ½áεΓß∩ Γ«½∞¬« ¡á ¬«¡ßΓá¡Γδ - áíß«½εΓ¡δÑ.
  828.  
  829.      ÅÑαѼÑΘÑ¡¿Ñ -  φΓ«  »α«µÑßß,  »α¿  ¬«Γ«α«¼   αÑñá¬Γ«α   ßó∩ºÑ⌐
  830. ¡áº¡áτáÑΓ ß¿¼ó«½á¼   áíß«½εΓ¡δÑ   áñαÑßá.   é«   óαѼ∩   ¬«¼»¿½∩µ¿¿
  831. ¬«¼»¿½∩Γ«α ¡Ñ  º¡áÑΓ  «¬«¡τáΓѽ∞¡δσ  áñαÑ߫󠠠¼ÑΓ«¬,   »ÑαѼѡ¡δσ,
  832. »α«µÑñπα ¿½¿  Σπ¡¬µ¿⌐;  «¡¿  ¡Ñ¿ºóÑßΓ¡δ  ñ« óαѼѡ¿ αÑñá¬Γ¿α«óá¡¿∩,
  833. ¬«úñá αÑñá¬Γ«α ¡áº¡áτáÑΓ áíß«½εΓ¡δÑ áñαÑßá ß¿¼ó«½á¼.
  834.  
  835.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ºó«½∩ÑΓ éá¼  óδ»«½¡¿Γ∞  ½εíπε  «»Ñαᵿε
  836. ¡áñ    áíß«½εΓ¡δ¼   º¡áτÑ¡¿Ñ¼,   ¡«   «úαá¡¿τ¿óáÑΓ   «»Ñαᵿ¿   ¡áñ
  837. »ÑαѼÑΘáÑ¼δ¼¿ «íΩѬΓἿ ñ« ß½«ªÑ¡¿∩ ¿ óδτ¿Γá¡¿∩ ¬«¡ßΓá¡Γ.
  838.  
  839.  
  840.                           Æ¿»δ óδαáªÑ¡¿⌐.
  841.  
  842.      èáªñ«Ñ óδαáªÑ¡¿Ñ  óßΓα«Ñ¡¡«ú« áßßѼí½Ñαá ¿¼ÑÑΓ Γ¿» - ¿½¿ í«½ÑÑ
  843. Γ«τ¡« αẼÑα,  »«ß¬«½∞¬π óßΓα«Ñ¡¡δ⌐  áßßßѼí½Ñα  αáßß¼áΓα¿óáÑΓ  Γ¿»
  844. óδαáªÑ¡¿∩ »α«ßΓ« ¬á¬ αẼÑα Ñú« »«½«ªÑ¡¿∩ ó »á¼∩Γ¿.  ìá»α¿¼Ñα,  Γ¿»
  845. (αẼÑα) »ÑαѼѡ¡«⌐ Integer - 2, »«ß¬«½∞¬π «¡á ºá¡¿¼áÑΓ 2 íá⌐Γá.
  846.      éßΓα«Ñ¡¡δ⌐ áßßßѼí½Ñα   óδ»«½¡∩ÑΓ  »α«óÑα¬π  Γ¿»á,  ¬«úñá  φΓ«
  847. 󫺼«ª¡«, Γᬠ󠿡ßΓαπ¬µ¿∩σ
  848.  
  849.      var
  850.        QuitFlag: Boolean;
  851.        OutBufPtr: Word;
  852.      ...
  853.      asm
  854.        mov   al,QuitFlag
  855.        mov bx,OutBufPtr
  856.      end;
  857.  
  858.      óßΓα«Ñ¡¡δ⌐ áßßѼí½Ñα »α«óÑα∩ÑΓ τΓ« αẼÑα QuitFlag - 1  íá⌐Γ, á
  859. αẼÑα OutBufPtr  -  2 íá⌐Γá.  àß½¿ Γ¿» ¡Ñ»αáó¿½∞¡δ⌐,  Γ« ó«º¡¿¬áÑΓ
  860. «Φ¿í¬á; ¡á»α¿¼Ñα, ¡ÑóÑα¡«:
  861.  
  862.      asm
  863.        mov   dl,OutBufPtr
  864.      end;
  865.  
  866.      »«ß¬«½∞¬π DL - αÑú¿ßΓα íá⌐Γ«ó«ú« αẼÑαá, á OutBufPtr - ß½«ó«.
  867. Æ¿» ßß佬¿  ¡á »á¼∩Γ∞ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡ ß »«¼«Θ∞ε »α¿óÑñÑ¡¿∩ Γ¿»á;
  868. ¬«ααÑ¬Γ¡δ⌐ ß»«ß«í ¡á»¿ßá¡¿∩ »αÑñδñπΘÑ⌐ ¿¡ßΓαπ¬µ¿¿:
  869.  
  870.      asm
  871.        mov   dl,BYTE PTR OutBufPtr
  872.        mov   dl,Byte(OutBufPtr)
  873.        mov   dl,OutBufPtr.Byte
  874.      end;
  875.  
  876.      ßßδ½áεΓß∩ ¡á  »Ñαóδ⌐  íá⌐Γ  (¡á¿¼Ñ¡ÑÑ   º¡áτáΘ¿⌐)   »ÑαѼѡ¡«⌐
  877. OutBufPtr.
  878.      é ¡Ñ¬«Γ«αδσ ß½πτá∩σ ßß佬¿ ¡á »á¼∩Γ∞ ¡ÑΓ¿»¿α«óá¡¡δÑ,  Γ.Ñ.  ¡Ñ
  879. ¿¼ÑεΓ Γ¿»á. Åα¿¼Ñα ß ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼, ºá¬½ετÑ¡¡δ¼ ó []:
  880.  
  881.      asm
  882.        mov   al,[100H]
  883.        mov   bx,[100H]
  884.      end;
  885.  
  886.      éßΓα«Ñ¡¡δ⌐ áßßßѼí½Ñα  αáºαÑΦáÑΓ  «íÑ  ¿¡ßΓαπ¬µ¿¿,   »«ß¬«½∞¬π
  887. óδαáªÑ¡¿Ñ ó  [100H]  ¡Ñ  ¿¼ÑÑΓ  Γ¿»á  - φΓ« «º¡áτáÑΓ "ß«ñÑন¼«Ñ »«
  888. áñαÑßπ 100H  ó  ßÑú¼Ñ¡ΓÑ  ñá¡¡δσ",  ¿  Γ¿»  ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ ¿º
  889. »Ñαó«ú« «»Ñαá¡ñá (íá⌐Γ ñ½∩ AL,  ß½«ó« ñ½∩ BX). é ß½πτáÑ Ñß½¿ Γ¿» ¡Ñ
  890. ¼«ªÑΓ  íδΓ∞  «»αÑñѽѡ  ¿º  ñαπú«ú« «»Ñαá¡ñá,  óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα
  891. ΓαÑíπÑΓ ∩ó¡«ú« »α¿óÑñÑ¡¿∩ Γ¿»«ó:
  892.  
  893.      asm
  894.        inc   BYTE PTR [100H]
  895.        imul  WORD PTR [100H]
  896.      end;
  897.  
  898.      Æáí½¿µá 22.2 ßπ¼¼¿απÑΓ »αÑñ«»αÑñѽѡ¡δÑ Γ¿»δ ß¿¼ó«½«ó, ¬«Γ«αδÑ
  899. óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »αÑñ«ßΓáó½∩ÑΓ ó ñ«»«½¡Ñ¡¿Ñ ¬ Γ¿»á Åá߬á½∩.
  900.  
  901.            Æáí½¿µá 22.2 ÅαÑñ«»αÑñѽѡ¡δÑ Γ¿»δ ß¿¼ó«½«ó.
  902.  
  903.                    ────────────────────────────────
  904.                         æ¿¼ó«½           Æ¿»
  905.                    ────────────────────────────────
  906.                         BYTE             1
  907.                         WORD             2
  908.                         DWORD            4
  909.                         QWORD            8
  910.                         TBYTE            10
  911.                         NEAR             0FFFEH
  912.                         FAR              0FFFFH
  913.                    ────────────────────────────────
  914.  
  915.  
  916.      çá¼ÑΓ¿¼, τΓ«  »ßÑóñ«Γ¿»δ  NEAR ¿ FAR ¿ß»«½∞ºπεΓß∩ ñ½∩ π¬áºá¡¿∩
  917. ¼«ñѽ¿ ó맮óá »α«µÑñπα ¿ Σπ¡¬µ¿⌐. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ NEAR ¿ FAR
  918. ó »α¿óÑñÑ¡¿¿ Γ¿»«ó Γ«τ¡« ΓᬠªÑ, ¬á¬ ñαπú¿Ñ ß¿¼ó«½δ. ìá»α¿¼Ñα, Ñß½¿
  919. FarProc - FAR »α«µÑñπαá
  920.  
  921.      procedure FarProc; far;
  922.  
  923.      ¿, Ñß½¿ éδ »¿ΦÑΓÑ áßßѼí½Ñα¡δ⌐ ¬«ñ ó  Γ«¼  ªÑ  ¼«ñπ½Ñ,  τΓ«  ¿
  924. FarProc, éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ⌐ NEAR ó맮ó:
  925.  
  926.      asm
  927.        push   cs
  928.        call   NEAR PTR FarProc
  929.      end;
  930.  
  931.  
  932.  
  933.                        Ä»ÑαáΓ«αδ óδαáªÑ¡¿⌐.
  934.  
  935.      éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »αÑñ«ßΓáó½∩ÑΓ «»ÑαáΓ«αδ,  αáºñѽѡ¡δÑ  ¡á
  936. 12 ¬½áß߫󠠠»«   »α¿«α¿ΓÑΓá¼.   Æáí½¿µá  22.3  »α¿ó«ñ¿Γ  «»ÑαáΓ«αδ
  937. óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ó »«α∩ñ¬Ñ π¼Ñ¡∞ΦÑ¡¿∩ ¿σ »α¿«α¿ΓÑΓá.
  938.  
  939.      Æáí½¿µá 22.3. Ä»ÑαáΓ«αδ óδαáªÑ¡¿⌐ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá.
  940.  
  941. ───────────────────────────────────────────────────────────────────
  942.             Ä»ÑαáΓ«α                   è«¼¼Ñ¡Γáα¿⌐
  943. ───────────────────────────────────────────────────────────────────
  944.      &                         Ä»ÑαáΓ«α »ÑαѬαδΓ¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
  945.      ()                        æÑ½Ñ¬Γ«α φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ
  946.      []
  947.      .
  948.      HIGH LOW
  949.      + -                       ô¡áα¡δÑ «»ÑαáΓ«αδ
  950.      :                         Ä»ÑαáΓ«α »ÑαѬαδΓ¿∩ ßÑú¼Ñ¡Γá
  951.      OFFSET SEG TYPE PTR *
  952.      / MOD SHL SHR
  953.      + -                       ü¿¡áα¡δÑ «»ÑαáΓ«αδ
  954.      NOT AND OR XOR            Å«í¿Γ«óδÑ «»ÑαáΓ«αδ
  955. ───────────────────────────────────────────────────────────────────
  956.  
  957.      Åα¿¼Ñτá¡¿Ñ: Åα¿«α¿ΓÑΓ   «»ÑαáΓ«α«ó   óßΓα«Ñ¡¡«ú«    ÇßßѼí½Ñαá
  958. «Γ½¿τáÑΓß∩ «Γ Åá߬á½∩.  ìá»α¿¼Ñα, ó áßßѼí½Ñα¡«¼ óδαáªÑ¡¿¿ «»ÑαáΓ«α
  959. AND ¿¼ÑÑΓ ¼Ñ¡∞Φ¿⌐ »α¿«α¿ΓÑΓ,  τѼ «»ÑαáΓ«αδ +  ¿  -,  á  ó  Åá߬á½Ñ
  960. ¡á«í«α«Γ.
  961.  
  962.      &
  963.      ÅÑαѬαδΓ¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá.  êñÑ¡Γ¿Σ¿¬áΓ«α,  ß½ÑñπεΘ¿⌐   ºá   &
  964. ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬ ß¿¼ó«½,  «»αÑñѽѡ¡δ⌐ »«½∞º«óáΓѽѼ, ñáªÑ Ñß½¿
  965. «¡ ß«ó»áñáÑΓ ß ºáαѺÑαó¿α«óá¡¡δ¼ ß½«ó«¼ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá.
  966.  
  967.      (...)
  968.      Å«ñóδαáªÑ¡¿Ñ. éδαáªÑ¡¿∩ ó¡πΓα¿ () óδτ¿ß½∩εΓß∩ ñ« ¿¡ΓÑα»αÑΓᵿ¿
  969. ¬á¬ φ½Ñ¼Ñ¡Γ  óδαáªÑ¡¿∩.  äαπú«Ñ  óδαáªÑ¡¿Ñ   ¼«ªÑΓ   »αÑñΦÑßΓó«óáΓ∞
  970. óδαáªÑ¡¿ε ó¡πΓα¿  ();  αѺπ½∞ΓáΓ  ó  φΓ«¼  ß½πτáÑ ßΓá¡«ó¿Γß∩ ßπ¼¼«⌐
  971. º¡áτÑ¡¿⌐ ñóπσ óδαáªÑ¡¿⌐ ß Γ¿»«¼ »Ñαó«ú« óδαáªÑ¡¿∩.
  972.  
  973.      [...]
  974.      æßδ½¬á ¡á »á¼∩Γ∞. éδαáªÑ¡¿Ñ ó¡πΓα¿ [] »«½¡«ßΓ∞ε óδτ¿ß½∩ÑΓß∩ ñ«
  975. ¿¡ΓÑα»αÑΓᵿ¿, ¬á¬ «ñ¿¡  φ½Ñ¼Ñ¡Γ  óδαáªÑ¡¿∩.  éδαáªÑ¡¿Ñ  ó¡πΓα¿  []
  976. ¼«ªÑΓ íδΓ∞ ¬«¼í¿¡¿α«óá¡« ß αÑú¿ßΓαἿ BX,  BP,  SI,  DI,  ¿ß»«½∞ºπ∩
  977. «»ÑαáΓ«α +  ñ½∩  π¬áºá¡¿∩  ¿¡ñѬßᵿ¿.   äαπú«Ñ   óδαáªÑ¡¿Ñ   ¼«ªÑΓ
  978. »αÑñΦÑßΓó«óáΓ∞ óδαáªÑ¡¿ε ó []; αѺπ½∞ΓáΓ ßΓá¡«ó¿Γß∩ ßπ¼¼«⌐ º¡áτÑ¡¿⌐
  979. ñóπσ óδαáªÑ¡¿⌐ ß Γ¿»«¼ »Ñαó«ú« óδαáªÑ¡¿∩.  ÉѺπ½∞ΓáΓ óßÑúñá  ßß佬á
  980. ¡á »á¼∩Γ∞.
  981.  
  982.      "."
  983.      æÑ½Ñ¬Γ«α φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ.  ÉѺπ½∞ΓáΓ - ßπ¼¼á  óδαáªÑ¡¿∩  ñ«
  984. Γ«τ¬¿ ¿  óδαáªÑ¡¿∩  »«ß½Ñ  Γ«τ¬¿  ß  Γ¿»«¼  óδαáªÑ¡¿∩  »«ß½Ñ Γ«τ¬¿.
  985. 濼ó«½δ, ½ÑªáΘ¿Ñ  ó  ßΣÑαÑ  ñÑ⌐ßΓó¿∩,  «»αÑñѽ∩Ѽ«⌐  óδαáªÑ¡¿Ñ¼  ñ«
  986. Γ«τ¬¿, ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó óδαáªÑ¡¿¿ »«ß½Ñ Γ«τ¬¿.
  987.  
  988.      HIGH
  989.      é«ºóαáΘáÑΓ ßΓáαΦ¿Ñ 8 í¿Γ óδαáªÑ¡¿∩ Γ¿»á ß½«ó«,  ß½ÑñπεΘÑú«  ºá
  990. «»ÑαáΓ«α«¼. éδαáªÑ¡¿Ñ   ñ«½ª¡«   íδΓ∞  áíß«½εΓ¡δ¼  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
  991. º¡áτÑ¡¿Ñ¼.
  992.  
  993.      LOW
  994.      é«ºóαáΘáÑΓ ¼½áñΦ¿Ñ  8 í¿Γ óδαáªÑ¡¿∩ Γ¿»á ß½«ó«,  ß½ÑñπεΘÑú« ºá
  995. «»ÑαáΓ«α«¼.  éδαáªÑ¡¿Ñ  ñ«½ª¡«  íδΓ∞  áíß«½εΓ¡δ¼   ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
  996. º¡áτÑ¡¿Ñ¼.
  997.  
  998.      "+"
  999.      ô¡áα¡δ⌐ »½εß.  é«ºóαáΘáÑΓ  óδαáªÑ¡¿Ñ,  ß½ÑñπεΘÑÑ  ºá  +,  íѺ
  1000. ¿º¼Ñ¡Ñ¡¿⌐.   éδαáªÑ¡¿Ñ   ñ«½ª¡«  íδΓ∞  áíß«½εΓ¡δ¼  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
  1001. º¡áτÑ¡¿Ñ¼.
  1002.  
  1003.      "-"
  1004.      ô¡áα¡δ⌐ ¼¿¡πß.   é«ºóαáΘáÑΓ   óδαáªÑ¡¿Ñ,  ß½ÑñπεΘÑÑ  ºá  -,  ß
  1005. «Γα¿µáΓѽ∞¡δ¼ º¡áτÑ¡¿Ñ¼.   éδαáªÑ¡¿Ñ   ñ«½ª¡«    íδΓ∞    áíß«½εΓ¡δ¼
  1006. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼.
  1007.  
  1008.      ":"
  1009.      ÅÑαѬαδΓ¿Ñ ßÑú¼Ñ¡Γá. ô¬áºδóáÑΓ ÇßßѼí½Ñαπ, τΓ« óδαáªÑ¡¿Ñ »«ß½Ñ
  1010. ":" «Γ¡«ß¿Γß∩ ¬ ßÑú¼Ñ¡Γπ ß ¿¼Ñ¡Ñ¼ ßÑú¼Ñ¡Γ¡«ú« αÑú¿ßΓαá (CS, DS, SS,
  1011. ES) ñ« ":".  ÉѺπ½∞ΓáΓ - ßßδ½¬á ¡á »á¼∩Γ∞  ß«  º¡áτÑ¡¿Ñ¼  óδαáªÑ¡¿∩
  1012. »«ß½Ñ ":".   è«úñá  »ÑαѬαδΓ¿Ñ  ßÑú¼Ñ¡Γá  ¿ß»«½∞ºπÑΓß∩  ó  «»Ñαá¡ñÑ
  1013. ¿¡ßΓαπ¬µ¿¿, ¿¡ßΓαπ¬µ¿∩ íπñÑΓ »αÑñóáαѡᠠ߫«ΓóÑΓßΓóπεΘ¿¼  »αÑΣ¿¬ß«¼
  1014. »ÑαѬαδΓ¿∩ ßÑú¼Ñ¡Γá,   úáαá¡Γ¿απ∩,   τΓ«   íπñÑΓ  óδíαá¡  π¬áºá¡¡δ⌐
  1015. ßÑú¼Ñ¡Γ.
  1016.  
  1017.      OFFSET
  1018.      é«ºóαáΘáÑΓ ß¼ÑΘÑ¡¿Ñ  (¼½áñΦÑÑ ß½«ó«) óδαáªÑ¡¿∩,  ß½ÑñπεΘÑú« ºá
  1019. «»ÑαáΓ«α«¼. ÉѺπ½∞ΓáΓ - ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1020.  
  1021.      SEG
  1022.      é«ºóαáΘáÑΓ ßÑú¼Ñ¡Γ¡πε   τáßΓ∞   (ßΓáαΦÑÑ   ß½«ó«)   óδαáªÑ¡¿∩,
  1023. ß½ÑñπεΘÑú« ºá «»ÑαáΓ«α«¼. ÉѺπ½∞ΓáΓ - ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1024.  
  1025.      TYPE
  1026.      é«ºóαáΘáÑΓ Γ¿»  (αẼÑα  ó  íá⌐Γáσ)  óδαáªÑ¡¿∩,  ß½ÑñπεΘÑú« ºá
  1027. «»ÑαáΓ«α«¼. Æ¿» ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« º¡áτÑ¡¿∩ - 0.
  1028.  
  1029.      PTR
  1030.      Ä»ÑαáΓ«α »α¿óÑñÑ¡¿∩  Γ¿»á.  ÉѺπ½∞ΓáΓ  -  ßßδ½¬á  ¡á »á¼∩Γ∞ ß«
  1031. º¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩,  ß½ÑñπεΘÑú« ºá «»ÑαáΓ«α«¼ ¿  Γ¿»«¼  óδαáªÑ¡¿∩,
  1032. ßΓ«∩ΘÑú« »ÑαÑñ «»ÑαáΓ«α«¼.
  1033.  
  1034.      "*"
  1035.      ô¼¡«ªÑ¡¿Ñ. Äíá    óδαáªÑ¡¿∩    ñ«½ª¡δ     íδΓ∞     áíß«½εΓ¡δ¼¿
  1036. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿     ¿     αѺπ½∞ΓáΓ    -    áíß«½εΓ¡«Ñ
  1037. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1038.  
  1039.      /
  1040.      ûѽ«Ñ ñѽѡ¿Ñ.   Äíá   óδαáªÑ¡¿∩   ñ«½ª¡δ   íδΓ∞   áíß«½εΓ¡δ¼¿
  1041. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿   º¡áτÑ¡¿∩¼¿    ¿    αѺπ½∞ΓáΓ    -    áíß«½εΓ¡«Ñ
  1042. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1043.  
  1044.      MOD
  1045.      ÄßΓáΓ«¬ «Γ  µÑ½«ú«  ñѽѡ¿∩.   Äíá   óδαáªÑ¡¿∩   ñ«½ª¡δ   íδΓ∞
  1046. áíß«½εΓ¡δ¼¿  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿  º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
  1047. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1048.  
  1049.      SHL
  1050.      ï«ú¿τÑ߬¿⌐ ßñó¿ú ó½Ñó«.  Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
  1051. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿   º¡áτÑ¡¿∩¼¿    ¿    αѺπ½∞ΓáΓ    -    áíß«½εΓ¡«Ñ
  1052. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1053.  
  1054.      SHR
  1055.      ï«ú¿τÑ߬¿⌐ ßñó¿ú ó»αáó«. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
  1056. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿    º¡áτÑ¡¿∩¼¿    ¿    αѺπ½∞ΓáΓ    -   áíß«½εΓ¡«Ñ
  1057. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1058.  
  1059.      "+"
  1060.      æ½«ªÑ¡¿Ñ. éδαáªÑ¡¿∩  ¼«úπΓ  íδΓ∞  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿
  1061. ¿½¿ ßßδ½¬á¼¿ ¬ »á¼∩Γ¿,  ¡« Γ«½∞¬«  «ñ¡«  ¿º  óδαáªÑ¡¿⌐  ¼«ªÑΓ  íδΓ∞
  1062. »ÑαѼÑΘáÑ¼δ¼ º¡áτÑ¡¿Ñ¼.  àß½¿  «ñ¡«  ¿º  óδαáªÑ¡¿⌐  -  »ÑαѼÑΘáѼ«Ñ
  1063. º¡áτÑ¡¿Ñ, Γ« αѺπ½∞ΓáΓ ΓᬠªÑ »ÑαѼÑΘáѼ«Ñ º¡áτÑ¡¿Ñ.  àß½¿ «ñ¡«  ¿º
  1064. óδαáªÑ¡¿⌐ - ßßδ½¬á ¡á »á¼∩Γ∞, Γ« αѺπ½∞ΓáΓ ΓᬠªÑ ßßδ½¬á ¡á »á¼∩Γ∞.
  1065.  
  1066.      "-"
  1067.      éδτ¿Γá¡¿Ñ. ÅÑαó«Ñ óδαáªÑ¡¿Ñ ¼«ªÑΓ íδΓ∞ ½εí«ú« ¬½áßßá, á óΓ«α«Ñ
  1068. óδαáªÑ¡¿Ñ ñ«½ª¡«   íδΓ∞   áíß«½εΓ¡δ¼   ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼  º¡áτÑ¡¿Ñ¼.
  1069. ÉѺπ½∞ΓáΓ Γ«ú« ªÑ ¬½áßßá, τΓ« ¿ »Ñαó«Ñ º¡áτÑ¡¿Ñ.
  1070.  
  1071.      NOT
  1072.      Å«í¿Γ«ó«Ñ «Γα¿µá¡¿Ñ.    éδαáªÑ¡¿Ñ   ñ«½ª¡«   íδΓ∞   áíß«½εΓ¡δ¼
  1073. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼    º¡áτÑ¡¿Ñ¼    ¿    αѺπ½∞ΓáΓ    -     áíß«½εΓ¡«Ñ
  1074. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1075.  
  1076.      AND
  1077.      Å«í¿Γ«ó«Ñ "¿".   Äíá   óδαáªÑ¡¿∩   ñ«½ª¡δ   íδΓ∞   áíß«½εΓ¡δ¼¿
  1078. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿    º¡áτÑ¡¿∩¼¿    ¿    αѺπ½∞ΓáΓ    -   áíß«½εΓ¡«Ñ
  1079. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1080.  
  1081.      OR
  1082.      Å«í¿Γ«ó«Ñ "¿½¿".   Äíá   óδαáªÑ¡¿∩   ñ«½ª¡δ  íδΓ∞  áíß«½εΓ¡δ¼¿
  1083. ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿   º¡áτÑ¡¿∩¼¿    ¿    αѺπ½∞ΓáΓ    -    áíß«½εΓ¡«Ñ
  1084. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1085.  
  1086.      XOR
  1087.      Å«í¿Γ«ó«Ñ ¿ß¬½ετáεΘÑÑ  "¿½¿".  Äíá   óδαáªÑ¡¿∩   ñ«½ª¡δ   íδΓ∞
  1088. áíß«½εΓ¡δ¼¿  ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿  º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
  1089. ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
  1090.  
  1091.  
  1092.                  ÇßßѼí½Ñα¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿.
  1093.  
  1094.      ä« ß¿σ  »«α  ¬áªñá∩  ¬«¡ßΓαπ¬µ¿∩  asm...end  íδ½á  ºá¬½ετÑ¡á ó
  1095. «»ÑαáΓ«α¡πε τáßΓ∞ begin...end.  ÇßßѼí½Ñα¡á∩ ñ¿αÑ¬Γ¿óá Turbo Pascal
  1096. »«ºó«½∩ÑΓ éá¼   ¡á»¿ßáΓ∞   »α«µÑñπαπ   ¿½¿   Σπ¡¬µ¿ε  »«½¡«ßΓ∞ε  ¡á
  1097. óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ,  ¡Ñ ΓαÑíπ∩  «»ÑαáΓ«α¡«⌐  τáßΓ¿  begin...end.
  1098. Åα¿¼Ñα áßßѼí½Ñα¡«⌐ Σπ¡¬µ¿¿:
  1099.  
  1100.      function LongMul(X, Y: Integer): Longint; assembler;
  1101.      asm
  1102.        mov   ax,X
  1103.        imul  Y
  1104.      end;
  1105.  
  1106.      ä¿αÑ¬Γ¿óá ÇßßѼí½Ñαá  ºáßΓáó½∩ÑΓ  Turbo  Pascal  óδ»«½¡¿Γ∞ α∩ñ
  1107. «»Γ¿¼¿ºáµ¿⌐ »α¿ úÑ¡Ñαᵿ¿ ¬«ñá:
  1108.  
  1109.      - è«¼»¿½∩Γ«α  ¡Ñ  úÑ¡Ñα¿απÑΓ  ¬«ñ  ñ½∩  ¬«»¿α«óá¡¿∩   º¡áτÑ¡¿∩
  1110. »áαá¼ÑΓα«ó ó  ½«¬á½∞¡δÑ  »ÑαѼѡ¡δÑ.  ¥Γ« ñÑ⌐ßΓóπÑΓ ¡á óßÑ º¡áτÑ¡¿∩
  1111. »áαá¼ÑΓα«ó ßΓ᫬«ó«ú« Γ¿»á ¿ ñαπú¿Ñ º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó  ß αẼÑα«¼
  1112. ¡Ñ 1,  2  ¿½¿ 4 íá⌐Γ.  é¡πΓα¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ΓᬿѠ»áαá¼ÑΓαδ
  1113. ñ«½ª¡δ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩, ¬á¬ Ñß½¿ íδ «¡¿ í뫨 var »áαá¼ÑΓαἿ.
  1114.  
  1115.      - è«¼»¿½∩Γ«α ¡Ñ αáß»αÑñѽ∩ÑΓ »ÑαѼѡ¡πε αѺπ½∞ΓáΓá  Σπ¡¬µ¿¿  ¿
  1116. ßßδ½¬á ¡á   ß¿¼ó«½  @Result  ∩ó½∩ÑΓß∩  «Φ¿í¬«⌐.  æΓ᫬«óδÑ  Σπ¡¬µ¿¿
  1117. ∩ó½∩εΓß∩ ¿ß¬½ετÑ¡¿Ñ¼  ¿º  φΓ«ú«  »αáó¿½á.  Ä¡¿  óßÑúñá   ¿ß»«½∞ºπεΓ
  1118. π¬áºáΓѽ∞ @Result, ¬«Γ«αδ⌐ αáß»αÑñѽ∩ÑΓß∩ óδºδóáεΘÑ⌐ »α«úαá¼¼«⌐.
  1119.  
  1120.      - è«¼»¿½∩Γ«α  ¡Ñ úÑ¡Ñα¿απÑΓ ¬áñαá ßΓѬá ñ½∩ »α«µÑñπα ¿ Σπ¡¬µ¿⌐
  1121. íѺ »áαá¼ÑΓα«ó ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ.
  1122.  
  1123.      - ÇóΓ«¼áΓ¿τÑ߬¿  úÑ¡Ñα¿απÑΓß∩   ¬«ñ   óσ«ñá   ¿   óδσ«ñá   ñ½∩
  1124. áßßѼí½Ñα¡δσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐, óδú½∩ñ∩Θ¿σ ¬á¬:
  1125.  
  1126.      push   bp
  1127.      mov    bp,sp
  1128.      sub    sp,Locals
  1129.      ...
  1130.      mov    sp,bp
  1131.      pop    bp
  1132.      ret    Params
  1133.  
  1134.      úñÑ Locals  -  αẼÑα  ½«¬á½∞¡δσ  »ÑαѼѡ¡δσ,  Params - αẼÑα
  1135. »áαá¼ÑΓα«ó. àß½¿ Locals ¿ Params ¡«½∞,  Γ« óσ«ñ¡«ú« ¬«ñá ¡ÑΓ, á ¬«ñ
  1136. óδσ«ñá ß«ßΓ«¿Γ ¿º ¿¡ßΓαπ¬µ¿¿ RET.
  1137.  
  1138.      öπ¡¬µ¿¿, ¿ß»«½∞ºπεΘ¿Ñ ñ¿αÑ¬Γ¿óπ ÇßßѼí½Ñαá,  ñ«½ª¡δ ó«ºóαáΘáΓ∞
  1139. αѺπ½∞ΓáΓδ:
  1140.  
  1141.      - öπ¡¬µ¿¿  »«α∩ñ¬«ó«ú«  Γ¿»á   (Integer,   Char,   Boolean   ¿
  1142. »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ  ó«ºóαáΘáεΓ  αѺπ½∞ΓáΓδ ó AL (8-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ),
  1143. AX (16-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ), ¿½¿ DX:AX (32-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ).
  1144.  
  1145.      - öπ¡¬µ¿¿ Γ¿»á Real ó«ºóαáΘáεΓ αѺπ½∞ΓáΓ ó DX:BX:AX
  1146.  
  1147.      - öπ¡¬µ¿¿ ß αѺπ½∞ΓáΓἿ Γ¿»á 8087 (Single, Double, Extended ¿
  1148. Comp) ó«ºóαáΘáεΓ Ñú« ó αÑú¿ßΓαÑ ST(0) ß«»α«µÑßß«αá 8087.
  1149.  
  1150.      - ÉѺπ½∞ΓáΓ Γ¿»á π¬áºáΓѽ∞ ó«ºóαáΘáÑΓß∩ ó DX:AX.
  1151.  
  1152.      - ÉѺπ½∞ΓáΓ  Γ¿»á  ßΓ᫬á ó«ºóαáΘáÑΓß∩ τÑαѺ óαѼѡ¡πε »á¼∩Γ∞,
  1153. ¡á ¬«Γ«απε π¬áºδóáÑΓ @Result.
  1154.  
  1155.      ÇßßѼí½Ñα¡á∩ ñ¿αÑ¬Γ¿óá  ó«  ¼¡«ú«¼   ßαá󡿼ᠠ ß   ñ¿αÑ¬Γ¿ó«⌐
  1156. external, á  áßßѼí½Ñα¡δÑ  »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ñ«½ª¡δ ß½Ññ«óáΓ∞ ΓѼ
  1157. ªÑ »αáó¿½á¼,  τΓ« ¿ external »α«µÑñπαδ ¿ Σπ¡¬µ¿¿. æ½ÑñπεΘ¿Ñ »α¿¼Ñαδ
  1158. ñѼ«¡ßΓα¿απεΓ ¡Ñ¬«Γ«αδÑ  «Γ½¿τ¿∩  ¼Ñªñπ «»ÑαáΓ«αἿ asm ó «íδτ¡δσ ¿
  1159. áßßѼí½Ñα¡δσ Σπ¡µ¿∩σ.  ÅÑαóδ⌐  »α¿¼Ñα  ¿ß»«½∞ºπÑΓ  «»ÑαáΓ«α  asm  ó
  1160. «íδτ¡«⌐ Σπ¡¬µ¿¿   ñ½∩  »αÑ«íαẫóá¡¿∩  ßΓ᫬¿  ó  »α«»¿ß¡δÑ  íπ¬óδ.
  1161. çá¼ÑΓ¿¼, τΓ« º¡áτÑ¡¿Ñ »áαá¼ÑΓαá Str  ó  φΓ«¼  ß½πτáÑ  ßßδ½áÑΓß∩  ¡á
  1162. ½«¬á½∞¡πε »ÑαѼѡ¡πε, »«ß¬«½∞¬π ¬«¼»¿½∩Γ«α áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿απÑΓ
  1163. óσ«ñ¡«⌐ ¬«ñ,  ¬«Γ«αδ⌐ ¬«»¿απÑΓ ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ »áαá¼ÑΓα ó  ½«¬á½∞¡πε
  1164. »á¼∩Γ∞.
  1165.  
  1166.      function UpperCase(Str: String): String;
  1167.      begin
  1168.        asm
  1169.          cld
  1170.          lea    si,Str
  1171.          les    di,@Result
  1172.          SEGSS  lodsb
  1173.          stosb
  1174.          xor    ah,ah
  1175.          xchg   ax,cx
  1176.          jcxz   @3
  1177.        @1:
  1178.          SEGSS  lodsb
  1179.          cmp    al,'a'
  1180.          ja     @2
  1181.          cmp    a1,'z'
  1182.          jb     @2
  1183.          sub    a1,20H
  1184.        @2:
  1185.          stosb
  1186.          loop
  1187.        @3:
  1188.        end;
  1189.      end;
  1190.  
  1191.      éΓ«α«⌐ »α¿¼Ñα  - φΓ« áßßѼí½Ñα¡á∩ óÑαß¿∩ Σπ¡¬µ¿¿ UpperCase.  é
  1192. φΓ«¼ ß½πτáÑ Str ¡Ñ ¬«»¿απÑΓß∩ ó ½«¬á½∞¡πε »á¼∩Γ∞,  ¿ Σπ¡¬µ¿∩ ñ«½ª¡á
  1193. ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ Str ¬á¬ var »áαá¼ÑΓα.
  1194.  
  1195.      function UpperCase(S: String): String; assembler;
  1196.      asm
  1197.        push   ds
  1198.        cld
  1199.        lds    si,Str
  1200.        les    di,@Result
  1201.        lodsb
  1202.        stosb
  1203.        xor    ah,ah
  1204.        xchg   ax,cx
  1205.        jcxz   @3
  1206.      @1:
  1207.        lodsb
  1208.        cmp    a1,'a'
  1209.        ja     @2
  1210.        cmp    a1,'z'
  1211.        jb     @2
  1212.        sub    a1,20H
  1213.      @2:
  1214.        stosb
  1215.        loop   @1
  1216.      @3:
  1217.        pop    ds
  1218.      end;
  1219.