home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-02-04 | 42.2 KB | 1,219 lines |
- ù Ç æ Æ £ 4.
-
- êæÅÄï£çÄéÇìêà TURBO PASCAL æ ƒç¢èÄî ÇææàîüïàÉÇ.
-
- âïÇéÇ 22.
-
- 鿯ÉÄàìì¢ë ÇææàîüïàÉ.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα Turbo Pascal »«ºó«½∩ÑΓ éá¼ »¿ßáΓ∞
- áßßѼí½Ñα¡δ⌐ ¬«ñ ñ½∩ 8086/8087 ¿ 80286/80287 »α∩¼« ó éáΦ¿σ
- »α«úαá¼¼áσ ¡á Åá߬á½Ñ. è«¡Ñτ¡«, éδ ÑΘÑ ¼«ªÑΓÑ »αÑ«íαẫóδóáΓ∞
- áßßѼí½Ñα¡δÑ ¿¡ßΓαπ¬µ¿¿ ó ¼áΦ¿¡¡δ⌐ ¬«ñ óαπτ¡πε ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó
- «»ÑαáΓ«αáσ inline ¿½¿ »«ñαÑñá¬Γ¿α«óáΓ∞∞ .OBJ Σá⌐½δ, ¬«Γ«αδÑ
- ß«ñÑαªáΓ external »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ¬«úñá éδ σ«Γ¿ΓÑ ß¼ÑΦ¿óáΓ∞
- Åá߬á½∞ ¿ ÇßßѼí½Ñα.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα αÑ὿ºπÑΓ í«½∞Φ«Ñ »«ñ¼¡«ªÑßΓó«
- ß¿¡Γá¬ß¿ßá, »«ññÑনóáѼ«ú« Turbo Assembler ¿ ¼á¬α«áßßѼí½Ñα«¼
- Microsoft. éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ññÑনóáÑΓ óßÑ ¬«ñδ «»Ñαᵿ⌐ 8086
- /8087 ¿ 80286/80287 ¿ »«τΓ¿ óßÑ «»ÑαáΓ«αδ óδαáªÑ¡¿⌐ Turbo
- Assembler.
-
- çá ¿ß¬½ετÑ¡¿Ñ¼ DB, DW, DD («»αÑñѽ¿Γ∞ íá⌐Γ, ß½«ó« ¿ ñó«⌐¡«Ñ
- ß½«ó«) ¡¿ «ñ¡á ¿º ñ¿αÑ¬Γ¿ó Turbo Assembler, Γᬿσ ¬á¬ EQU, PROC,
- STRUC, SEGMENT ¿ MACRO ¡Ñ »«ññÑনóáÑΓß∩ óßΓα«Ñ¡¡δ¼ ÇßßѼí½Ñα«¼.
- Äñ¡á¬« «»Ñαᵿ¿, »«ññÑনóáѼδÑ ñ¿αÑ¬Γ¿óἿ Turbo Assembler, ó«
- ¼¡«ú«¼ ß««ΓóÑΓßΓóπεΓ ß««ΓóÑΓßΓóπεΘ¿¼ ¬«¡ßΓαπ¬µ¿∩¼ Turbo Pascal.
- ìá»α¿¼Ñα í«½∞Φ¿¡ßΓó« ñ¿αÑ¬Γ¿ó EQU ß««ΓóÑΓßΓóπÑΓ «íΩ∩ó½Ñ¡¿∩¼ const,
- var ¿ type ó Turbo Pascal, ñ¿αÑ¬Γ¿óá PROC ß««ΓóÑΓßΓóπÑΓ «íΩ∩ó½Ñ¡¿∩¼
- procedure ¿ function, á ñ¿αÑ¬Γ¿óá STRUC ß««ΓóÑΓßóπÑΓ Γ¿»á¼ record ó
- Turbo Pascal. é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¼«ª¡« ñπ¼áΓ∞ « óßΓα«Ñ¡¡«¼
- ÇßßѼí½ÑαÑ Turbo Pascal, ¬á¬ « ¬«¼»¿½∩Γ«αÑ ß ∩ºδ¬á ÇßßѼí½Ñα,
- ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ ß¿¡Γá¬ß¿ß Åá߬á½∩ ñ½∩ óßÑσ «íΩ∩ó½Ñ¡¿⌐.
-
-
- Ä»ÑαáΓ«α asm.
-
- è óßΓα«Ñ¡¡«¼π ÇßßѼí½Ñαπ «íαáΘáεΓß∩ τÑαѺ «»ÑαáΓ«α asm.
- æ¿¡Γá¬ß¿ß «»ÑαáΓ«αá asm:
-
- asm AsmStatement < Separator AsmStatement > end
-
- úñÑ AsmStatement - φΓ« áßßѼí½Ñα¡δ⌐ «»ÑαáΓ«α, á Separator -
- φΓ« ";", ¡«óá∩ ßΓα«¬á ¿½¿ ¬«¼¼Ñ¡Γáα¿⌐ Åá߬á½∩. ìÑ߬«½∞¬« »α¿¼Ñα«ó
- «»ÑαáΓ«αá asm:
-
- if EnableInts then
- asm
- sti
- end
- else
- asm
- cli
- end;
-
- asm
- mov ax,Left; xchg ax,Right; mov Left,ax;
- end;
- asm
- mov ah,0
- int 16H
- mov CharCode,al
- mov ScanCode,ah
- end;
-
- asm
- push ds
- lds si,Source
- les di,Dest
- mov cx,Count
- cld
- rep movsb
- pop ds
- end;
-
- çá¼ÑΓ¿¼, τΓ« ¡á «ñ¡«⌐ ßΓα«¬Ñ ¼«ª¡« »«¼ÑßΓ¿Γ∞ ¡Ñ߬«½∞¬«
- «»ÑαáΓ«α«ó ÇßßѼí½Ñαá, αáºñѽѡ¡δσ ";". çá¼ÑΓ¿¼ ΓᬠªÑ, τΓ« ";" ¡Ñ
- ΓαÑíπÑΓß∩ ¼Ñªñπ ñóπ¼∩ áßßѼí½Ñα¡δ¼¿ «»ÑαáΓ«αἿ, Ñß½¿ «¡¿ ¡á αạδσ
- ßΓ᫬áσ. ìᬫ¡Ñµ ºá¼ÑΓ¿¼, τΓ« ";" ¡Ñ π¬áºδóáÑΓ, τΓ« «ßΓáóΦá∩ß∩
- τáßΓ∞ ßΓ᫬¿ - ¬«¼¼Ñ¡Γáα¿⌐, Γ.¬. ¬«¼¼Ñ¡Γáα¿⌐ ñ«½ªÑ¡ íδΓ∞ ¡á»¿ßá¡ ó
- ßΓ¿½Ñ Åá߬á½∩, ¿ß»«½∞ºπ∩ {} ¿ (* *).
-
-
- êß»«½∞º«óá¡¿Ñ αÑú¿ßΓα«ó.
-
- Åαáó¿½á ¿ß»«½∞º«óá¡¿∩ αÑú¿ßΓα«ó ó «»ÑαáΓ«αÑ asm ó «íΘѼ ΓᬿÑ
- ªÑ, ¬á¬ ¿ ó external »α«µÑñπαáσ ¿ Σπ¡¬µ¿∩σ. Ä»ÑαáΓ«α asm ñ«½ªÑ¡
- ß«σαá¡∩Γ∞ αÑú¿ßΓαδ BP, SP, SS ¿ DS ¿ ¼«ªÑΓ ßó«í«ñ¡« ¿º¼Ñ¡∩Γ∞
- αÑú¿ßΓαδ AX, BX, CX, DX, SI, DI, ES ¿ Flags. ìá óσ«ñÑ «»ÑαáΓ«αá asm
- BP π¬áºδóáÑΓ ¡á ΓѬπΘ¿⌐ ßΓѬ, SP π¬áºδóáÑΓ ¡á óÑαΦ¿¡π ßΓѬá, SS
- ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ¡δ⌐ áñαÑß ßÑú¼Ñ¡Γá ßΓѬá, á DS ß«ñÑαª¿Γ ßÑú¼Ñ¡Γ¡δ⌐
- áñαÑß ßÑú¼Ñ¡Γá ñá¡¡δσ. çá ¿ß¬½ετÑ¡¿Ñ¼ BP, SP, SS ¿ DS, «»ÑαáΓ«α asm
- ¡Ñ ñ«½ªÑ¡ ñѽáΓ∞ »αÑñ»«½«ªÑ¡¿⌐ « ß«ñÑন¼«¼ «ßΓá½∞¡δσ αÑú¿ßΓα«ó »α¿
- óσ«ñÑ ó «»ÑαáΓ«α.
-
-
- æ¿¡Γá¬ß¿ß áßßѼí½Ñα¡δσ «»ÑαáΓ«α«ó.
-
- æ¿¡Γá¬ß¿ß áßßѼí½Ñα¡«ú« «»ÑαáΓ«αá:
-
- [ Label ":" ] < Prefix > [ Opcode [ Operand < "," Operand > ] ]
-
- úñÑ Label - ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼ÑΓ¬¿, Prefix - ¬«ñ »αÑΣ¿¬ßá, Opcode
- - ñ¿αÑ¬Γ¿óá ¿½¿ ¿¡ßΓαπ¬µ¿∩ ÇßßѼí½Ñαá ¿ OpÑrand - áßßѼí½Ñα¡«Ñ
- óδαáªÑ¡¿Ñ.
-
- 諼¼Ñ¡Γáα¿¿ αáºαÑΦÑ¡δ ¼Ñªñπ áßßѼí½Ñα¡δ¼¿ «»ÑαáΓ«αἿ, ¡« ¡Ñ
- ó¡πΓα¿ ¿σ. ìá»α¿¼Ñα, φΓ« αáºαÑΦÑ¡«:
-
- asm
- mov ax,1 {Initial value}
- mov cx,100 {Count}
- end;
-
- á φΓ« ¡ÑΓ:
-
- asm
- mov {Initial value} ax,1
- mov cx,{Count} 100
- end;
-
-
- îÑΓ¬¿.
-
- îÑΓ¬¿ «»αÑñѽ∩εΓß∩ ó ÇßßѼí½ÑαÑ ΓᬠªÑ, ¬á¬ ó Åá߬á½Ñ,
- ºá»¿ßδóá∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¼ÑΓ¬¿ ß ñó«ÑΓ«τ¿Ñ¼ ñ« «»ÑαáΓ«αá; ¬á¬ ¿ ó
- Åá߬á½Ñ, ¼ÑΓ¬¿, «»αÑñѽѡ¡δÑ ó ÇßßѼí½ÑαÑ, ñ«½ª¡δ «íΩ∩ó½∩Γ∞ß∩ ó
- ñѬ½áαáΓ¿ó¡«⌐ τáßΓ¿ label ó í½«¬Ñ, ß«ñÑαªáΘѼ «»ÑαáΓ«α asm. Äñ¡á¬«
- ßπΘÑßΓóπÑΓ «ñ¡« ¿ß¬½ετÑ¡¿Ñ ¿º φΓ«ú« »αáó¿½á: ½«¬á½∞¡δÑ ¼ÑΓ¬¿.
-
- 﫬á½∞¡δÑ ¼ÑΓ¬¿ - φΓ« ¼ÑΓ¬¿, ¬«Γ«αδÑ ¡áτ¿¡áεΓß∩ ß @. ū߬«½∞¬π
- @ ¡Ñ ¼«ªÑΓ íδΓ∞ τáßΓ∞ε ¿ñÑ¡Γ¿Σ¿¬áΓ«αá Åá߬á½∩, ¿ß»«½∞º«óá¡¿Ñ Γᬿσ
- ½«¬á½∞¡δσ ¼ÑΓ«¬ ñ«»π߬áÑΓß∩ Γ«½∞¬« ó¡πΓα¿ «»ÑαáΓ«αá asm, ¬«Γ«αδ⌐
- «»αÑñѽ∩ÑΓ ¿σ (Γ.Ñ. ßΣÑαá ñÑ⌐ßΓó¿∩ ½«¬á½∞¡«⌐ ¼ÑΓ¬¿ αáßΦ¿α∩ÑΓß∩ «Γ
- ¬½ετÑó«ú« ß½«óá asm ñ« ¬½ετÑó«ú« ß½«óá end ñ½∩ φΓ«ú« «»ÑαáΓ«αá
- asm).
-
- Åα¿¼Ñτá¡¿Ñ: é «Γ½¿τ¿Ñ «Γ «íδτ¡δσ ¼ÑΓ«¬, ½«¬á½∞¡δÑ ¼ÑΓ¬¿ ¡Ñ
- «íΩ∩ó½∩εΓß∩ ó αáºñÑ½Ñ «íΩ∩ó½Ñ¡¿∩ label ñ« ¿σ ¿ß»«½∞º«óá¡¿∩.
-
- êñÑ¡Γ¿Σ¿¬áΓ«α ½«¬á½∞¡«⌐ ¼ÑΓ¬¿ ß«ßΓ«¿Γ ¿º ß¿¼ó«½á @ ß
- »«ß½ÑñπεΘÑ⌐ «ñ¡«⌐ ¿½¿ í«½ÑÑ íπ¬ó«⌐ A..Z, µ¿Σα 0..9, "_" ¿½¿ @. èá¬
- ñ½∩ óßÑσ ¼ÑΓ«¬, »«ß½Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ¿ñÑΓ ":".
- æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ñѼ«¡ßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ
- ½«¬á½∞¡δσ ¿ ú½«íá½∞¡δσ ¼ÑΓ«¬ ó «»ÑαáΓ«αÑ asm:
-
- label Start, Stop;
- ...
- begin
- asm
- Start:
- ...
- jz Stop
- @1:
- ...
- loop @1
- end;
- asm
- @1:
- ...
- jc @2
- ...
- jmp @1
- @2:
- end;
- goto Start;
- Stop:
- end;
-
-
- çá¼ÑΓ¿¼, τΓ« ¡«α¼á½∞¡á∩ ¼ÑΓ¬á ¼«ªÑΓ íδΓ∞ «»αÑñѽѡá ó¡πΓα¿
- «»ÑαáΓ«αá asm ¿ ¿ß»«½∞º«óá¡á ó¡Ñ «»ÑαáΓ«αá asm, ¿ ¡á«í«α«Γ. çá¼ÑΓ¿¼
- ΓᬪÑ, τΓ« «ñ¡« ¿ Γ« ªÑ ¿¼∩ ½«¬á½∞¡«⌐ ¼ÑΓ¬¿ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó
- αẽ¿τ¡δσ «»ÑαáΓ«αáσ asm.
-
- ÅαÑΣ¿¬ß.
-
- éßΓα«Ñ¡¡δ⌐ áßßѼí½Ñα »«ññÑনóáÑΓ óßΓα«Ñ¡¡δÑ »αÑΣ¿¬ßδ:
-
- ───────────────────────────────────────────────────────────────────
- LOCK çáσóáΓ Φ¿¡δ
- REP Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿
- REPE/REPZ Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿ »«¬á =/0
- REPNE/REPNZ Å«óΓ«α ßΓ᫬«ó«⌐ «»Ñαᵿ¿ »«¬á (¡Ñ =)/(¡Ñ 0)
- SEGCS ÅÑαѬαδΓ¿Ñ CS (ßÑú¼Ñ¡Γ ¬«ñá)
- SEGDS ÅÑαѬαδΓ¿Ñ DS (ßÑú¼Ñ¡Γ ñá¡¡δσ)
- SEGES ÅÑαѬαδΓ¿Ñ ES (φ¬ßΓαá ßÑú¼Ñ¡Γ)
- SEGSS ÅÑαѬαδΓ¿Ñ SS (ßÑú¼Ñ¡Γ ßΓѬá)
- ───────────────────────────────────────────────────────────────────
-
- æ áßßѼí½Ñα¡«⌐ ¿¡ßΓαπ¬µ¿Ñ⌐ ¼«úπΓ íδΓ∞ π¬áºá¡δ 0 ¿½¿ í«½ÑÑ
- »αÑΣ¿¬ß«ó. ìá»α¿¼Ñα:
-
- asm
- rep movsb
- SEGES lodsw
- SEGCS mov ax,[bx]
- SEGES
- mov WORD PTR [DI],0
- end;
-
- çá¼ÑΓ¿¼, τΓ« »αÑΣ¿¬ß ¼«ªÑΓ íδΓ∞ π¬áºá¡ íѺ ¬«ñá ¿¡ßΓαπ¬µ¿¿ ó
- Γ«¼ ªÑ «»ÑαáΓ«αÑ - ó φΓ«¼ ß½πτáÑ »αÑΣ¿¬ß ó«ºñÑ⌐ßΓóπÑΓ ¡á ¬«ñ
- ¿¡ßΓαπ¬µ¿¿ ó ß½ÑñπεΘѼ áßßѼí½Ñα¡«¼ «»ÑαáΓ«αÑ.
-
- è«ñ ¿¡ßΓαπ¬µ¿¿ «τÑ¡∞ αÑñ¬« ¿¼ÑÑΓ í«½ÑÑ «ñ¡«ú« »αÑΣ¿¬ßá ¿ ¡Ñ
- ¼«ªÑΓ íδΓ∞ π¬áºá¡« í«½ÑÑ 3 »αÑΣ¿¬ß«ó (LOC, ºáΓѼ SEGxx, ºáΓѼ
- REPxx). üπñ∞ΓÑ ó¡¿¼áΓѽ∞¡δ »α¿ ¿ß»«½∞º«óá¡¿¿ ¡Ñ߬«½∞¬¿σ »αÑΣ¿¬ß«ó -
- ¿σ »«α∩ñ«¬ óáªÑ¡ ¿ ¡Ñ¬«Γ«αδÑ »α«µÑßß«αδ 80σ86 ¡Ñ ¼«úπΓ «íαáíáΓδóáΓ∞
- óßÑ ¬«¼í¿¡áµ¿¿ »αáó¿½∞¡«. ìá»α¿¼Ñα, 8086 ¿½¿ 8088 »«¼¡∩Γ Γ«½∞¬«
- »αÑΣ¿¬ß REPxx, Ñß½¿ ó ßÑαÑñ¿¡Ñ ßΓ᫬«ó«⌐ ¿¡ßΓαπ¬µ¿¿ 󫺡¿¬áÑΓ
- »αÑαδóá¡¿Ñ. Å«φΓ«¼π »αÑΣ¿¬ßδ LOC ¿ SEGxx ¡Ñ ¼«úπΓ íδΓ∞ ¡áñѪ¡«
- ºá¬«ñ¿α«óá¡δ ñ« REPxx ó ßΓ᫬«ó«⌐ ¿¡ßΓαπ¬µ¿¿.
-
-
- è«ñδ ¿¡ßΓαπ¬µ¿⌐.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ññÑনóáÑΓ óßÑ ¬«ñδ ¿¡ßΓαπ¬µ¿⌐
- 8086/8087 ¿ 80286/80287. è«ñδ 8087 ñ«»πßΓ¿¼δ Γ«½∞¬« ó ß«ßΓ«∩¡¿¿ {$N
- +} (τ¿ß½«ó«⌐ »α«µÑßß«α αáºαÑΦÑ¡), ¬«ñδ 80286 ñ«»πßΓ¿¼δ Γ«½∞¬« ó
- ß«ßΓ«∩¡¿¿ {$G+} ( úÑ¡Ñαᵿ∩ ¬«ñá 80286 αáºαÑΦÑ¡á), ¿ ¬«ñδ 80287
- αáºαÑΦÑ¡δ Γ«½∞¬« ó ß«ßΓ«∩¡¿¿ {$G+,N+}.
-
- Å«½¡«Ñ «»¿ßá¡¿Ñ φΓ¿σ ¿¡ßΓαπ¬µ¿⌐ ß¼. ó απ¬«ó«ñßΓóáσ »« 80σ86 ¿
- 80σ87.
-
-
- ÉẼÑα ¿¡ßΓαπ¬µ¿¿ RET.
-
- ê¡ßΓαπ¬µ¿∩ RET úÑ¡Ñα¿απÑΓ í½¿ª¡¿⌐ ¿½¿ ñá½∞¡¿⌐ ó«ºóαáΓ
- ó ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ ó맮óá ΓѬπΘÑ⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
-
- procedure NearProc; near;
- begin
- asm
- ret {úÑ¡Ñα¿απÑΓ í½¿ª¡¿⌐ ó맮ó}
- end;
- end;
-
- procedure FarProc; far;
- begin
- asm
- ret {úÑ¡Ñα¿απÑΓ ñá½∞¡¿⌐ ó맮ó}
- end;
- end;
-
- æ ñαπú«⌐ ßΓ«α«¡δ, ¿¡ßΓαπ¬µ¿¿ RETN ¿ RETF óßÑúñá úÑ¡Ñα¿απεΓ
- í½¿ª¡¿⌐ ó«ºóαáΓ ¿ ñá½∞¡¿⌐ ó«ºóαáΓ, ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ ó맮óá
- ΓѬπΘÑ⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿.
-
-
- ÇóΓ«¼áΓ¿τÑ߬¿⌐ αẼÑα »ÑαÑσ«ñá.
-
- àß½¿ ¡Ñ í佫 π¬áºá¡« »α«Γ¿ó¡«Ñ, óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα
- «»Γ¿¼¿º¿απÑΓ ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá, áóΓ«¼áΓ¿τÑ߬¿ óδí¿αá∩ ßá¼πε
- ¬«α«Γ¬πε, ¿, ß½Ññ«óáΓѽ∞¡«, ßá¼πε φΣΣÑ¬Γ¿ó¡πε ¿¡ßΓαπ¬µ¿ε »ÑαÑσ«ñá.
- ÇóΓ«¼áΓ¿τÑ߬¿⌐ óδí«α ¿¡ßΓαπ¬µ¿¿ »ÑαÑσ«ñá »α¿¼Ñ¡∩ÑΓß∩ ¬ ¿¡ßΓαπ¬µ¿¿
- íѺπß½«ó¡«ú« »ÑαÑσ«ñá JMP ¿ ¬« óßѼ ¿¡ßΓαπ¬µ¿∩¼ πß½«ó¡«ú« »ÑαÑσ«ñá,
- ¬«úñá ¡áº¡áτÑ¡¿Ñ - ¼ÑΓ¬á (á ¡Ñ »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩).
-
- ä½∩ ¿¡ßΓαπ¬µ¿¿ íѺπß½«ó¡«ú« »ÑαÑσ«ñá JMP óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα
- úÑ¡Ñα¿απÑΓ ¬«α«Γ¬¿⌐ »ÑαÑσ«ñ (1 íá⌐Γ ¬«ñá «»Ñαᵿ¿ ¿ 1 íá⌐Γ
- ß¼ÑΘÑ¡¿∩), Ñß½¿ αáßßΓ«∩¡¿Ñ ñ« ¼ÑΓ¬¿ ¡áº¡áτÑ¡¿∩ ó¡πΓα¿ ñ¿á»áº«¡á
- «Γ -128 ñ« 127 íá⌐Γ; ¿¡áτÑ úÑ¡Ñα¿απÑΓß∩ í½¿ª¡¿⌐ »ÑαÑσ«ñ (1 íá⌐Γ
- ¬«ñá «»Ñαᵿ¿ ¿ 2 íá⌐Γá ß¼ÑΘÑ¡¿∩).
-
- ä½∩ ¿¡ßΓαπ¬µ¿¿ πß½«ó¡«ú« »ÑαÑσ«ñá úÑ¡Ñα¿απÑΓß∩ ¬«α«Γ¬¿⌐
- »ÑαÑσ«ñ (1 íá⌐Γ ¬«ñá ¿ 1 íá⌐Γ ß¼ÑΘÑ¡¿∩), Ñß½¿ αáßßΓ«∩¡¿Ñ ñ« ¼ÑΓ¬¿
- ¡áº¡áτÑ¡¿∩ «Γ -128 ñ« 127 íá⌐Γ; ¿¡áτÑ úÑ¡Ñα¿απÑΓß∩ ¬«α«Γ¬¿⌐ »ÑαÑσ«ñ
- ß «íαáΓ¡δ¼ πß½«ó¿Ñ¼, ¬«Γ«αδ⌐ «íσ«ñ¿Γ í½¿ª¡¿⌐ »ÑαÑσ«ñ ¡á ¼ÑΓ¬π
- ¡áº¡áτÑ¡¿∩ (5 íá⌐Γ ó ¿Γ«úÑ). ìá»α¿¼Ñα «»ÑαáΓ«α
-
- JC Stop
-
- úñÑ Stop ¡Ñ ó¡πΓα¿ ñ¿á»áº«¡á ¬«α«Γ¬«ú« »ÑαÑσ«ñá, »αÑ«íαáºπÑΓß∩
- ó ¼áΦ¿¡¡δ⌐ ¬«ñ
-
- jnc Skip
- jmp Stop
- Skip:
-
- ÅÑαÑσ«ñδ ¡á Γ«τ¬¿ óσ«ñá »α«µÑñπα ¿ Σπ¡¬µ¿⌐ óßÑúñá ½¿í«
- í½¿ª¡¿Ñ, ½¿í« ñá½∞¡¿Ñ, ¿ ¡¿¬«úñá ¡Ñ ¬«α«Γ¬¿Ñ, á πß½«ó¡δÑ »ÑαÑσ«ñá
- ¡á »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¡Ñ αáºαÑΦÑ¡δ. éδ ¼«ªÑΓÑ π¬áºáΓ∞ óßΓα«Ñ¡¡«¼π
- ÇßßѼí½Ñαπ úÑ¡Ñα¿α«óáΓ∞ íѺπß½«ó¡δ⌐ í½¿ª¡¿⌐ ¿½¿ ñá½∞¡¿⌐ »ÑαÑσ«ñ ¡á
- ¼ÑΓ¬π, ¿ß»«½∞ºπ∩ ¬«¡ßΓαπ¬µ¿ε NEAR PTR ¿½¿ FAR PTR. ìá»α¿¼Ñα
- «»ÑαáΓ«αδ
-
- jmp NEAR PTR Stop
- jmp FAR PTR Stop
-
- óßÑúñá úÑ¡Ñα¿απεΓ í½¿ª¡¿⌐ ¿ ñá½∞¡¿⌐ »ÑαÑσ«ñδ ß««ΓóÑΓßΓóÑ¡¡«,
- ñáªÑ Ñß½¿ Stop ó¡πΓα¿ ñ¿á»áº«¡á ¬«α«Γ¬«ú« »ÑαÑσ«ñá.
-
-
- ä¿αÑ¬Γ¿óδ ÇßßѼí½Ñαá.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα Turbo Pascal »«ññÑনóáÑΓ 3 ñ¿αÑ¬Γ¿óδ
- ÇßßѼí½Ñαá:
-
- DB, DW, DD («»αÑñѽ¿Γ∞ íá⌐Γ, ß½«ó« ¿ ñó«⌐¡«Ñ ß½«ó«)
-
- Ä¡¿ úÑ¡Ñα¿απεΓ ñá¡¡δÑ, ß««ΓóÑΓßΓóπεΘ¿Ñ «»Ñαá¡ñá¼, αáºñѽѡ¡δ¼
- ºá»∩Γ묨, ó φΓ«⌐ ñ¿αÑ¬Γ¿óÑ.
-
- ä¿αÑ¬Γ¿óá DB úÑ¡Ñα¿απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íá⌐Γ. èáªñδ⌐
- «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼ ß« º¡áτÑ¡¿Ñ¼ «Γ -128 ñ«
- 255 ¿½¿ ßΓ᫬«⌐ ß¿¼ó«½«ó ½εí«⌐ ñ½¿¡δ. è«¡ßΓá¡Γ¡«Ñ óδαáªÑ¡¿Ñ
- úÑ¡Ñα¿απÑΓ 1 íá⌐Γ ¬«ñá, á ßΓ᫬á úÑ¡Ñα¿απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ íá⌐Γ
- ß« º¡áτÑ¡¿∩¼¿, ß««ΓóÑΓßΓóπεΘ¿¼¿ ASCII ¬«ñá ¬áªñ«ú« ß¿¼ó«½á.
-
- ä¿αÑ¬Γ¿óá DW úÑ¡Ñα¿απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß½«ó. èáªñδ⌐
- «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼ ß« º¡áτÑ¡¿Ñ¼ «Γ -32768 ñ«
- 65535 ¿½¿ áñαÑß¡δ¼ óδαáªÑ¡¿Ñ¼. ä½∩ áñαÑß¡«ú« óδαáªÑ¡¿∩ óßΓα«Ñ¡¡δ⌐
- ÇßßѼí½Ñα úÑ¡Ñα¿απÑΓ í½¿ª¡¿⌐ π¬áºáΓѽ∞, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ß¼ÑΘÑ¡¿Ñ
- φΓ«ú« áñαÑßá.
-
- ä¿αÑ¬Γ¿óá DD úÑ¡Ñα¿απÑΓ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ñó«⌐¡δσ ß½«ó.
- èáªñδ⌐ «»Ñαá¡ñ ¼«ªÑΓ íδΓ∞ ¬«¡ßΓá¡Γ¡δ¼ óδαáªÑ¡¿Ñ¼ ß« º¡áτÑ¡¿Ñ¼ «Γ
- -2,147,483,648 ñ« 4,294,967,295 ¿½¿ áñαÑß¡δ¼ óδαáªÑ¡¿Ñ¼. ä½∩
- áñαÑß¡«ú« óδαáªÑ¡¿∩ óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα úÑ¡Ñα¿απÑΓ ñá½∞¡¿⌐
- π¬áºáΓѽ∞, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ¿ ß¼ÑΘÑ¡¿Ñ ¿ ßÑú¼Ñ¡Γ¡πε τáßΓ∞ áñαÑßá.
-
- äá¡¡δÑ, úÑ¡Ñα¿απѼδÑ ñ¿αÑ¬Γ¿óἿ DB, DW, DD óßÑúñá σαá¡∩Γß∩ ó
- ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ ΓᬠªÑ, ¬á¬ ¬«ñ, úÑ¡Ñα¿απѼδ⌐ ñαπú¿¼¿ «»ÑαáΓ«αἿ
- óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá. ùΓ«íδ úÑ¡Ñα¿α«óáΓ∞ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ¿½¿
- ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ, ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ éδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
- «íδτ¡δÑ «íΩ∩ó½Ñ¡¿∩ Var ¿½¿ Const Åá߬á½∩.
-
- Åα¿¼Ñαδ ñ¿αÑ¬Γ¿ó DB, DW, DD:
-
- asm
- DB 0FFH
- DB 0,99
- DB 'A'
- DB 'Hello world...',0DH,0AH
- DB 12,"Turbo Pascal"
- DW 0FFFFH
- DW 0,9999
- DW 'A'
- DW 'BA'
- DW MyVar
- DW MyProc
- DD 0FFFFFFFFH
- DD 0,999999999
- DD 'A'
- DD 'DCBA'
- DD MyVar
- DD MyProc
- end;
-
- Åα¿¼Ñτá¡¿Ñ: é Turbo Assembler, ¬«úñá ¿ñÑ¡Γ¿Σ¿¬áΓ«α ßΓ«¿Γ »ÑαÑñ
- ñ¿αÑ¬Γ¿ó«⌐ DB, DW ¿ DD, φΓ« »α¿ó«ñ¿Γ ¬ «íΩ∩ó½Ñ¡¿ε »ÑαѼѡ¡«⌐
- αẼÑα«¼ ó íá⌐Γ, ß½«ó« ¿½¿ ñó«⌐¡«Ñ ß½«ó« »« áñαÑßπ φΓ«⌐ ñ¿αÑ¬Γ¿óδ.
- ìá»α¿¼Ñα, Turbo Assembler αáºαÑΦáÑΓ:
-
- ByteVar DB ?
- WordVar DW ?
- ...
- mov al,ByteVar
- mov bx,WordVar
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ¡Ñ »«ññÑনóáÑΓ Γá¬«Ñ «íΩ∩ó½Ñ¡¿Ñ
- »ÑαѼѡ¡δσ. é Turbo Pascal Ññ¿¡ßΓóÑ¡¡δ⌐ ß¿¼ó«½, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞
- «»αÑñѽѡ ó «»ÑαáΓ«αÑ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá - φΓ« ¼ÑΓ¬á. éßÑ
- »ÑαѼѡ¡δÑ ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ ß ¿ß»«½∞º«ó᡿Ѽ ß¿¡Γá¬ß¿ßá
- Åá߬á½∩ ¿ »αÑñδñπΘ¿⌐ »α¿¼Ñα ß««ΓóÑΓßΓóπÑΓ:
-
- var
- ByteVar: Byte;
- WordVar: Word;
- ...
- asm
- mov al,ByteVar
- mov bx,WordVar
- end;
-
-
- Ä»Ñαá¡ñδ.
-
- Ä»Ñαá¡ñδ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá - φΓ« óδαáªÑ¡¿∩, ¬«Γ«αδÑ
- ß«ßΓ«∩Γ ¿º ¬«¼í¿¡áµ¿¿ ¬«¡ßΓá¡Γ, αÑú¿ßΓα«ó, ß¿¼ó«½«ó ¿ «»ÑαáΓ«α«ó.
- ò«Γ∩ óδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ßΓα«∩Γß∩ ß ¿ß»«½∞º«ó᡿Ѽ ΓÑσ
- ªÑ «ß¡«ó¡δσ »α¿¡µ¿»«ó, τΓ« ¿ óδαáªÑ¡¿∩ Åá߬á½∩, ßπΘÑßΓóπÑΓ α∩ñ
- ó᪡δσ «Γ½¿τ¿⌐, ¬«Γ«αδÑ «íΩ∩ß¡∩εΓß∩ ¡¿ªÑ.
-
- é¡πΓα¿ «»Ñαá¡ñ«ó ß½ÑñπεΘ¿Ñ ºáαѺÑαó¿α«óá¡¡δÑ ß½«óá ¿¼ÑεΓ ó«
- óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ »αÑñ«»αÑñѽѡ¡δ⌐ ß¼δß½:
-
- AH CL FAR SEG
- AL CS HIGH SHL
- AND CX LOW SHR
- AX DH MOD SI
- BH DI NEAR SP
- BL DL NOT SS
- BP DS OFFSET ST
- BX DWORD OR TBYTE
- BYTE DX PTR TYPE
- CH ES QWORD WORD
- XOR
-
- çáαѺÑαó¿α«óá¡¡δÑ ß½«óá óßÑúñá ¿¼ÑεΓ »α¿«α¿ΓÑΓ ¡áñ
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ »«½∞º«óáΓѽ∩. ìá»α¿¼Ñα Σαáú¼Ñ¡Γ ¬«ñá:
-
- VAR
- Ch: Char;
- ...
- asm
- mov ch,1
- end;
-
- ºáúαπªáÑΓ 1 ó αÑú¿ßΓα CH, á ¡Ñ ó »ÑαѼѡ¡πε Ch. ä½∩ ñ«ßΓπ»á ¬
- ß¿¼ó«½π, «»αÑñѽѡ¡«¼π »«½∞º«óáΓѽѼ ß ΓѼ ªÑ ¿¼Ñ¡Ñ¼, éδ ñ«½ª¡δ
- ¿ß»«½∞º«óáΓ∞ & ñ½∩ »ÑαѬαδΓ¿∩ «»ÑαáΓ«αá:
-
- asm
- mov &ch,1
- end;
-
- îδ ¡áßΓ«∩Γѽ∞¡« αѬ«¼Ñ¡ñπѼ éá¼ ¿ºíÑúáΓ∞ «»αÑñѽѡ¿∩
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ß ΓѼ¿ ªÑ ¿¼Ñ¡á¼¿, τΓ« ¿ ºáαѺÑαó¿α«óá¡¡δÑ ß½«óá
- óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá, »«ß¬«½∞¬π φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬
- Γαπñ¡«¡áσ«ñ¿¼δ¼ «Φ¿í¬á¼.
-
-
- éδαáªÑ¡¿∩.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα óδτ¿ß½∩ÑΓ óßÑ óδαáªÑ¡¿∩, ¬á¬ 32-í¿Γ«óδÑ
- µÑ½δÑ óδαáªÑ¡¿∩; «¡ ¡Ñ »«ññÑনóáÑΓ º¡áτÑ¡¿∩ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿
- ßΓ᫬«óδÑ º¡áτÑ¡¿∩, ºá ¿ß¬½ετÑ¡¿Ñ¼ ßΓ᫬«óδσ ¬«¡ßΓá¡Γ.
-
- éδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ßΓα«∩Γß∩ ¿º φ½Ñ¼Ñ¡Γ«ó
- óδαáªÑ¡¿∩ ¿ «»ÑαáΓ«α«ó ¿ ¬áªñ«Ñ óδαáªÑ¡¿Ñ ßó∩ºá¡« ß ¬½áßß«¼ ¿ Γ¿»«¼
- óδαáªÑ¡¿∩. ¥Γ¿ ¬«¡µÑ»µ¿¿ «íΩ∩ß¡∩εΓß∩ ó ß½ÑñπεΘ¿σ αáºñѽáσ.
-
-
- Éẽ¿τ¿∩ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ Åá߬á½∩ ¿ ÇßßѼí½Ñαá.
-
- ìá¿í«½ÑÑ ó᪡«Ñ «Γ½¿τ¿Ñ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ Åá߬á½∩ ¿
- óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ó Γ«¼, τΓ« óδαáªÑ¡¿∩ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá
- ñ«½ª¡δ αáºαÑΦáΓ∞ß∩ ó ¬«¡ßΓá¡Γ¡«Ñ º¡áτÑ¡¿Ñ, Γ.Ñ. º¡áτÑ¡¿Ñ ñ«½ª¡«
- íδΓ∞ óδτ¿ß½Ñ¡« ó« óαѼ∩ ¬«¼»¿½∩µ¿¿. ìá»α¿¼Ñα, ñ½∩ «íΩ∩ó½Ñ¡¿⌐
-
- const
- X = 10;
- Y = 20;
- var
- Z: Integer;
-
- ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α αáºαÑΦÑ¡:
-
- asm
- mov Z,X+Y
- end;
-
- ū߬«½∞¬π X ¿ Y - ¬«¡ßΓá¡Γδ, óδαáªÑ¡¿Ñ X+Y ¡á¿í«½ÑÑ πñ«í¡δ⌐
- ß»«ß«í ¡á»¿ßá¡¿∩ ¬«¡ßΓá¡Γδ 30, á αѺπ½∞Γ¿απεΘá∩ ¿¡ßΓαπ¬µ¿∩ íπñÑΓ
- »ÑαÑßδ½áΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ 30 ó »ÑαѼѡ¡πε Z, αẼÑα«¼ ó
- ß½«ó«. ì« Ñß½¿ éδ «íΩ∩ó¿ΓÑ X ¿ Y ¬á¬ »ÑαѼѡ¡δÑ:
-
- var
- X, Y: Integer;
-
- óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ¡Ñ ß¼«ªÑΓ óδτ¿ß½¿Γ∞ º¡áτÑ¡¿Ñ X+Y ó« óαѼ∩
- ¬«¼»¿½∩µ¿¿. éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ñ½∩ »ÑαÑß佬¿ ßπ¼¼δ X+Y
- úÑ¡Ñα¿απÑΓ:
-
- asm
- mov ax,X
- add ax,Y
- mov Z,ax
- end;
-
- äαπú«Ñ ó᪡«Ñ «Γ½¿τ¿Ñ ¼Ñªñπ óδαáªÑ¡¿∩¼¿ Åá߬á½∩ ¿ óßΓα«Ñ¡¡«ú«
- ÇßßѼí½Ñαá ó ß»«ß«íÑ ¿¡ΓÑα»αÑΓᵿ¿ »ÑαѼѡ¡δσ. é óδαáªÑ¡¿¿ Åá߬á½∩
- ßßδ½¬á ¡á »ÑαѼѡ¡πε ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬ ß«ñÑন¼«Ñ »ÑαѼѡ¡«⌐, á
- ó óδαáªÑ¡¿¿ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ßßδ½¬á ¡á »ÑαѼѡ¡πε «º¡áτáÑΓ
- áñαÑß φΓ«⌐ »ÑαѼѡ¡«⌐. ìá»α¿¼Ñα, ó Åá߬á½Ñ óδαáªÑ¡¿Ñ X+4, úñÑ ò -
- »ÑαѼѡ¡á∩, «º¡áτáÑΓ ß«ñÑন¼«Ñ X+4, á ó« óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ φΓ«
- «º¡áτáÑΓ ß«ñÑন¼«Ñ ß½«óá ß áñαÑß«¼ ¡á 4 íá⌐Γá óδΦÑ, τѼ áñαÑß ò.
- Æá¬ ñáªÑ Ñß½¿ éδ ¼«ªÑΓÑ ¡á»¿ßáΓ∞
-
- asm
- mov ax,X+4
- end;
-
- φëà ¬«ñ ¡Ñ ºáúαπªáÑΓ º¡áτÑ¡¿Ñ ò+4 ó AX, á ºáúαπªáÑΓ º¡áτÑ¡¿Ñ
- ß½«óá, σαá¡∩ΘÑú«ß∩ »« áñαÑßπ ¡á 4 íá⌐Γá óδΦÑ ò. è«ααÑ¬Γ¡δ⌐ ß»«ß«í
- ñ«íáó¿Γ∞ 4 ¬ ß«ñÑন¼«¼π ò:
-
- asm
- MOV AX,X
- ADD AX,4
- end;
-
-
- ¥½Ñ¼Ñ¡Γδ óδαáªÑ¡¿∩.
-
- Äß¡«ó¡δÑ φ½Ñ¼Ñ¡Γδ óδαáªÑ¡¿∩ - φΓ« ¬«¡ßΓá¡Γδ, αÑú¿ßΓαδ ¿
- ß¿¼ó«½δ.
-
-
- è«¡ßΓá¡Γδ.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ññÑনóáÑΓ 2 Γ¿»á ¬«¡ßΓá¡Γ: τ¿ß½«óδÑ
- ¬«¡ßΓá¡Γδ ¿ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ.
-
-
- ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ.
-
- ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ íδΓ∞ µÑ½δ¼¿ ¿ ¿σ º¡áτÑ¡¿∩ ñ«½ª¡δ
- íδΓ∞ ó ñ¿á»áº«¡Ñ «Γ -2,147,483,648 ñ« 4,294,967,295.
-
- ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ »« π¼«½τá¡¿ε ¿ß»«½∞ºπεΓ ñÑß∩Γ¿τ¡πε ¡«Γᵿε,
- ¡« óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ΓᬠªÑ »«ññÑনóáÑΓ ñó«¿τ¡πε, 8-α¿τ¡πε ¿ 16
- -α¿τ¡πε ¡«Γᵿ¿. äó«¿τ¡á∩ ¡«Γᵿ∩ óδí¿αáÑΓß∩ ¡á»¿ß᡿Ѽ é »«ß½Ñ
- τ¿ß½á, 8-α¿τ¡á∩ ¡«Γᵿ∩ óδí¿αáÑΓß∩ ¡á»¿ß᡿Ѽ íπ¬óδ Ä »«ß½Ñ τ¿ß½á ¿
- 16-α¿τ¡á∩ ¡«Γᵿ∩ óδí¿αáÑΓß∩ ¡á»¿ß᡿Ѽ ì »«ß½Ñ τ¿ß½á ¿½¿ $ ñ«
- τ¿ß½á.
-
- Åα¿¼Ñτá¡¿Ñ: æπΣΣ¿¬ßδ B, O, H ¡Ñ »«ññÑনóáεΓß∩ ó óδαáªÑ¡¿∩σ
- Åá߬á½∩. éδαáªÑ¡¿∩ Åá߬á½∩ ñ«»π߬áεΓ Γ«½∞¬« ñÑß∩Γ¿τ¡πε ¡«Γᵿε (»«
- π¼«½τá¡¿ε) ¿ 16-α¿τ¡πε ¡«Γᵿε (¿ß»«½∞ºπ∩ »αÑΣ¿¬ß $).
-
- ù¿ß½«óδÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ ¡áτ¿¡áΓ∞ß∩ ß «ñ¡«⌐ ¿º µ¿Σα 0..9 ¿½¿
- ß¿¼ó«½á $; Γá¬, ¬«úñá éδ »¿Φ¿ΓÑ 16-α¿τ¡πε ¬«¡ßΓá¡Γπ, ¿ß»«½∞ºπ∩
- ßπΣΣ¿¬ß ì, ΓαÑíπÑΓß∩ ñ«»«½¡¿Γѽ∞¡δ⌐ 0 ó ¡áτá½Ñ τ¿ß½á, Ñß½¿ »Ñαóá∩
- º¡áτáΘá∩ µ¿Σαá «ñ¡á ¿º 16-α¿τ¡δσ µ¿Σα Ç..F. ìá»α¿¼Ñα, 0BAD4H ¿
- $BAD4 - 16-α¿τ¡δÑ ¬«¡ßΓá¡Γδ, á BAD4H - ¿ñÑ¡Γ¿Σ¿¬áΓ«α, »«ß¬«½∞¬π
- ¡áτ¿¡áÑΓß∩ ß íπ¬óδ, á ¡Ñ ß µ¿Σαδ.
-
-
- æΓ᫬«óδÑ ¬«¡ßΓá¡Γδ.
-
- æΓ᫬«óδÑ ¬«¡ßΓá¡Γδ ñ«½ª¡δ íδΓ∞ ºá¬½ετÑ¡δ ó ¬áóδτ¬¿ ¿½¿
- ừßΓα«Σδ. äóÑ »«ß½Ññ«óáΓѽ∞¡δÑ "" ¿½¿ '' ó¡πΓα¿ ßΓ᫬¿ ßτ¿ΓáεΓß∩
- ¬á¬ «ñ¿¡ ß¿¼ó«½. Åα¿¼Ñαδ ßΓ᫬«óδσ ¬«¡ßΓá¡Γ:
-
- 'Z'
- 'Turbo Pascal'
- "That's all folks"
- '"That"s all folks,"he said.'
- '100'
- '"'
- "'"
-
- çá¼ÑΓ¿¼, τΓ« ó 4 ßΓα«¬Ñ ¿ß»«½∞º«ó὿ß∞ 2 ừßΓα«Σá ñ½∩
- π¬áºá¡¿∩ «ñ¿¡«τ¡«ú« ß¿¼ó«½á "ừßΓα«Σ".
-
- é ñ¿αÑ¬Γ¿óáσ DB αáºαÑΦÑ¡δ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ ½εí«⌐ ñ½¿¡δ. ¥Γ«
- »α¿ó«ñ¿Γ ¬ αáß»αÑñѽѡ¿ε »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ íá⌐Γ, ß«ñÑαªáΘÑ⌐ ASCII
- º¡áτÑ¡¿∩ ß¿¼ó«½«ó ßΓ᫬¿. é« óßÑσ ñαπú¿σ ß½πτá∩σ ßΓ᫬«óá∩
- ¬«¡ßΓá¡Γá ¡Ñ ¼«ªÑΓ íδΓ∞ ñ½¿¡¡ÑÑ 4 ß¿¼ó«½«ó ¿ «º¡áτáÑΓ, τ¿ß½«ó«Ñ
- º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó óδαáªÑ¡¿¿. ù¿ß½«ó«Ñ
- º¡áτÑ¡¿Ñ ßΓ᫬«ó«⌐ ¬«¡ßΓá¡Γδ óδτ¿ß½∩ÑΓß∩ ¬á¬
-
- Ord(Ch1) + Ord(Ch2) shl 8 + Ord(Ch3) shl 16 + Ord(Ch4) shl 24
-
- úñÑ Ch1 ¡á¿í«½ÑÑ »αáóδ⌐ (»«ß½Ññ¡¿⌐) ß¿¼ó«½, á Ch4 - ¡á¿í«½ÑÑ
- ½Ñóδ⌐ (»Ñαóδ⌐) ß¿¼ó«½. àß½¿ ßΓα«¬á ¬«α«τÑ 4 ß¿¼ó«½«ó, ßá¼δÑ ½ÑóδÑ
- ß¿¼ó«½δ πßΓá¡áó½¿óáεΓß∩ ó 0. ìÑ߬«½∞¬« »α¿¼Ñα«ó ßΓ᫬«óδσ ¬«¡ßΓá¡Γ
- ¿ ß««ΓóÑΓßΓóπεΘ¿σ τ¿ß½«óδσ º¡áτÑ¡¿⌐:
-
- 'a' 00000061H
- 'ba' 00006261H
- 'cba' 00636261H
- 'dcba' 64636261H
- 'a ' 00006120H
- ' a' 20202061H
- 'a'*2 000000E2H
- 'a'-'A' 00000020H
- not'a' FFFFFF9EH
-
-
- ÉÑú¿ßΓαδ.
-
- æ½ÑñπεΘ¿Ñ ºáαѺÑαó¿α«óá¡¡δÑ ß¿¼ó«½δ «º¡áτáεΓ αÑú¿ßΓαδ 8086:
-
- 16-í¿Γ¡δ⌐ «íΘÑú« ¡áº¡áτÑ¡¿∩ AX BX CX DX
- 8-í¿Γ¡δ⌐ ¼½áñΦ¿⌐ AL BL CL DL
- 8-í¿Γ¡δ⌐ ßΓáαΦ¿⌐ AH BH CH DH
- 16-í¿Γ¡δ⌐ π¬áºáΓѽ∞ ¿½¿ ¿¡ñÑ¬ß SP BP SI DI
- 16-í¿Γ¡δ⌐ ßÑú¼Ñ¡Γ¡δ⌐ αÑú¿ßΓα CS DS SS ES
- αÑú¿ßΓα ßΓѬá 8087 ST
-
- è«úñá «»Ñαá¡ñ ß«ßΓ«¿Γ Γ«½∞¬« ¿º ¿¼Ñ¡¿ αÑú¿ßΓαá, «¡ ¡áºδóáÑΓß∩
- αÑú¿ßΓα«óδ¼ «»Ñαá¡ñ«¼. éßÑ αÑú¿ßΓαδ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ¬á¬
- αÑú¿ßΓα«óδÑ «»Ñαá¡ñδ. èα«¼Ñ Γ«ú« ¡Ñ¬«Γ«αδÑ αÑú¿ßΓαδ ¼«úπΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ó ñαπú¿σ ¬«¡ßΓѬßΓáσ.
-
- üẫóδÑ αÑú¿ßΓαδ (BX, BP) ¿ ¿¡ñѬߡδÑ αÑú¿ßΓαδ (SI, DI) ¼«úπΓ
- íδΓ∞ ¡á»¿ßá¡δ ó¡πΓα¿ [] ñ½∩ π¬áºá¡¿∩ ¿¡ñѬßᵿ¿. ä«»πßΓ¿¼δÑ
- ¬«¼í¿¡áµ¿¿ íẫóδσ/¿¡ñѬߡδσ αÑú¿ßΓα«ó: [BX], [BP], [SI], [DI], [BX
- +SI], [BX+DI], [BP+SI], [BP+DI].
-
- æÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ (ES, CS, SS, DS) ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩
- ó¼ÑßΓÑ ß ":" ¬á¬ »ÑαѬαδΓ¿Ñ ßÑú¼Ñ¡Γá ñ½∩ π¬áºá¡¿∩ ßÑú¼Ñ¡Γá,
- «Γ½¿τ¡«ú« «Γ Γ«ú«, ¬«Γ«αδ⌐ »α«µÑßß«α óδí¿αáÑΓ »« π¼«½τá¡¿ε.
-
- æ¿¼ó«½ S «º¡áτáÑΓ ßá¼δ⌐ óÑασ¡¿⌐ αÑú¿ßΓα ¿º αÑú¿ßΓα«ó ßΓѬá
- 8087. èáªñδ⌐ ¿º 8 αÑú¿ßΓα«ó ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¼«ªÑΓ íδΓ∞
- ¿ß»«½∞º«óá¡ ß »«¼«Θ∞ε ST(x), úñÑ σ - ¬«¡ßΓá¡Γá «Γ 1 ñ« 7,
- π¬áºδóáεΘá∩ ¡á ß¼ÑΘÑ¡¿Ñ «Γ óÑαΦ¿¡δ ßΓѬá.
-
-
- 濼ó«½δ.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ºó«½∩ÑΓ éá¼ «íαáΘáΓ∞ß∩ »«τΓ¿ ¬« óßѼ
- ß¿¼ó«½á¼ Åá߬á½∩ ó áßßѼí½Ñα¡δσ óδαáªÑ¡¿∩σ, ó¬½ετá∩ ¼ÑΓ¬¿,
- ¬«¡ßΓá¡Γδ, Γ¿»δ, »ÑαѼѡ¡δÑ, »α«µÑñπαδ ¿ Σπ¡¬µ¿¿. ä«»«½¡¿Γѽ∞¡«
- óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα αÑ὿ºπÑΓ ß½ÑñπεΘ¿Ñ ß»Ñµ¿á½∞¡δÑ ß¿¼ó«½δ:
-
- @Code @Data @Result
-
- 濼ó«½δ @Code ¿ @Data »αÑñßΓáó½∩εΓ ΓѬπΘ¿Ñ ßÑú¼Ñ¡Γδ ¬«ñá ¿
- ñá¡¡δσ. Ä¡¿ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ß«ó¼ÑßΓ¡« ß «»ÑαáΓ«αἿ
- SEG:
-
- asm
- mov ax,SEG @Data
- mov ds,ax
- end;
-
- æ¿¼ó«½ @Result »αÑñßΓáó½∩ÑΓ »ÑαѼѡ¡πε ß αѺπ½∞ΓáΓ«¼ Σπ¡¬µ¿¿
- ó¡πΓα¿ «»ÑαáΓ«α¡«⌐ τáßΓ¿ Σπ¡¬µ¿¿. ìá»α¿¼Ñα, ó Σπ¡¬µ¿¿
-
- function Sum(X, Y: Integer): Integer;
- begin
- Sum := X + Y;
- end;
-
- «»ÑαáΓ«α, ¬«Γ«αδ⌐ ¡áº¡áτáÑΓ αѺπ½∞ΓáΓ º¡áτÑ¡¿∩ Σπ¡¬µ¿¿ ó Sum,
- íπñÑΓ ¿ß»«½∞º«óáΓ∞ »ÑαѼѡ¡πε @Result:
-
- function Sum(X, Y: Integer): Integer;
- begin
- asm
- mov ax,X
- add ax,Y
- mov @Result,AX
- end;
- end;
-
- æ½ÑñπεΘ¿Ñ ß¿¼ó«½δ ¡Ñ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ó óδαáªÑ¡¿∩σ
- óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá:
-
- - æΓá¡ñáαΓ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ (¡á»α¿¼Ñα Writeln, Chr).
-
- - æ»Ñµ¿á½∞¡δÑ ¼áßß¿óδ Mem, MemW, MemL, Port, PortW.
-
- - è«¡ßΓá¡Γδ ßΓ᫬«óδÑ, ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ ¿ Γ¿»á ¼¡«ªÑßΓó«.
-
- - Åα«µÑñπαδ ¿ Σπ¡¬µ¿¿, «íΩ∩ó½Ñ¡¡δÑ ß ñ¿αÑ¬Γ¿ó«⌐ inline.
-
- - îÑΓ¬¿, ¬«Γ«αδÑ ¡Ñ «íΩ∩ó½Ñ¡δ ó ΓѬπΘѼ í½«¬Ñ.
-
- - æ¿¼ó«½ @Result ó¡Ñ Σπ¡¬µ¿¿.
-
- Æáí½¿µá 22.1 ßπ¼¼¿απÑΓ º¡áτÑ¡¿Ñ, ¬½áßß ¿ Γ¿» αẽ¿τ¡δσ ó¿ñ«ó
- ß¿¼ó«½«ó, ¬«Γ«αδÑ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó óδαáªÑ¡¿∩σ óßΓα«Ñ¡¡«ú«
- ÇßßѼí½Ñαá (Γ¿»δ ¿ ¬½áßßδ óδαáªÑ¡¿⌐ «»¿ßá¡δ ó ß½ÑñπεΘѼ αáºñѽÑ).
-
- Æáí½¿µá 22.1. ç¡áτÑ¡¿∩, ¬½áßßδ ¿ Γ¿»δ ß¿¼ó«½«ó.
-
- ───────────────────────────────────────────────────────────────────
- æ¿¼ó«½ ç¡áτÑ¡¿Ñ è½áßß Æ¿»
- ───────────────────────────────────────────────────────────────────
- îÑΓ¬á ÇñαÑß ¼ÑΓ¬¿ Åá¼∩Γ∞ SHORT
- è«¡ßΓá¡Γá ç¡áτÑ¡¿Ñ ìÑ»«ßαÑñßΓóÑ¡¡δ⌐ 0
- ¬«¡ßΓá¡Γδ
- Æ¿» 0 Åá¼∩Γ∞ ÉẼÑα Γ¿»á
- Å«½Ñ æ¼ÑΘÑ¡¿Ñ »«½∩ Åá¼∩Γ∞ ÉẼÑα Γ¿»á
- ÅÑαѼѡ¡á∩ ÇñαÑß Åá¼∩Γ∞ ÉẼÑα Γ¿»á
- »ÑαѼѡ¡«⌐
- Åα«µÑñπαá ÇñαÑß »α«µÑñπαδ Åá¼∩Γ∞ NEAR ¿½¿ FAR
- öπ¡¬µ¿∩ ÇñαÑß Σπ¡¬µ¿¿ Åá¼∩Γ∞ NEAR ¿½¿ FAR
- î«ñπ½∞ 0 ìÑ»«ßαÑñßΓóÑ¡¡δ⌐ 0
- @Code ÇñαÑß ßÑú¼Ñ¡Γá Åá¼∩Γ∞ 0FFF0H
- ¬«ñá
- @Data ÇñαÑß ßÑú¼Ñ¡Γá Åá¼∩Γ∞ 0FFF0H
- ñá¡¡δσ
- @Result æ¼ÑΘÑ¡¿Ñ »ÑαѼѡ¡«⌐ Åá¼∩Γ∞ ÉẼÑα Γ¿»á
- αѺπ½∞ΓáΓá
- ───────────────────────────────────────────────────────────────────
-
- 﫬á½∞¡δÑ »ÑαѼѡ¡δÑ (»ÑαѼѡ¡δÑ, «íΩ∩ó½Ñ¡¡δÑ ó »α«µÑñπαáσ ¿
- Σπ¡¬µ¿∩σ) óßÑúñá αáß»αÑñѽ∩εΓß∩ ó ßΓÑ¬Ñ ¿ ¿ß»«½∞ºπεΓß∩ «Γ¡«ß¿Γѽ∞¡«
- SS:BP, á º¡áτÑ¡¿Ñ ½«¬á½∞¡«⌐ »ÑαѼѡ¡«⌐ - φΓ« Ñú« ß¼ÑΘÑ¡¿Ñ ß« º¡á¬«¼
- «Γ SS:BP. ÇßßѼí½Ñα áóΓ«¼áΓ¿τÑ߬¿ ñ«íáó½∩ÑΓ [BP] ó ßß佬¿ ¡á
- ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ. ìá»α¿¼Ñα, «íΩ∩ó½Ñ¡¿Ñ
-
- procedure Test;
- var
- Count: Integer;
-
- ¿ ¿¡ßΓαπ¬µ¿∩
-
- asm
- mov ax,Count
- end;
-
- áßßÑ¼í½¿απÑΓß∩ ó MOV AX, [BP-2]
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα óßÑúñá ¿¡ΓÑα»αÑΓ¿απÑΓ var »áαá¼ÑΓα ¬á¬ 32
- -í¿Γ¡δ⌐ π¬áºáΓѽ∞ ¿ αẼÑα var »áαá¼ÑΓαá óßÑúñá 4 (αẼÑα
- 32-í¿Γ¡«ú« π¬áºáΓѽ∩). é Åá߬á½Ñ ß¿¡Γá¬ß¿ß ñ½∩ ñ«ßΓπ»á ¬ var
- »áαá¼ÑΓαπ ¿ »áαá¼ÑΓαπ º¡áτÑ¡¿ε «ñ¿¡á¬«ó. ìÑ Γᬠó« óßΓα«Ñ¡¡«¼
- ÇßßѼí½ÑαÑ. ū߬«½∞¬π var »áαá¼ÑΓαδ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ π¬áºáΓѽ¿,
- éδ ñ«½ª¡δ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ ¿σ Γᬠó« óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ. Æá¬,
- τΓ«íδ «íαáΓ¿Γ∞ß∩ ¬ ß«ñÑন¼«¼π var »áαá¼ÑΓαá, éδ ó¡áτá½Ñ ºáúαπªáÑΓÑ
- 32-í¿Γ¡δ⌐ π¬áºáΓѽ∞, á ºáΓѼ «íαáΘáÑΓÑß∞ ¬ »á¼∩Γ¿, ¡á ¬«Γ«απε «¡
- π¬áºδóáÑΓ. ìá»α¿¼Ñα, Ñß½¿ X ¿ Y - var »áαá¼ÑΓαδ Σπ¡¬µ¿¿ Sum, Γ«:
-
- function Sum(var X, Y: Integer): Integer;
- begin
- asm
- les bx,X
- mov ax,es:[bx]
- les bx,Y
- add ax,es:[bx]
- mov @Result,ax
- end;
- end;
-
- ìѬ«Γ«αδÑ ß¿¼ó«½δ, Γ¿»δ ¿ »ÑαѼѡ¡δÑ ºá»¿ßÑ⌐, »«ºó«½∩εΓ
- «íαáΘáΓ∞ß∩ ¬ φ½Ñ¼Ñ¡Γá¼ ßΓαπ¬Γπαδ ß ¿ß»«½∞º«ó᡿Ѽ ßÑ½Ñ¬Γ«αá ".".
- ìá»α¿¼Ñα, ñ½∩ «íΩ∩ó½Ñ¡¿⌐:
-
- type
- Point = record
- X, Y: Integer;
- end;
- Rect = record
- A, B: Point;
- end;
- var
- P: Point;
- R: Rect;
-
- ß½ÑñπεΘ¿Ñ ¬«¡ßΓαπ¬µ¿¿ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ñ«ßΓπ»á ¬ »«½∩¼ ó
- »ÑαѼѡ¡δσ P ¿ R:
-
- asm
- mov ax,P.X
- mov dx,P.Y
- mov cx,R.A.X
- mov bx,R.B.Y
- end;
-
- êñÑ¡Γ¿Σ¿¬áΓ«α Γ¿»á ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ß«ºñá¡¿∩ »ÑαѼѡ¡δσ
- "¡á ½ÑΓπ". èáªñá∩ ¿¡ßΓαπ¬µ¿∩ ¡¿ªÑ úÑ¡Ñα¿απÑΓ ¼áΦ¿¡¡δ⌐ ¬«ñ,
- ºáúαπªáεΘ¿⌐ ß«ñÑন¼«Ñ ES:[DI+4] ó AX.
-
- asm
- mov ax,(Rect PTR es:[di]).B.X
- mov ax,Rect(es:[di]).B.X
- mov ax,es:Rect[di].B.X
- mov ax,Rect[es:di].B.X
- mov ax,es:[di].Rect.B.X
- end;
-
- æΣÑαá ñÑ⌐ßΓó¿∩ ß¿¼ó«½á Γ¿»á »«½∩ ¿½¿ ºá»¿ß¿ - φΓ« ßΣÑαá
- ñÑ⌐ßΓó¿∩ ºá»¿ß¿ ¿½¿ «íΩѬΓá φΓ«ú« Γ¿»á. èα«¼Ñ Γ«ú«, ¿ñÑ¡Γ¿Σ¿¬áΓ«α
- ¼«ñπ½∩ «Γ¬αδóáÑΓ ßΣÑαπ ñÑ⌐ßΓó¿∩ «»αÑñѽѡ¡«ú« ¼«ñπ½∩ ΓᬠªÑ, ¬á¬
- »«½¡δ⌐ ¬óá½¿Σ¿µ¿α«óá¡¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ó Åá߬á½Ñ.
-
-
- è½áßßδ óδαáªÑ¡¿⌐.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα ñѽ¿Γ óδαáªÑ¡¿∩ ¡á 3 ¬½áßßá: αÑú¿ßΓαδ,
- ßß佬¿ ¡á »á¼∩Γ∞ ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩.
-
- éδαáªÑ¡¿Ñ, ¬«Γ«α«Ñ ß«ßΓ«¿Γ Γ«½∞¬« ¿º ¿¼Ñ¡¿ αÑú¿ßΓαá - φΓ«
- αÑú¿ßΓα«ó«Ñ óδαáªÑ¡¿Ñ. Åα¿¼Ñα αÑú¿ßΓα«ó«ú« óδαáªÑ¡¿∩ - φΓ« AX, CL,
- DI ¿ ES. êß»«½∞ºπѼδÑ ¬á¬ «»Ñαá¡ñδ, αÑú¿ßΓα«óδÑ óδαáªÑ¡¿∩ »α∩¼«
- áßßÑ¼í½¿απεΓß∩ ó ¿¡ßΓαπ¬µ¿¿, ¬«Γ«αδÑ ó«ºñÑ⌐ßΓóπεΓ ¡á αÑú¿ßΓαδ
- »α«µÑßß«αá.
-
- éδαáªÑ¡¿∩, ¬«Γ«αδÑ «º¡áτáεΓ »«½«ªÑ¡¿Ñ »á¼∩Γ¿, - φΓ« ßß佬¿ ¡á
- »á¼∩Γ∞; ¼ÑΓ¬¿, »ÑαѼѡ¡δÑ, Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¿ Σπ¡¬µ¿¿ Åá߬á½∩
- «Γ¡«ß∩Γß∩ ¬ φΓ«⌐ ¬áΓÑú«α¿¿.
-
- éδαáªÑ¡¿∩, ¬«Γ«αδÑ ¡Ñ «Γ¡«ß∩Γß∩ ¬ αÑú¿ßΓαá¼ ¿ ¡Ñ ßó∩ºá¡δ ß
- »«½«ªÑ¡¿Ñ¼ ó »á¼∩Γ¿, - φΓ« ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩; φΓá úαπ»»á
- ó¬½ετáÑΓ ¡ÑΓ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ ¿ Γ¿»δ Åá߬á½∩.
-
- ìÑ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩ ¿ ßß佬¿ ¬ »á¼∩Γ¿ »α¿ó«ñ∩Γ ¬
- úÑ¡Ñαᵿ¿ αẽ¿τ¡«ú« ¬«ñá, ¬«úñá ¿ß»«½∞ºπεΓß∩ ¬á¬ «»Ñαá¡ñδ.
- ìá»α¿¼Ñα:
-
- const
- Start = 10;
- var
- Count: Integer;
- ...
- asm
- mov ax,Start { MOV AX,xxxx }
- mov bx,Count { MOV BX,[xxxx] }
- mov cx,[Start] { MOV CX,[xxxx] }
- mov dx,OFFSET Count { MOV DX,xxxx }
- end;
-
- ū߬«½∞¬π Start - φΓ« ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ, »Ñαóá∩ MOV
- áßßÑ¼í½¿απÑΓß∩ ó ¿¡ßΓαπ¬µ¿ε »ÑαÑß佬¿ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« º¡áτÑ¡¿∩.
- éΓ«αá∩ MOV Γαá¡ß½¿απÑΓß∩ ó ¿¡ßΓαπ¬µ¿ε »ÑαÑß佬¿ »á¼∩Γ¿, Γ.¬. Count
- - φΓ« ßßδ½¬á ¡á »á¼∩Γ∞. é ΓαÑΓ¿⌐ MOV [] ¿ß»«½∞ºπεΓß∩ ñ½∩
- »αÑ«íαẫóá¡¿∩ Start ó ßß佬π ¡á »á¼∩Γ∞ (ó φΓ«¼ ß½πτáÑ ß½«ó« ß«
- ß¼ÑΘÑ¡¿Ñ¼ 10 ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ) ¿ ó τÑΓóÑαΓ«⌐ MOV «»ÑαáΓ«α OFFSET
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ »αÑ«íαẫóá¡¿∩ Count ó ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ
- (ß¼ÑΘÑ¡¿Ñ Count ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ).
-
- èᬠéδ ó¿ñ¿ΓÑ, [] ¿ OFFSET ñ«»«½¡∩εΓ ñαπú ñαπúá. é ΓÑନ¡áσ
- αѺπ½∞Γ¿απεΘÑú« ¼áΦ¿¡¡«ú« ¬«ñá ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α asm ¿ñÑ¡Γ¿τÑ¡
- ñóπ¼ »Ñαóδ¼ ßΓα«¬á¼ »αÑñδñπΘÑú« «»ÑαáΓ«αá asm:
-
- asm
- mov ax,OFFSET [Start]
- mov bx,[OFFSET Count]
- end;
-
- æß佬¿ ¡á »á¼∩Γ∞ ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δÑ º¡áτÑ¡¿∩ ¬½áßß¿Σ¿µ¿απεΓß∩
- ¬á¬ »ÑαѼÑΘáѼδÑ ¿ áíß«½εΓ¡δÑ óδαáªÑ¡¿∩. ÅÑαѼÑΘáѼ«Ñ óδαáªÑ¡¿Ñ
- «º¡áτáÑΓ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ΓαÑíπÑΓ »ÑαѼÑΘÑ¡¿∩ ó« óαѼ∩
- αÑñá¬Γ¿α«óá¡¿∩, á áíß«½εΓ¡«Ñ º¡áτÑ¡¿Ñ «º¡áτáÑΓ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ¡Ñ
- ΓαÑíπÑΓ Γᬫú« »ÑαѼÑΘÑ¡¿∩. Äíδτ¡« óδαáªÑ¡¿∩, ¬«Γ«αδÑ ßßδ½áεΓß∩ ¡á
- ¼ÑΓ¬¿, »ÑαѼѡ¡δÑ, »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ∩ó½∩εΓß∩ »ÑαѼÑßΓ¿¼δ¼¿, á
- óδαáªÑ¡¿∩, ¬«Γ«αδÑ ßßδ½áεΓß∩ Γ«½∞¬« ¡á ¬«¡ßΓá¡Γδ - áíß«½εΓ¡δÑ.
-
- ÅÑαѼÑΘÑ¡¿Ñ - φΓ« »α«µÑßß, »α¿ ¬«Γ«α«¼ αÑñá¬Γ«α ßó∩ºÑ⌐
- ¡áº¡áτáÑΓ ß¿¼ó«½á¼ áíß«½εΓ¡δÑ áñαÑßá. é« óαѼ∩ ¬«¼»¿½∩µ¿¿
- ¬«¼»¿½∩Γ«α ¡Ñ º¡áÑΓ «¬«¡τáΓѽ∞¡δσ áñαÑß«ó ¼ÑΓ«¬, »ÑαѼѡ¡δσ,
- »α«µÑñπα ¿½¿ Σπ¡¬µ¿⌐; «¡¿ ¡Ñ¿ºóÑßΓ¡δ ñ« óαѼѡ¿ αÑñá¬Γ¿α«óá¡¿∩,
- ¬«úñá αÑñá¬Γ«α ¡áº¡áτáÑΓ áíß«½εΓ¡δÑ áñαÑßá ß¿¼ó«½á¼.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »«ºó«½∩ÑΓ éá¼ óδ»«½¡¿Γ∞ ½εíπε «»Ñαᵿε
- ¡áñ áíß«½εΓ¡δ¼ º¡áτÑ¡¿Ñ¼, ¡« «úαá¡¿τ¿óáÑΓ «»Ñαᵿ¿ ¡áñ
- »ÑαѼÑΘáÑ¼δ¼¿ «íΩѬΓἿ ñ« ß½«ªÑ¡¿∩ ¿ óδτ¿Γá¡¿∩ ¬«¡ßΓá¡Γ.
-
-
- Æ¿»δ óδαáªÑ¡¿⌐.
-
- èáªñ«Ñ óδαáªÑ¡¿Ñ óßΓα«Ñ¡¡«ú« áßßѼí½Ñαá ¿¼ÑÑΓ Γ¿» - ¿½¿ í«½ÑÑ
- Γ«τ¡« αẼÑα, »«ß¬«½∞¬π óßΓα«Ñ¡¡δ⌐ áßßßѼí½Ñα αáßß¼áΓα¿óáÑΓ Γ¿»
- óδαáªÑ¡¿∩ »α«ßΓ« ¬á¬ αẼÑα Ñú« »«½«ªÑ¡¿∩ ó »á¼∩Γ¿. ìá»α¿¼Ñα, Γ¿»
- (αẼÑα) »ÑαѼѡ¡«⌐ Integer - 2, »«ß¬«½∞¬π «¡á ºá¡¿¼áÑΓ 2 íá⌐Γá.
- éßΓα«Ñ¡¡δ⌐ áßßßѼí½Ñα óδ»«½¡∩ÑΓ »α«óÑα¬π Γ¿»á, ¬«úñá φΓ«
- 󫺼«ª¡«, Γá¬ ó ¿¡ßΓαπ¬µ¿∩σ
-
- var
- QuitFlag: Boolean;
- OutBufPtr: Word;
- ...
- asm
- mov al,QuitFlag
- mov bx,OutBufPtr
- end;
-
- óßΓα«Ñ¡¡δ⌐ áßßѼí½Ñα »α«óÑα∩ÑΓ τΓ« αẼÑα QuitFlag - 1 íá⌐Γ, á
- αẼÑα OutBufPtr - 2 íá⌐Γá. àß½¿ Γ¿» ¡Ñ»αáó¿½∞¡δ⌐, Γ« 󫺡¿¬áÑΓ
- «Φ¿í¬á; ¡á»α¿¼Ñα, ¡ÑóÑα¡«:
-
- asm
- mov dl,OutBufPtr
- end;
-
- »«ß¬«½∞¬π DL - αÑú¿ßΓα íá⌐Γ«ó«ú« αẼÑαá, á OutBufPtr - ß½«ó«.
- Æ¿» ßß佬¿ ¡á »á¼∩Γ∞ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡ ß »«¼«Θ∞ε »α¿óÑñÑ¡¿∩ Γ¿»á;
- ¬«ααÑ¬Γ¡δ⌐ ß»«ß«í ¡á»¿ßá¡¿∩ »αÑñδñπΘÑ⌐ ¿¡ßΓαπ¬µ¿¿:
-
- asm
- mov dl,BYTE PTR OutBufPtr
- mov dl,Byte(OutBufPtr)
- mov dl,OutBufPtr.Byte
- end;
-
- ßßδ½áεΓß∩ ¡á »Ñαóδ⌐ íá⌐Γ (¡á¿¼Ñ¡ÑÑ º¡áτáΘ¿⌐) »ÑαѼѡ¡«⌐
- OutBufPtr.
- é ¡Ñ¬«Γ«αδσ ß½πτá∩σ ßß佬¿ ¡á »á¼∩Γ∞ ¡ÑΓ¿»¿α«óá¡¡δÑ, Γ.Ñ. ¡Ñ
- ¿¼ÑεΓ Γ¿»á. Åα¿¼Ñα ß ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼, ºá¬½ετÑ¡¡δ¼ ó []:
-
- asm
- mov al,[100H]
- mov bx,[100H]
- end;
-
- éßΓα«Ñ¡¡δ⌐ áßßßѼí½Ñα αáºαÑΦáÑΓ «íÑ ¿¡ßΓαπ¬µ¿¿, »«ß¬«½∞¬π
- óδαáªÑ¡¿Ñ ó [100H] ¡Ñ ¿¼ÑÑΓ Γ¿»á - φΓ« «º¡áτáÑΓ "ß«ñÑন¼«Ñ »«
- áñαÑßπ 100H ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ", ¿ Γ¿» ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ ¿º
- »Ñαó«ú« «»Ñαá¡ñá (íá⌐Γ ñ½∩ AL, ß½«ó« ñ½∩ BX). é ß½πτáÑ Ñß½¿ Γ¿» ¡Ñ
- ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ ¿º ñαπú«ú« «»Ñαá¡ñá, óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα
- ΓαÑíπÑΓ ∩ó¡«ú« »α¿óÑñÑ¡¿∩ Γ¿»«ó:
-
- asm
- inc BYTE PTR [100H]
- imul WORD PTR [100H]
- end;
-
- Æáí½¿µá 22.2 ßπ¼¼¿απÑΓ »αÑñ«»αÑñѽѡ¡δÑ Γ¿»δ ß¿¼ó«½«ó, ¬«Γ«αδÑ
- óßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »αÑñ«ßΓáó½∩ÑΓ ó ñ«»«½¡Ñ¡¿Ñ ¬ Γ¿»á Åá߬á½∩.
-
- Æáí½¿µá 22.2 ÅαÑñ«»αÑñѽѡ¡δÑ Γ¿»δ ß¿¼ó«½«ó.
-
- ────────────────────────────────
- æ¿¼ó«½ Æ¿»
- ────────────────────────────────
- BYTE 1
- WORD 2
- DWORD 4
- QWORD 8
- TBYTE 10
- NEAR 0FFFEH
- FAR 0FFFFH
- ────────────────────────────────
-
-
- çá¼ÑΓ¿¼, τΓ« »ßÑóñ«Γ¿»δ NEAR ¿ FAR ¿ß»«½∞ºπεΓß∩ ñ½∩ π¬áºá¡¿∩
- ¼«ñѽ¿ ó맮óá »α«µÑñπα ¿ Σπ¡¬µ¿⌐. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ NEAR ¿ FAR
- ó »α¿óÑñÑ¡¿¿ Γ¿»«ó Γ«τ¡« ΓᬠªÑ, ¬á¬ ñαπú¿Ñ ß¿¼ó«½δ. ìá»α¿¼Ñα, Ñß½¿
- FarProc - FAR »α«µÑñπαá
-
- procedure FarProc; far;
-
- ¿, Ñß½¿ éδ »¿ΦÑΓÑ áßßѼí½Ñα¡δ⌐ ¬«ñ ó Γ«¼ ªÑ ¼«ñπ½Ñ, τΓ« ¿
- FarProc, éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ⌐ NEAR ó맮ó:
-
- asm
- push cs
- call NEAR PTR FarProc
- end;
-
-
-
- Ä»ÑαáΓ«αδ óδαáªÑ¡¿⌐.
-
- éßΓα«Ñ¡¡δ⌐ ÇßßѼí½Ñα »αÑñ«ßΓáó½∩ÑΓ «»ÑαáΓ«αδ, αáºñѽѡ¡δÑ ¡á
- 12 ¬½áßß«ó »« »α¿«α¿ΓÑΓá¼. Æáí½¿µá 22.3 »α¿ó«ñ¿Γ «»ÑαáΓ«αδ
- óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá ó »«α∩ñ¬Ñ π¼Ñ¡∞ΦÑ¡¿∩ ¿σ »α¿«α¿ΓÑΓá.
-
- Æáí½¿µá 22.3. Ä»ÑαáΓ«αδ óδαáªÑ¡¿⌐ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá.
-
- ───────────────────────────────────────────────────────────────────
- Ä»ÑαáΓ«α 諼¼Ñ¡Γáα¿⌐
- ───────────────────────────────────────────────────────────────────
- & Ä»ÑαáΓ«α »ÑαѬαδΓ¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- () æÑ½Ñ¬Γ«α φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ
- []
- .
- HIGH LOW
- + - ô¡áα¡δÑ «»ÑαáΓ«αδ
- : Ä»ÑαáΓ«α »ÑαѬαδΓ¿∩ ßÑú¼Ñ¡Γá
- OFFSET SEG TYPE PTR *
- / MOD SHL SHR
- + - ü¿¡áα¡δÑ «»ÑαáΓ«αδ
- NOT AND OR XOR Å«í¿Γ«óδÑ «»ÑαáΓ«αδ
- ───────────────────────────────────────────────────────────────────
-
- Åα¿¼Ñτá¡¿Ñ: Åα¿«α¿ΓÑΓ «»ÑαáΓ«α«ó óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá
- «Γ½¿τáÑΓß∩ «Γ Åá߬á½∩. ìá»α¿¼Ñα, ó áßßѼí½Ñα¡«¼ óδαáªÑ¡¿¿ «»ÑαáΓ«α
- AND ¿¼ÑÑΓ ¼Ñ¡∞Φ¿⌐ »α¿«α¿ΓÑΓ, τѼ «»ÑαáΓ«αδ + ¿ -, á ó Åá߬á½Ñ
- ¡á«í«α«Γ.
-
- &
- ÅÑαѬαδΓ¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. êñÑ¡Γ¿Σ¿¬áΓ«α, ß½ÑñπεΘ¿⌐ ºá &
- ¿¡ΓÑα»αÑΓ¿απÑΓß∩ ¬á¬ ß¿¼ó«½, «»αÑñѽѡ¡δ⌐ »«½∞º«óáΓѽѼ, ñáªÑ Ñß½¿
- «¡ ß«ó»áñáÑΓ ß ºáαѺÑαó¿α«óá¡¡δ¼ ß½«ó«¼ óßΓα«Ñ¡¡«ú« ÇßßѼí½Ñαá.
-
- (...)
- Å«ñóδαáªÑ¡¿Ñ. éδαáªÑ¡¿∩ ó¡πΓα¿ () óδτ¿ß½∩εΓß∩ ñ« ¿¡ΓÑα»αÑΓᵿ¿
- ¬á¬ φ½Ñ¼Ñ¡Γ óδαáªÑ¡¿∩. äαπú«Ñ óδαáªÑ¡¿Ñ ¼«ªÑΓ »αÑñΦÑßΓó«óáΓ∞
- óδαáªÑ¡¿ε ó¡πΓα¿ (); αѺπ½∞ΓáΓ ó φΓ«¼ ß½πτáÑ ßΓá¡«ó¿Γß∩ ßπ¼¼«⌐
- º¡áτÑ¡¿⌐ ñóπσ óδαáªÑ¡¿⌐ ß Γ¿»«¼ »Ñαó«ú« óδαáªÑ¡¿∩.
-
- [...]
- æßδ½¬á ¡á »á¼∩Γ∞. éδαáªÑ¡¿Ñ ó¡πΓα¿ [] »«½¡«ßΓ∞ε óδτ¿ß½∩ÑΓß∩ ñ«
- ¿¡ΓÑα»αÑΓᵿ¿, ¬á¬ «ñ¿¡ φ½Ñ¼Ñ¡Γ óδαáªÑ¡¿∩. éδαáªÑ¡¿Ñ ó¡πΓα¿ []
- ¼«ªÑΓ íδΓ∞ ¬«¼í¿¡¿α«óá¡« ß αÑú¿ßΓαἿ BX, BP, SI, DI, ¿ß»«½∞ºπ∩
- «»ÑαáΓ«α + ñ½∩ π¬áºá¡¿∩ ¿¡ñѬßᵿ¿. äαπú«Ñ óδαáªÑ¡¿Ñ ¼«ªÑΓ
- »αÑñΦÑßΓó«óáΓ∞ óδαáªÑ¡¿ε ó []; αѺπ½∞ΓáΓ ßΓá¡«ó¿Γß∩ ßπ¼¼«⌐ º¡áτÑ¡¿⌐
- ñóπσ óδαáªÑ¡¿⌐ ß Γ¿»«¼ »Ñαó«ú« óδαáªÑ¡¿∩. ÉѺπ½∞ΓáΓ óßÑúñá ßß佬á
- ¡á »á¼∩Γ∞.
-
- "."
- æÑ½Ñ¬Γ«α φ½Ñ¼Ñ¡Γá ßΓαπ¬Γπαδ. ÉѺπ½∞ΓáΓ - ßπ¼¼á óδαáªÑ¡¿∩ ñ«
- Γ«τ¬¿ ¿ óδαáªÑ¡¿∩ »«ß½Ñ Γ«τ¬¿ ß Γ¿»«¼ óδαáªÑ¡¿∩ »«ß½Ñ Γ«τ¬¿.
- 濼ó«½δ, ½ÑªáΘ¿Ñ ó ßΣÑαÑ ñÑ⌐ßΓó¿∩, «»αÑñѽ∩Ѽ«⌐ óδαáªÑ¡¿Ñ¼ ñ«
- Γ«τ¬¿, ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó óδαáªÑ¡¿¿ »«ß½Ñ Γ«τ¬¿.
-
- HIGH
- 髺óαáΘáÑΓ ßΓáαΦ¿Ñ 8 í¿Γ óδαáªÑ¡¿∩ Γ¿»á ß½«ó«, ß½ÑñπεΘÑú« ºá
- «»ÑαáΓ«α«¼. éδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
- º¡áτÑ¡¿Ñ¼.
-
- LOW
- 髺óαáΘáÑΓ ¼½áñΦ¿Ñ 8 í¿Γ óδαáªÑ¡¿∩ Γ¿»á ß½«ó«, ß½ÑñπεΘÑú« ºá
- «»ÑαáΓ«α«¼. éδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
- º¡áτÑ¡¿Ñ¼.
-
- "+"
- ô¡áα¡δ⌐ »½εß. 髺óαáΘáÑΓ óδαáªÑ¡¿Ñ, ß½ÑñπεΘÑÑ ºá +, íѺ
- ¿º¼Ñ¡Ñ¡¿⌐. éδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼
- º¡áτÑ¡¿Ñ¼.
-
- "-"
- ô¡áα¡δ⌐ ¼¿¡πß. 髺óαáΘáÑΓ óδαáªÑ¡¿Ñ, ß½ÑñπεΘÑÑ ºá -, ß
- «Γα¿µáΓѽ∞¡δ¼ º¡áτÑ¡¿Ñ¼. éδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼.
-
- ":"
- ÅÑαѬαδΓ¿Ñ ßÑú¼Ñ¡Γá. ô¬áºδóáÑΓ ÇßßѼí½Ñαπ, τΓ« óδαáªÑ¡¿Ñ »«ß½Ñ
- ":" «Γ¡«ß¿Γß∩ ¬ ßÑú¼Ñ¡Γπ ß ¿¼Ñ¡Ñ¼ ßÑú¼Ñ¡Γ¡«ú« αÑú¿ßΓαá (CS, DS, SS,
- ES) ñ« ":". ÉѺπ½∞ΓáΓ - ßßδ½¬á ¡á »á¼∩Γ∞ ß« º¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩
- »«ß½Ñ ":". è«úñá »ÑαѬαδΓ¿Ñ ßÑú¼Ñ¡Γá ¿ß»«½∞ºπÑΓß∩ ó «»Ñαá¡ñÑ
- ¿¡ßΓαπ¬µ¿¿, ¿¡ßΓαπ¬µ¿∩ íπñÑΓ »αÑñóáαÑ¡á ß««ΓóÑΓßΓóπεΘ¿¼ »αÑΣ¿¬ß«¼
- »ÑαѬαδΓ¿∩ ßÑú¼Ñ¡Γá, úáαá¡Γ¿απ∩, τΓ« íπñÑΓ óδíαá¡ π¬áºá¡¡δ⌐
- ßÑú¼Ñ¡Γ.
-
- OFFSET
- 髺óαáΘáÑΓ ß¼ÑΘÑ¡¿Ñ (¼½áñΦÑÑ ß½«ó«) óδαáªÑ¡¿∩, ß½ÑñπεΘÑú« ºá
- «»ÑαáΓ«α«¼. ÉѺπ½∞ΓáΓ - ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- SEG
- 髺óαáΘáÑΓ ßÑú¼Ñ¡Γ¡πε τáßΓ∞ (ßΓáαΦÑÑ ß½«ó«) óδαáªÑ¡¿∩,
- ß½ÑñπεΘÑú« ºá «»ÑαáΓ«α«¼. ÉѺπ½∞ΓáΓ - ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- TYPE
- 髺óαáΘáÑΓ Γ¿» (αẼÑα ó íá⌐Γáσ) óδαáªÑ¡¿∩, ß½ÑñπεΘÑú« ºá
- «»ÑαáΓ«α«¼. Æ¿» ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« º¡áτÑ¡¿∩ - 0.
-
- PTR
- Ä»ÑαáΓ«α »α¿óÑñÑ¡¿∩ Γ¿»á. ÉѺπ½∞ΓáΓ - ßßδ½¬á ¡á »á¼∩Γ∞ ß«
- º¡áτÑ¡¿Ñ¼ óδαáªÑ¡¿∩, ß½ÑñπεΘÑú« ºá «»ÑαáΓ«α«¼ ¿ Γ¿»«¼ óδαáªÑ¡¿∩,
- ßΓ«∩ΘÑú« »ÑαÑñ «»ÑαáΓ«α«¼.
-
- "*"
- ô¼¡«ªÑ¡¿Ñ. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- /
- ûѽ«Ñ ñѽѡ¿Ñ. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- MOD
- ÄßΓáΓ«¬ «Γ µÑ½«ú« ñѽѡ¿∩. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞
- áíß«½εΓ¡δ¼¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- SHL
- ï«ú¿τÑ߬¿⌐ ßñó¿ú ó½Ñó«. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- SHR
- ï«ú¿τÑ߬¿⌐ ßñó¿ú ó»αáó«. Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- "+"
- 潫ªÑ¡¿Ñ. éδαáªÑ¡¿∩ ¼«úπΓ íδΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿
- ¿½¿ ßßδ½¬á¼¿ ¬ »á¼∩Γ¿, ¡« Γ«½∞¬« «ñ¡« ¿º óδαáªÑ¡¿⌐ ¼«ªÑΓ íδΓ∞
- »ÑαѼÑΘáÑ¼δ¼ º¡áτÑ¡¿Ñ¼. àß½¿ «ñ¡« ¿º óδαáªÑ¡¿⌐ - »ÑαѼÑΘáѼ«Ñ
- º¡áτÑ¡¿Ñ, Γ« αѺπ½∞ΓáΓ ΓᬠªÑ »ÑαѼÑΘáѼ«Ñ º¡áτÑ¡¿Ñ. àß½¿ «ñ¡« ¿º
- óδαáªÑ¡¿⌐ - ßßδ½¬á ¡á »á¼∩Γ∞, Γ« αѺπ½∞ΓáΓ ΓᬠªÑ ßßδ½¬á ¡á »á¼∩Γ∞.
-
- "-"
- éδτ¿Γá¡¿Ñ. ÅÑαó«Ñ óδαáªÑ¡¿Ñ ¼«ªÑΓ íδΓ∞ ½εí«ú« ¬½áßßá, á óΓ«α«Ñ
- óδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼.
- ÉѺπ½∞ΓáΓ Γ«ú« ªÑ ¬½áßßá, τΓ« ¿ »Ñαó«Ñ º¡áτÑ¡¿Ñ.
-
- NOT
- Å«í¿Γ«ó«Ñ «Γα¿µá¡¿Ñ. éδαáªÑ¡¿Ñ ñ«½ª¡« íδΓ∞ áíß«½εΓ¡δ¼
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼ º¡áτÑ¡¿Ñ¼ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- AND
- Å«í¿Γ«ó«Ñ "¿". Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- OR
- Å«í¿Γ«ó«Ñ "¿½¿". Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞ áíß«½εΓ¡δ¼¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
- XOR
- Å«í¿Γ«ó«Ñ ¿ß¬½ετáεΘÑÑ "¿½¿". Äíá óδαáªÑ¡¿∩ ñ«½ª¡δ íδΓ∞
- áíß«½εΓ¡δ¼¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δ¼¿ º¡áτÑ¡¿∩¼¿ ¿ αѺπ½∞ΓáΓ - áíß«½εΓ¡«Ñ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ.
-
-
- ÇßßѼí½Ñα¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿.
-
- ä« ß¿σ »«α ¬áªñá∩ ¬«¡ßΓαπ¬µ¿∩ asm...end íδ½á ºá¬½ετÑ¡á ó
- «»ÑαáΓ«α¡πε τáßΓ∞ begin...end. ÇßßѼí½Ñα¡á∩ ñ¿αÑ¬Γ¿óá Turbo Pascal
- »«ºó«½∩ÑΓ éá¼ ¡á»¿ßáΓ∞ »α«µÑñπαπ ¿½¿ Σπ¡¬µ¿ε »«½¡«ßΓ∞ε ¡á
- óßΓα«Ñ¡¡«¼ ÇßßѼí½ÑαÑ, ¡Ñ ΓαÑíπ∩ «»ÑαáΓ«α¡«⌐ τáßΓ¿ begin...end.
- Åα¿¼Ñα áßßѼí½Ñα¡«⌐ Σπ¡¬µ¿¿:
-
- function LongMul(X, Y: Integer): Longint; assembler;
- asm
- mov ax,X
- imul Y
- end;
-
- ä¿αÑ¬Γ¿óá ÇßßѼí½Ñαá ºáßΓáó½∩ÑΓ Turbo Pascal óδ»«½¡¿Γ∞ α∩ñ
- «»Γ¿¼¿ºáµ¿⌐ »α¿ úÑ¡Ñαᵿ¿ ¬«ñá:
-
- - 諼»¿½∩Γ«α ¡Ñ úÑ¡Ñα¿απÑΓ ¬«ñ ñ½∩ ¬«»¿α«óá¡¿∩ º¡áτÑ¡¿∩
- »áαá¼ÑΓα«ó ó ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ. ¥Γ« ñÑ⌐ßΓóπÑΓ ¡á óßÑ º¡áτÑ¡¿∩
- »áαá¼ÑΓα«ó ßΓ᫬«ó«ú« Γ¿»á ¿ ñαπú¿Ñ º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó ß αẼÑα«¼
- ¡Ñ 1, 2 ¿½¿ 4 íá⌐Γ. é¡πΓα¿ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ Γá¬¿Ñ »áαá¼ÑΓαδ
- ñ«½ª¡δ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩, ¬á¬ Ñß½¿ íδ «¡¿ í뫨 var »áαá¼ÑΓαἿ.
-
- - 諼»¿½∩Γ«α ¡Ñ αáß»αÑñѽ∩ÑΓ »ÑαѼѡ¡πε αѺπ½∞ΓáΓá Σπ¡¬µ¿¿ ¿
- ßßδ½¬á ¡á ß¿¼ó«½ @Result ∩ó½∩ÑΓß∩ «Φ¿í¬«⌐. æΓ᫬«óδÑ Σπ¡¬µ¿¿
- ∩ó½∩εΓß∩ ¿ß¬½ετÑ¡¿Ñ¼ ¿º φΓ«ú« »αáó¿½á. Ä¡¿ óßÑúñá ¿ß»«½∞ºπεΓ
- π¬áºáΓѽ∞ @Result, ¬«Γ«αδ⌐ αáß»αÑñѽ∩ÑΓß∩ óδºδóáεΘÑ⌐ »α«úαá¼¼«⌐.
-
- - 諼»¿½∩Γ«α ¡Ñ úÑ¡Ñα¿απÑΓ ¬áñαá ßΓѬá ñ½∩ »α«µÑñπα ¿ Σπ¡¬µ¿⌐
- íѺ »áαá¼ÑΓα«ó ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ.
-
- - ÇóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿απÑΓß∩ ¬«ñ óσ«ñá ¿ óδσ«ñá ñ½∩
- áßßѼí½Ñα¡δσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐, óδú½∩ñ∩Θ¿σ ¬á¬:
-
- push bp
- mov bp,sp
- sub sp,Locals
- ...
- mov sp,bp
- pop bp
- ret Params
-
- úñÑ Locals - αẼÑα ½«¬á½∞¡δσ »ÑαѼѡ¡δσ, Params - αẼÑα
- »áαá¼ÑΓα«ó. àß½¿ Locals ¿ Params ¡«½∞, Γ« óσ«ñ¡«ú« ¬«ñá ¡ÑΓ, á ¬«ñ
- óδσ«ñá ß«ßΓ«¿Γ ¿º ¿¡ßΓαπ¬µ¿¿ RET.
-
- öπ¡¬µ¿¿, ¿ß»«½∞ºπεΘ¿Ñ ñ¿αÑ¬Γ¿óπ ÇßßѼí½Ñαá, ñ«½ª¡δ ó«ºóαáΘáΓ∞
- αѺπ½∞ΓáΓδ:
-
- - öπ¡¬µ¿¿ »«α∩ñ¬«ó«ú« Γ¿»á (Integer, Char, Boolean ¿
- »ÑαÑτ¿ß½¿¼δÑ Γ¿»δ ó«ºóαáΘáεΓ αѺπ½∞ΓáΓδ ó AL (8-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ),
- AX (16-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ), ¿½¿ DX:AX (32-í¿Γ¡«Ñ º¡áτÑ¡¿Ñ).
-
- - öπ¡¬µ¿¿ Γ¿»á Real ó«ºóαáΘáεΓ αѺπ½∞ΓáΓ ó DX:BX:AX
-
- - öπ¡¬µ¿¿ ß αѺπ½∞ΓáΓἿ Γ¿»á 8087 (Single, Double, Extended ¿
- Comp) ó«ºóαáΘáεΓ Ñú« ó αÑú¿ßΓαÑ ST(0) ß«»α«µÑßß«αá 8087.
-
- - ÉѺπ½∞ΓáΓ Γ¿»á π¬áºáΓѽ∞ ó«ºóαáΘáÑΓß∩ ó DX:AX.
-
- - ÉѺπ½∞ΓáΓ Γ¿»á ßΓ᫬á ó«ºóαáΘáÑΓß∩ τÑαѺ óαѼѡ¡πε »á¼∩Γ∞,
- ¡á ¬«Γ«απε π¬áºδóáÑΓ @Result.
-
- ÇßßѼí½Ñα¡á∩ ñ¿αÑ¬Γ¿óá ó« ¼¡«ú«¼ ßαáó¡¿¼á ß ñ¿αÑ¬Γ¿ó«⌐
- external, á áßßѼí½Ñα¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ñ«½ª¡δ ß½Ññ«óáΓ∞ ΓѼ
- ªÑ »αáó¿½á¼, τΓ« ¿ external »α«µÑñπαδ ¿ Σπ¡¬µ¿¿. æ½ÑñπεΘ¿Ñ »α¿¼Ñαδ
- ñѼ«¡ßΓα¿απεΓ ¡Ñ¬«Γ«αδÑ «Γ½¿τ¿∩ ¼Ñªñπ «»ÑαáΓ«αἿ asm ó «íδτ¡δσ ¿
- áßßѼí½Ñα¡δσ Σπ¡µ¿∩σ. ÅÑαóδ⌐ »α¿¼Ñα ¿ß»«½∞ºπÑΓ «»ÑαáΓ«α asm ó
- «íδτ¡«⌐ Σπ¡¬µ¿¿ ñ½∩ »αÑ«íαẫóá¡¿∩ ßΓ᫬¿ ó »α«»¿ß¡δÑ íπ¬óδ.
- çá¼ÑΓ¿¼, τΓ« º¡áτÑ¡¿Ñ »áαá¼ÑΓαá Str ó φΓ«¼ ß½πτáÑ ßßδ½áÑΓß∩ ¡á
- ½«¬á½∞¡πε »ÑαѼѡ¡πε, »«ß¬«½∞¬π ¬«¼»¿½∩Γ«α áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿απÑΓ
- óσ«ñ¡«⌐ ¬«ñ, ¬«Γ«αδ⌐ ¬«»¿απÑΓ ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ »áαá¼ÑΓα ó ½«¬á½∞¡πε
- »á¼∩Γ∞.
-
- function UpperCase(Str: String): String;
- begin
- asm
- cld
- lea si,Str
- les di,@Result
- SEGSS lodsb
- stosb
- xor ah,ah
- xchg ax,cx
- jcxz @3
- @1:
- SEGSS lodsb
- cmp al,'a'
- ja @2
- cmp a1,'z'
- jb @2
- sub a1,20H
- @2:
- stosb
- loop
- @3:
- end;
- end;
-
- éΓ«α«⌐ »α¿¼Ñα - φΓ« áßßѼí½Ñα¡á∩ óÑαß¿∩ Σπ¡¬µ¿¿ UpperCase. é
- φΓ«¼ ß½πτáÑ Str ¡Ñ ¬«»¿απÑΓß∩ ó ½«¬á½∞¡πε »á¼∩Γ∞, ¿ Σπ¡¬µ¿∩ ñ«½ª¡á
- ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ Str ¬á¬ var »áαá¼ÑΓα.
-
- function UpperCase(S: String): String; assembler;
- asm
- push ds
- cld
- lds si,Str
- les di,@Result
- lodsb
- stosb
- xor ah,ah
- xchg ax,cx
- jcxz @3
- @1:
- lodsb
- cmp a1,'a'
- ja @2
- cmp a1,'z'
- jb @2
- sub a1,20H
- @2:
- stosb
- loop @1
- @3:
- pop ds
- end;
-