Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. ΠΠ· ΠΊΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «Hello World» Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ — ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°:
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
- ΠΠΎΠΌΠ°Π½Π΄Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ:

[ΠΌΠ΅ΡΠΊΠ°:] [ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°] [ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ] [; ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ]
ΠΠ΄Π΅:
- ΠΠ΅ΡΠΊΠ° — Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°
- ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
- ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ — Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (ΡΠ΅Π³ΠΈΡΡΡΡ, Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ)
- ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ — ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρ (ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° π
ΠΠ΅ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π΄Π»Ρ x86 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ:
- ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ° ΠΈ Ρ.Π΄.)
- Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ (.data) — Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
- Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° (.code) — ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ° (.stack) — Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΡΠ΅ΠΊ
- Π’ΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄, Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΡΠ΅ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
- ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ — ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TASM, NASM)
- ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ — ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TLINK)
- Π’Π΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ — Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
- ΠΡΠ»Π°Π΄ΡΠΈΠΊ — Π΄Π»Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TD)
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE), ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠ΅ Π²ΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.

ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «Hello World» Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π΄Π»Ρ DOS:
.model small
.stack 100h
.data
hello db 'Hello, World!$'
.code
start:
mov ax, @data
mov ds, ax
mov ah, 09h
mov dx, offset hello
int 21h
mov ax, 4C00h
int 21h
end start
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΡΡΠΎΠΊΡ «Hello, World!» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ DOS. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π³ΠΈ:
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ΅ΠΊΠ°
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° DS
- ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ DOS Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ
- ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° x86
ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ x86 ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ:
- Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ: AX, BX, CX, DX
- ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ: SI, DI
- Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ: SP (ΡΡΠ΅ΠΊ), BP (ΠΊΠ°Π΄Ρ ΡΡΠ΅ΠΊΠ°)
- Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ: CS, DS, SS, ES
- Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ²: FLAGS
- Π‘ΡΠ΅ΡΡΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄: IP
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅.
Π‘ΠΏΠΎΡΠΎΠ±Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ x86 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ²:

- Π Π΅Π³ΠΈΡΡΡΠΎΠ²Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅
- ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π·Π°Π΄Π°Π½ Π² ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅
- ΠΡΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — Π°Π΄ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π·Π°Π΄Π°Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
- ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — Π°Π΄ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
- ΠΠ°Π·ΠΎΠ²Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — Π°Π΄ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°
- ΠΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° x86
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° x86:
- MOV — ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
- ADD, SUB — ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅
- INC, DEC — ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° 1
- CMP — ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
- JMP — Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄
- Jcc — ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (JE, JNE, JG ΠΈ Ρ.Π΄.)
- CALL, RET — Π²ΡΠ·ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- PUSH, POP — ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ
ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° ΡΠ»Π°Π³ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ — ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ, Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΊΠΎΠ΄Π°.

2.2. ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
2.2. ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Ρ
86 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ
ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠΎΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Ρ.ΠΊ. ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π½ΠΈΡ
. Π’Π΅ΠΊΡΡΠΈΠΌΠΈ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ
ΡΠ²Π»ΡΡΡΡΡ DB
, DW
, DD
, DQ
, DT
, DDQ
ΠΈ DO
,
ΠΈΡ
ΠΊΠΎΠΏΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ
ΠΏΠ°ΠΌΡΡΡΡ RESB
, RESW
, RESD
, RESQ
, REST
, RESDDQ
ΠΈ RESO
, ΠΊΠΎΠΌΠ°Π½Π΄Ρ INCBIN
, EQU
ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ TIMES
.
2.2.1.
DB
ΠΈ Π΅Π΅ Π΄ΡΡΠ·ΡΡ: ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
DB
, DW
, DD
, DQ
, DT
, DDQ
ΠΈ DO
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π²
Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
db 0x55 ; ΠΏΡΠΎΡΡΠΎ Π±Π°ΠΉΡ 0x55 db 0x55,0x56,0x57 ; ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ 3 Π±Π°ΠΉΡΠ° db 'a',0x55 ; ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° db 'hello',13,10,'$' ; ΡΡΠΎ ΡΡΡΠΎΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° dw 0x1234 ; 0x34 0x12 dw 'a' ; 0x41 0x00 (ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ) dw 'ab' ; 0x41 0x42 (ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°) dw 'abc' ; 0x41 0x42 0x43 0x00 (ΡΡΡΠΎΠΊΠ°) dd 0x12345678 ; 0x78 0x56 0x34 0x12 dq 0x1122334455667788 ;0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 ddq 0x112233445566778899aabbccddeeff00 ; 0x00 0xff 0xee 0xdd 0xcc 0xbb 0xaa 0x99 ; 0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 do 0x112233445566778899aabbccddeeff00 ;ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ dd 1.234567e20 ; ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ dq 1.234567e20 ; Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ dt 1.234567e20 ; ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ
DT
Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ²
ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π° DDQ
— ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ
ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΡΠ±ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ DD
Π½Π΅
Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΡΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ².
2.2.2.
RESB
ΠΈ Π΅Π΅ Π΄ΡΡΠ·ΡΡ: ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
RESB
, RESW
, RESD
, RESQ
, REST
, RESDQ
ΠΈ RESO
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² BSS-ΡΠ΅ΠΊΡΠΈΠΈ
ΠΌΠΎΠ΄ΡΠ»Ρ: ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΠΆΠ΄Π°Ρ
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°Π½Π΄, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠΈΡΠ»ΠΎΠΌ
ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΡΡ
Π±Π°ΠΉΡ, ΡΠ»ΠΎΠ², Π΄Π²ΠΎΠΉΠ½ΡΡ
ΡΠ»ΠΎΠ² ΠΈ Ρ.Π΄. NASM
Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°,
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π² MASM/TASM, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ DW ?
ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ: ΡΡΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ
ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. ΠΠΏΠ΅ΡΠ°Π½Π΄ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ°
RESB
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ: ΡΠΌ.
Π Π°Π·Π΄Π΅Π»Β 2.8.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
buffer: resb 64 ; ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ 64 Π±Π°ΠΉΡ wordvar: resw 1 ; ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° realarray resq 10 ; ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 10 ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ
2.2.3.
INCBIN
: ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ
Π±ΠΈΠ½Π°ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² INCBIN
Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ».
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ ΠΈ
ΠΌΡΠ·ΡΠΊΠΈ
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ³ΡΡΡΠΊΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
_Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
_ ΠΏΠΎΡΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
incbin "file.dat" ; Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ incbin "file.dat",1024 ; ΠΏΡΠΎΠΏΡΡΠΊ ΠΏΠ΅ΡΠ²ΡΡ 1024 Π±Π°ΠΉΡ incbin "file.dat",1024,512 ; ΠΏΡΠΎΠΏΡΡΠΊ ΠΏΠ΅ΡΠ²ΡΡ 1024 ΠΈ ; Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ 512 Π±Π°ΠΉΡ
2.

EQU
: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ EQU
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ EQU
, Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Π°
ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΊΠ°. Π‘ΠΌΡΡΠ» `EQU`β ΡΠ²ΡΠ·Π°ΡΡ ΠΈΠΌΡ
ΠΌΠ΅ΡΠΊΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π΅ (ΡΠΎΠ»ΡΠΊΠΎ) ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°. ΠΠ°Π½Π½ΠΎΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,message db 'ΠΡΠΈΠ²Π΅Ρ, ΡΡΡΠ΅Π»' msglen equ $-message
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ msglen
ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 13. msglen
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅
ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. ΠΡΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ msglen
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ $
(ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ $
β ΡΠΌ. Π Π°Π·Π΄Π΅Π»Β 2.6) Π² ΠΌΠ΅ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ,
Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½Π°
ΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ $
Π² ΠΌΠ΅ΡΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ
ΠΎΠΏΠ΅ΡΠ°Π½Π΄ EQU
ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Π Π°Π·Π΄Π΅Π»Β 2.8).
2.2.5.
TIMES
: ΠΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ
Π΄Π°Π½Π½ΡΡ
ΠΡΠ΅ΡΠΈΠΊΡ
Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡΡΡ
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. ΠΠ°Π½Π½Π°Ρ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΡΡΠ°ΡΡΠΈ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ NASM-ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
DUP
,
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ MASM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
zerobuf: times 64 db 0
ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅; ΠΎΠ΄Π½Π°ΠΊΠΎ TIMES
Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ TIMES
β Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²Π°Ρ
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π° ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ:
buffer: db 'ΠΡΠΈΠ²Π΅Ρ, ΡΡΡΠ΅Π»' times 64-$+buffer db ' '
ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ
Π΄Π»ΠΈΠ½Ρ buffer
Π΄ΠΎ 64 Π±Π°ΠΉΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, TIMES
ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²
ΠΎΠ±ΡΡΠ½ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ
ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΡΠΈΠΊΠ»Ρ:
times 100 movsb
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ
ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ times 100 resb 1
ΠΈ resb 100
Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 100
ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ ΠΈΠ·-Π·Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠΏΠ΅ΡΠ°Π½Π΄ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ TIMES
,
ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ EQU
, RESB
ΠΈ
Π΅Π΅ Π΄ΡΡΠ·ΡΡΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ
(Π Π°Π·Π΄Π΅Π»Β 2.8).
ΠΠΌΠ΅ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ TIMES
Π½Π΅
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π² ΠΌΠ°ΠΊΡΠΎΡΠ°Ρ
: ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠΈΡ ΡΠΎ, ΡΡΠΎ TIMES
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅
ΠΌΠ°ΠΊΡΠΎ-ΡΠ°Π·Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ TIMES
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ 64-$+buffer
. ΠΠ»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π² ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΌΠ°ΠΊΡΠΎΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° %rep
.
TASM
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΉ:
text segment ;(1)ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ assume CS:text,DS:data ;(2)Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ CS Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ ;ΠΊΠΎΠΌΠ°Π½Π΄, Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ DS - Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ begin: mov AX,data ;(3)ΠΠ΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π² ΠΠ₯, mov DS,AX ;(4)Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ ΠΈΠ· ΠΠ₯ Π² DS mov AH,09h ;(5)Π€ΡΠ½ΠΊΡΠΈΡ DOS 9h Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ mov DX,offset mesg ;(6)ΠΠ΄ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² DX int 21h ;(7)ΠΡΠ·ΠΎΠ² DOS mov AH,4Ch ;(8)Π€ΡΠ½ΠΊΡΠΈΡ 4Ch Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ mov AL, 0 ;(9)ΠΠΎΠ΄ 0 ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ int 21h ;(10)ΠΡΠ·ΠΎΠ² DOS text ends ;(11)ΠΠΎΠ½Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ data segment ;(12)ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ mesg db 'ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ!$' ;(13)ΠΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ data ends ;(14)ΠΠΎΠ½Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ stk segment stack ;(15)ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ° db 256 dup (0) ;(16)Π Π΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌ 256 Π±Π°ΠΉΡ Π΄Π»Ρ ΡΡΠ΅ΠΊΠ° stk ends ;(17)ΠΠΎΠ½Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ° end begin ;(18)ΠΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π°
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°
ΡΡΡΠΎΠΊΡ Ρ ΡΡΠ°Π·ΠΎΠΉ «ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ!».
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Turbo Assembler, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ TASM. ΠΡΠ»ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½Π΅Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π·Π΄Π΅ΡΡ. ΠΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π°ΡΡ ΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π Π°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ ΠΌΠ΅ΡΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΠ»ΠΎΠΊΠ½ΠΎΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΡΠΎΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ asm.
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΡΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ: ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠΎΠΊ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π΄ΠΎ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΡ
Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 18 ΡΡΡΠΎΠΊ-ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° segment ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ text. Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ: ΠΈΠΌΠ΅Π½ΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ΅ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ; ΡΠ°ΠΊ, Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ; ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ 4 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: ΠΈΠΌΡ begin, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°) mov, ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠ₯ ΠΈ data ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ; Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 4 (ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ) ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΡ.
ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² — Π±Π΅Π· ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ²
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ. ΠΠ±ΡΡΠ½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΡΡΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°: ΠΊΠΎΠΌΠ°Π½Π΄, Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΡΠ΅ΠΊΠ°.
Π ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Ρ. Π΅. ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°; Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎ
ΡΡΡΠΎΠΊΠ° ΡΠ΅ΠΊΡΡΠ°. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΠΆΠ΅.
Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 2 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° assume ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ
(Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠΎΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°), ΡΡΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ CS Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ text, Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ DS — Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ
data.
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (Π° Π²ΡΠ΅Π³ΠΎ ΠΈΡ
Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ 4) ΠΈΠ³ΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ. ΠΠΎΠ³Π΄Π°
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ½Π°
ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π·Π°Π½ΠΎΡΡΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΡ
Π·Π°
Π½ΠΈΠΌΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ². Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π»ΡΠ±ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ΅ΠΉΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ°Ρ Π½Π°Ρ ΡΡΠ΅ΠΉΠΊΠ°, Π°
ΡΠ°ΠΊΠΆΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π²Π½ΡΡΡΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ. ΠΡΠΎΡ
Π½ΠΎΠΌΠ΅Ρ Π½ΠΎΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π’ΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ
Π·Π°ΡΠ°Π½Π΅Π΅, ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π±ΡΠ΄ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΌΡ
ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ Π΅ΠΌΡ ΠΎΠ± ΡΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° assume (assume — ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ). ΠΡΠΈ
ΡΡΠΎΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ CS Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° ΡΠ΅Π³ΠΈΡΡΡ DS
Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ. ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ΅ΠΊΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠΌ
ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈ ΡΡΠ°Π²ΠΈΡΡ Π΅ΠΌΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ — ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ
ΡΠ΅Π³ΠΈΡΡΡ SS) Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ
ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠΎΡΡΠ°Π² Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ·
ΠΌΠ°ΡΠΈΠ½Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ², ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ,
ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ segment ΠΈ assume Π½Π΅ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π²
ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π»ΠΈΡΡ ΡΠ°ΠΌΠΈΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΈΠ΅
Π½Π΅ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΈΡΡΠΈΠ½Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² — ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ·ΡΠΊΠ°.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π΅ΡΡ Ρ ΠΌΠ΅ΡΠΊΠΈ begin, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π½Π°Π», Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡΡ, Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ end (ΡΠΌ. ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 18).
ΠΠ°ΡΠΈΠ½Π°Ρ ΠΎΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° Π·Π° ΡΡΡΠΎΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ.
Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ
3 ΠΈ 4 Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° DS.
Π‘Π½Π°ΡΠ°Π»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ text (Ρ. Π΅. Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° text) Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ mov (ΠΎΡ
move — ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ) Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΠ₯, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°’
ΠΠ₯ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ DS. Π’Π°ΠΊΠ°Ρ Π΄Π²ΡΡ
ΡΡΡΠΏΠ΅Π½ΡΠ°ΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½ΡΠΆΠ½Π° ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² ΡΠΈΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π°Π΄ΡΠ΅ΡΠ° Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ. ΠΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ ΠΠ₯ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ «ΠΏΠ΅ΡΠ΅Π²Π°Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ°».
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ 5, 6 ΠΈ 7 ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΡΡΡΠΎΠΊΠΈ
ΡΠ΅ΠΊΡΡΠ°. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π½Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Π° ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ MS-DOS. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ,
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π½Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ
Π½Π° ΡΠΊΡΠ°Π½
(ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π²ΠΎΠ΄Π° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ» Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ Ρ. Π΄.).
ΠΡΠ²ΠΎΠ΄ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π° ΡΠΊΡΠ°Π½ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»ΠΈΠ½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΡ
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ
ΠΏΡΠΎΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡΡΡ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΡΠΎΡΡΠ°Π² DOS Π²Ρ
ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ — Π²ΡΠ²ΠΎΠ΄
Π½Π° ΡΠΊΡΠ°Π½ ΠΈ Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ» ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ DOS, Π½Π°Π΄ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΠ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ — ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ int 2lh, (int — ΠΎΡ interrupt — ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ DOS. ΠΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ DOS; ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ 09h, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ DX ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΡΡ Π°Π΄ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 6 Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ mesg Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ DX, Π° Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 7 ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² DOS.
Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ 5 ΠΈ 7 ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΈΡΠ»Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π½Π°ΠΊΠΎΠΌ h. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ (Π΄Π°Π»Π΅Π΅ — 16-ΡΠΈΡΠ½ΡΠ΅) ΡΠΈΡΠ»Π°, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΠΊΠ° Π½Π΅ ΡΡΠ΅Π±ΡΡΡ.
ΠΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ DOS Π΄ΠΎΠ»ΠΆΠ½Π°
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π½Π°ΡΠ΅ΠΉ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°Π΄ΠΎ
Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ Π·Π°ΠΏΡΠΎΡ DOS (ΠΊΠ°ΠΊ
ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° >, ΠΏΡΠ΅Π΄Π²Π°ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°) ΠΈ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ
ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ DOS Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ
4Ch. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ AL Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ DOS. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 9 ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ 0 Π² ΡΠ΅Π³ΠΈΡΡΡ AL ΠΈ
Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ DOS ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΉ Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ int 21h. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΡΠΎΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π½ΡΠΆΠ½ΠΎ) Π·Π°ΠΊΡΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠΎ
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ends (ΠΎΡ end segment, ΠΊΠΎΠ½Π΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°), ΠΏΠ΅ΡΠ΅Π΄
ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ
ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° text.
ΠΡΠ»Π΅Π΄ Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ
. ΠΠ½, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½Ρ
ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ segment, ΠΏΡΠ΅Π΄Π²Π°ΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°ΡΠ΅Π³ΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ends. Π£ Π½Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π°Π½Π½ΡΡ
Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΡΡΡΠΎΠΊΠ°
ΡΠ΅ΠΊΡΡΠ°. Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° db
(ΠΎΡ define byte, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°ΠΉΡ) ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π°ΠΏΠΎΡΡΡΠΎΡΡ ΠΈΠ»ΠΈ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ
ΡΡΠΎΠ±Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΠΏΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ,
ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅
ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ mesg (ΠΎΡ message, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅), Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 13.
ΠΡΡΠ΅, Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ 6, ΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡ DX ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ DOS Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π°
Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π° ΡΠΊΡΠ°Π½ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°. ΠΠΎ ΠΊΠ°ΠΊ DOS ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, Π³Π΄Π΅ ΡΡΠ° ΡΡΡΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ?
Π₯ΠΎΡΡ Π½Π°ΠΌ ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΡΡΠ΅ΡΠ»ΠΈΠ²ΠΎ Π²ΠΈΠ΄Π΅Π½, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ
ΠΊΠΎΠ΄Π°Ρ
, ΠΈΠ·
ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΡΡΠΎΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΎΠ½ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠΌΠ΅ΡΠ΅Π½, ΠΈ DOS, Π²ΡΠ²Π΅Π΄Ρ ΡΠ° ΡΠΊΡΠ°Π½
ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΡΡΠΎΠΊΠΈ — Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π²ΡΠ²ΠΎΠ΄ Π±Π°ΠΉΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ,
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π·Π° ΡΡΠ°Π·ΠΎΠΉ «ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ!». ΠΠΎΡΡΠΎΠΌΡ DOS ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ
ΡΠΎΠΌ, Π³Π΄Π΅ ΠΊΠΎΠ½ΡΠ°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΡΠ΅ΠΊΡΡΠ°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DOS ΡΡΠ΅Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ
ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»ΠΈΠ½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΡ 09h ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ½Π°ΡΠ΅. ΠΠ½Π°
Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡ Π΄ΠΎ Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°ΡΠ° ($), ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ Π½Π°ΡΡ ΡΡΠ°Π·Ρ.
Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Π΄Π°Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ stk, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ segment ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ends. Π‘ΡΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΡΡΡ Π±Π°ΠΉΡΠΎΠ². ΠΠ»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π³ΡΡΠΏΠΏΡ Π±Π°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ
db ΡΠ°Π·ΠΌΠ΅Ρ dup (Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ)
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΡΡΠ΅ΠΊΠ° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ 256 Π±Π°ΠΉΡ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π½ΡΠ»ΡΠΌΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ segment, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ°, ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ stack. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅
ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ
Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΡΠ΅ΠΊΠ° SS Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° Π½Π°ΡΠ°Π»ΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ°, Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° SP — Π½Π° Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅Ρ (ΡΡΠ΅ΠΊ
Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ° ΠΊ Π½Π°ΡΠ°Π»Ρ).
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ end, ΠΊΠΎΡΠΎΡΠ°Ρ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΡΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ. Π΅. Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΌΠ΅ΡΠΊΠ° begin.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ·ΡΠΊ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° | Assembler | Π‘ΡΠ°ΡΡΠΈ | ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Realcoding.Net
<!—StartFragment —>ΠΠ²ΡΠΎΡ: ΠΠ°ΡΠ΄ΠΈΠ½ Π.Π., http://proger.ru
mailto:[email protected]
8 ΠΎΠΊΡΡΠ±ΡΡ 2003 Π³.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ — Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π²Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΠΊΠΎΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ — ΠΎΡΠ΅Π½Ρ
ΡΡΠΆΡΠ»Π°Ρ ΡΡΡΠΊΠ°. ΠΠ·Π°ΠΌΠ΅Π½ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΏΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ΅Π½
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π²Ρ
Π΄Π°ΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΈ
Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΌΡΡΠΎΡΠ°. ΠΡΠΈΠΌ ΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ
Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π§ΡΠΎΠ±Ρ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·:
- ΠΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
- ΠΠ°ΠΌΡΡΠΈ
- Π£ΡΡΡΠΎΠΉΡΡΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ [1].
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΠ±ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
<ΠΠ΅ΡΠΊΠ°>: <ΠΠΏΠ΅ΡΠ°ΡΠΎΡ> <ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ> ; <ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ>
ΠΠΎΠ»Π΅ ΠΌΠ΅ΡΠΊΠΈ. ΠΠ΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°.
ΠΠΎΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. Π ΡΡΠΎΠΌ ΠΏΠΎΠ»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° mov
ΠΠΎΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ
ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ (ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°). ΠΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ
Π½Π΅ Π±ΡΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌΠΈ
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΏΠ΅ΡΠ΅ΡΠ»Π°ΡΡ,
ΡΠ»ΠΎΠΆΠΈΡΡ ΠΈ Ρ.Π΄.).
ΠΠΎΠ»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡ, ΡΡΠΎ ΡΡΠΎΠΈΡ Π·Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ; ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΄Π»Ρ i80x86 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅:
- TASM — Borland Turbo Assembler — ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ
- TLINK — Borland Turbo Linker — ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ²ΡΠ·Π΅ΠΉ ( ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ )
ΠΡΠ»ΠΈ Π±ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ, ΡΠΎ Tasm 2.0.
ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π½Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΡΠΎΠΊΡ «Hello world!» Π½Π° ΡΠΊΡΠ°Π½.
Π€Π°ΠΉΠ» sample.asm
.model small ; ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ .stack 100h ; Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠ΅ΠΊΠ° .data ; ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ HelloMsg DB "Hello World!",13,10,"$" .code ; ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° mov ax,@DATA ; ΠΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΠΌ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ AX mov ds,ax ; Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ° DS Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ mov ah,09h ; DOS ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½ mov dx,offset HelloMsg ; ΠΠ°Π΄Π°ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΡΠ°Π»Ρ ΡΡΡΠΎΠΊΠΈ int 21h ; ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΡΠΎΠΊΡ mov ax,4C00h ; DOS ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ int 21h ; ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ end
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ: ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΈ Π΅ΡΡΡ Π΅ΡΡ ΡΡΠ΅ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° .model small Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ΄Π΅Π»Ρ small — ΡΡΠΎ 1 ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, 1 ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠ΅ΠΊΠ° Ρ.Π΅. Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΡΠ΅ΠΊ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅. ΠΡΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: tiny, medium, compact. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° .stack 100h Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ°. Π‘ΡΠ΅ΠΊ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΅Ρ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅ΠΊ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΡ
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ»Π°Π³ΠΎΠ² FLAGS, ΡΠ΅Π³ΠΈΡΡΡΠ° CS ΠΈ
ΡΠ΅Π³ΠΈΡΡΡΠ° IP ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΡΡΠ΅ΠΊΠ΅. ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΠΏΠΎΡΠΎΠΌ
ΠΈΠ΄ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΈΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
- Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² FLAGS ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ.
- Π Π΅Π³ΠΈΡΡΡ CS (Code Segment) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°.
- Π Π΅Π³ΠΈΡΡΡ IP (Instruction Pointer) — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ (ΠΠ΄ΡΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° CS).
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° .data ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°
Π΄Π°Π½Π½ΡΡ
Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ «ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅» Ρ.Π΅. ΠΈΠ΄ΡΡ
ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅
Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΡΠ»Π΅ .data ΠΈΠ΄ΡΡ ΡΡΡΠΎΠΊΠ°
HelloMsg DB «Hello World!»,13,10,»$»
ΠΠ΄Π΅ΡΡ HelloMsg — ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°ΡΠ°Π»Ρ ΡΡΡΠΎΠΊΠΈ «Hello World!» (Π±Π΅Π·
ΠΊΠ°Π²ΡΡΠ΅ΠΊ). Π’ΠΎ Π΅ΡΡΡ ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°
Π½Π°ΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB (Define Byte) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΡ
ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎ-Π±Π°ΠΉΡΠ½ΠΎ. 13,10 — ΠΊΠΎΠ΄Ρ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈ ΠΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ, Π°
ΡΠΈΠΌΠ²ΠΎΠ» $ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ DOS
ΡΡΠ½ΠΊΡΠΈΠΈ 09h. ΠΡΠ°ΠΊ, Π½Π°ΡΠ° ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ
Π² ΠΏΠ°ΠΌΡΡΠΈ 15 Π±Π°ΠΉΡ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° .code ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° (CS — Code Segment) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.
Π Π°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ mov.
mov <ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ>, <ΠΈΡΡΠΎΡΠ½ΠΈΠΊ>
ΠΠΎΠΌΠ°Π½Π΄Π° mov — ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ. ΠΠ½Π° ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π² ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ. ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡ-ΡΠ΅Π³ΠΈΡΡΡ, ΡΠ΅Π³ΠΈΡΡΡ-ΠΏΠ°ΠΌΡΡΡ, ΠΏΠ°ΠΌΡΡΡ-ΡΠ΅Π³ΠΈΡΡΡ, Π° Π²ΠΎΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΠΏΠ°ΠΌΡΡΡ-ΠΏΠ°ΠΌΡΡΡ Π½Π΅Ρ Ρ.Π΅. Π²ΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ
Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
@DATA Π² ΡΠ΅Π³ΠΈΡΡΡ DS (Data
Segment). ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅Ρ Π² ΡΡΠΎΡ
ΡΠ΅Π³ΠΈΡΡΡ Π½Π΅Π»ΡΠ·Ρ — ΡΠ°ΠΊΠΎΠ²Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°,
ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡ AX. Π AX ΠΌΡ
Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°
mov ax,@DATA
Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° AX Π² ΡΠ΅Π³ΠΈΡΡΡ DS.
mov ds, ax
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡ DS Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎ Π°Π΄ΡΠ΅ΡΡ DS:0000h Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» H. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°Ρ ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡΡ .
ΠΠ΄ΡΠ΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ <Π‘Π΅Π³ΠΌΠ΅Π½Ρ>:<Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅>, Π³Π΄Π΅ Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΡΡΠΎ 2 Π±Π°ΠΉΡΠ° ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ — 2 Π±Π°ΠΉΡΠ°. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ 4 Π±Π°ΠΉΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ:
mov ah,09h
mov dx,offset HelloMsg
int 21h
Π’ΡΡ ΠΌΡ Π² ΡΠ΅Π³ΠΈΡΡΡ AH Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ 09h — Π½ΠΎΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ 21-Π³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠΊΡΠ°Π½.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΌΡ Π² ΡΠ΅Π³ΠΈΡΡΡ DX Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π°Π΄ΡΠ΅Ρ(ΡΠΌΡΡΠ΅Π½ΠΈΠ΅) ΠΊ Π½Π°ΡΠ°Π»Ρ Π½Π°ΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ 21h — ΡΡΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ DOS. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ — ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ DOS, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½.
Π£ Π²Π°Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π ΠΏΠΎΡΠ΅ΠΌΡ
ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ 09h Π² ΡΠ΅Π³ΠΈΡΡΡ AH ?
Π ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π²
ΡΠ΅Π³ΠΈΡΡΡ DX ?
ΠΡΠ²Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ: Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π½ΡΠΆΠ½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ
ΡΡΠ½ΠΊΡΠΈΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² help’Π΅.
ΠΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅:
mov ax,4C00h
int 21h
end
mov ax,4C00h — ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡ AX. Π€ΡΠ½ΠΊΡΠΈΡ 4C00h — Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
int 21h — Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΠΌ)
end — ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΠ»Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ end ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ π
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΠΎ Π²Ρ Π³Π΅ΡΠΎΠΉ!
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
[1]. ΠΠ°ΠΉΠΊΠΎ Π.Π. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΄Π»Ρ IBM PC: — Π.: «ΠΠΈΠ·Π½Π΅Ρ-ΠΠ½ΡΠΎΡΠΌ», «Π‘ΠΈΡΠΈΠ½» 1999 Π³. — 212 Ρ.
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ-EQU Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠΎ? — CodeRoad
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅:
section .data
sa db βabxdefghxlβ,0
la EQU $ - sa
sb db βabcdexghilβ,0
section .text
ΠΠ°ΠΊ Ρ Π²ΠΈΠ΄Π΅Π» Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ Π΄Π΅Π»Π°Ρ mov ecx, la-ΡΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΈΡΠ»ΠΎ 11 Π² ECX.
Π― Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΈΡΠ»ΠΎ abxdefghxl
Π½Π΅ ΡΠ°Π²Π½ΠΎ 10. ΠΡ ΡΠΎΠΆΠ΅ ΡΡΠΈΡΠ°Π΅ΠΌ 0?
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΡΡΠΎΡΠ½ΠΈΠΊ Adam Sh Β Β 24 ΠΌΠ°ΡΡΠ° 2012 Π² 11:30
2 ΠΎΡΠ²Π΅ΡΠ°
- Assembly 8086 EQU Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ EQU Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ (8086). abc EQU xyz ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ EQU Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ abc, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ xyz, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ xyz, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Ρ. Π΄.? ΡΠΎ Π΅ΡΡΡ ΠΌΠΎΠ³Ρ Π»ΠΈ Ρ ΠΏΠΈΡΠ°ΡΡ? varA EQU [bp+4] mov ax,…
- ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ sysTime Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
Ρ ΠΈΠ·ΡΡΠ°Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (Nasm, Linux, Ubuntu 16.4, x86_64) ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° sys_time (mov eax, 13). section .bss time: resb 30; section .data msg: db The Time is:; msgLen: equ $-msg; blank: db 0x0a; blankLen: equ $-blank; section .text global _start: _start: mov eax, 13; mov…
2
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ sa
Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0x400
. ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ 10 ( abxdefghxl
) ΠΏΠ»ΡΡ 1 ( 0
Π² ΠΊΠΎΠ½ΡΠ΅ ) Π, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, la
wwould start at 0x40B
. $ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ/Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, $-sa
= 0xB
ΠΈΠ»ΠΈ 11
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Pavan Manjunath Β Β 24 ΠΌΠ°ΡΡΠ° 2012 Π² 11:39
1
$ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΊΡΡΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ «sa», Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ $-sa ΡΠ°Π²Π½ΠΎ 11. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² assembly Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ «string», «sa»-ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΠΎΡ Π±Π°ΠΉΡΠΎΠ².
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ville Krumlinde Β Β 24 ΠΌΠ°ΡΡΠ° 2012 Π² 11:37
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠΎΡΡΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Π½Π΅ ELF, ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Ρ. Π΄.), ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
Π― Ρ ΠΎΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ: .data .org 0 .equ foo, 42 .asciz foo label: .long 0xffffffff .long 0x12345678 .byte foo .long label .long bar .equ bar,…
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ avr: #define ΠΏΡΠΎΡΠΈΠ² .equ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅?
ΠΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° avr-c #define baudrate 9600 ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° avr-asm .equ BAUD = 9600 ??
Π§ΡΠΎ EQU Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅?
Π― ΠΏΡΡΠ°ΡΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΡΡΠ°ΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ DOS. IDATE EQU I/1/8/0 Date : MM/DD/YY ITIME EQU I/9/8/0 Time : HH:MM:SS IUSER EQU I/17/6/0 User ID : XXX999 ITERM EQU…
Assembly 8086 EQU Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ EQU Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ (8086). abc EQU xyz ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ EQU Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ abc, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ xyz, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ…
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ sysTime Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
Ρ ΠΈΠ·ΡΡΠ°Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (Nasm, Linux, Ubuntu 16.4, x86_64) ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° sys_time (mov eax, 13). section .bss time: resb 30; section .data msg: db The Time is:; msgLen: equ…
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ EQU Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π² MASM 5.10
Π― ΠΏΡΡΠ°ΡΡΡ ΡΠ°Π·Π±ΠΈΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΠΉΠ» .ASM Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΎΡΡΠ°Π²ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² main.asm. ΠΡΠΎ ΠΈΠ³ΡΠ°,ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π°Π΄Π΅ΡΠ»ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ Π²Π²ΠΎΠ΄Π° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π° input.asm,…
ΠΠΊΡΠΏΡΠ΅ΡΡ-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ EQU
Π― ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π² ARM assembly Π² DS-5 5.28, Π½Π°ΡΠ΅Π»ΠΈΠ²Π°ΡΡΡ Π½Π° cortex-a8 Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ Π½Π΅ΠΎΠ½ΠΎΠΌ. ΠΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ EQU, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ M EQU 5 ΡΠΎΠ³Π΄Π° Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² rest…
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «000000q»?
Π― ΠΈΠ·ΡΡΠ°Ρ x86_64 Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ( yasm ) Ρ ΡΡΠΈΠΌ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠΌ. Π’Π°ΠΌ Ρ Π²ΡΡΡΠ΅ΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ»Π°Π³ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ: O_RDONLY equ 000000q O_WRONLY equ 000001q O_RDWR equ 000002q ΠΠΎΠΏΡΠΎΡ Π²…
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ L EQU 0AH ΠΈ T EQU 09H Π² assembly?
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ,ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅(L Equ 0AH ΠΈ T equ 09h) Π² assembly, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°?
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π»ΠΈ EQU Π² 68K ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ?
Π― Π΄Π΅Π»Π°Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π³Π΄Π΅ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΠΎΠ½Π° Π³ΠΎΠ²ΠΎΡΠΈΡ C EQU 4, Ρ Π·Π½Π°Ρ, ΡΡΠΎ EQU ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4 C, Π½ΠΎ ΡΡΠΎ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΡ?
Atmel AVR Assembler
Atmel AVR AssemblerΠ‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΊΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ².
Π‘ΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 120 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠ±Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΌΠ΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠΌΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ. ΠΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΌΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΡΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΡ ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΡΠΎΡΠΌ:
[ΠΌΠ΅ΡΠΊΠ°:] Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° [ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ] [ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ]
[ΠΌΠ΅ΡΠΊΠ°:] ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ [ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ] [ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ]
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΎΡΠΌΡ:
; [Π’Π΅ΠΊΡΡ]
ΠΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. Π’Π΅ΠΊΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ (;) ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠ΅ΡΠΊΠΈ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΡΠΈΠΌΠ΅ΡΡ:
label:ββββ .EQU var1=100 ; Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ var1 ΡΠ°Π²Π½ΡΠΌ 100 (ΠΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°)
ββββββββββ .EQU var2=200 ; Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ var2 ΡΠ°Π²Π½ΡΠΌ 200test:βββββ rjmp testββββ ; ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» (ΠΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ)
ββββββββββββββββββββββββ ; Π‘ΡΡΠΎΠΊΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌββββββββββββββββββββββββ ; ΠΡΡ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΎΠ±Ρ ΠΌΠ΅ΡΠΊΠΈ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΡΡΡΠΎΠΊΠΈ.
βΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AVR
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AVR, Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² AVR Data Book.
β
ΠΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Π€Π»Π°Π³ΠΈ | Π¦ΠΈΠΊΠ»Ρ |
ADDβ | Rd,Rrβ | Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | Rd = Rd + Rrβ | Z,C,N,V,H,Sβ | 1 |
ADC | Rd,Rr | Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ | Rd = Rd + Rr + C | Z,C,N,V,H,S | 1 |
SUB | Rd,Rr | ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | Rd = Rd — Rr | Z,C,N,V,H,S | 1 |
SUBI | Rd,K8 | ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ | Rd = Rd — K8 | Z,C,N,V,H,S | 1 |
SBC | Rd,Rr | ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ | Rd = Rd — Rr - C | Z,C,N,V,H,S | 1 |
SBCI | Rd,K8 | ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ | Rd = Rd — K8 - C | Z,C,N,V,H,S | 1 |
AND | Rd,Rr | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π | Rd = Rd β₯ Rr | Z,N,V,Sβ | 1 |
ANDI | Rd,K8 | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ | Rd = Rd β₯ K8 | Z,N,V,S | 1 |
OR | Rd,Rr | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ | Rd = Rd V Rr | Z,N,V,S | 1 |
ORI | Rd,K8 | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ | Rd = Rd V K8 | Z,N,V,S | 1 |
EOR | Rd,Rr | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ | Rd = Rd EOR Rr | Z,N,V,S | 1 |
COM | Rd | ΠΠΎΠ±ΠΈΡΠ½Π°Ρ ΠΠ½Π²Π΅ΡΡΠΈΡ | Rd = $FF — Rd | Z,C,N,V,S | 1 |
NEG | Rd | ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠ° (ΠΠΎΠΏ. ΠΊΠΎΠ΄) | Rd = $00 — Rd | Z,C,N,V,H,S | 1 |
SBR | Rd,K8 | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡ (Π±ΠΈΡΡ) Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ | Rd = Rd V K8 | Z,C,N,V,S | 1 |
CBR | Rd,K8 | Π‘Π±ΡΠΎΡΠΈΡΡ Π±ΠΈΡ (Π±ΠΈΡΡ) Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ | Rd = Rd β₯ ($FF — K8) | Z,C,N,V,S | 1 |
INC | Rd | ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° | Rd = Rd + 1 | Z,N,V,S | 1 |
DEC | Rd | ΠΠ΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° | Rd = Rd -1 | Z,N,V,S | 1 |
TST | Rd | ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½ΠΎΠ»Ρ Π»ΠΈΠ±ΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ | Rd = Rd β₯ Rd | Z,C,N,V,S | 1 |
CLR | Rd | ΠΡΠΈΡΡΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡ | Rd = 0 | Z,C,N,V,S | 1 |
SER | Rd | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡ | Rd = $FF | None | 1 |
ADIW | Rdl,K6 | Π‘Π»ΠΎΠΆΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΡΠ»ΠΎΠ²ΠΎ | Rdh:Rdl = Rdh:Rdl + K6β | Z,C,N,V,S | 2 |
SBIW | Rdl,K6 | ΠΡΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΠ· ΡΠ»ΠΎΠ²Π° | Rdh:Rdl = Rdh:Rdl — K 6 | Z,C,N,V,S | 2 |
MUL | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» Π±Π΅Π· Π·Π½Π°ΠΊΠ° | R1:R0 = Rd * Rr | Z,C | 2 |
MULS | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ | R1:R0 = Rd * Rr | Z,C | 2 |
MULSU | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠΈΡΠ»ΠΎΠΌ Π±Π΅Π· Π·Π½Π°ΠΊΠ° | R1:R0 = Rd * Rr | Z,C | 2 |
FMUL | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΠΎΠ±Π½ΡΡ ΡΠΈΡΠ΅Π» Π±Π΅Π· Π·Π½Π°ΠΊΠ° | R1:R0 = (Rd * Rr) << 1 | Z,C | 2 |
FMULS | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΠΎΠ±Π½ΡΡ ΡΠΈΡΠ΅Π» ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ | R1:R0 = (Rd *Rr) << 1 | Z,C | 2 |
FMULSU | Rd,Rr | Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠΈΡΠ»ΠΎΠΌ Π±Π΅Π· Π·Π½Π°ΠΊΠ° | R1:R0 = (Rd * Rr) << 1 | Z,C | 2 |
β
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ
ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Π€Π»Π°Π³ΠΈ | Π¦ΠΈΠΊΠ»Ρ |
RJMP | k | ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ | PC = PC + k +1 | None | 2 |
IJMP | ΠΠ΅Ρ | ΠΠΎΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° (Z) | PC = Z | None | 2 |
EIJMP | ΠΠ΅Ρ | Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° (Z) | STACK = PC+1, PC(15:0) = Z, PC(21:16) = EIND | None | 2 |
JMP | k | ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ | PC = k | None | 3 |
RCALL | k | ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ | STACK = PC+1, PC = PC + k + 1 | None | 3/4* |
ICALL | ΠΠ΅Ρ | ΠΠΎΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² (Z) | STACK = PC+1, PC = Zβ | None | 3/4* |
EICALL | ΠΠ΅Ρ | Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² (Z) | STACK = PC+1, PC(15:0) = Z, PC(21:16) =EIND | None | 4* |
CALL | k | ΠΡΠ·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ | STACK = PC+2, PC = k | None | 4/5* |
RET | ΠΠ΅Ρ | ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ | PC = STACK | None | 4/5* |
RETI | ΠΠ΅Ρ | ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ | PC = STACK | I | 4/5* |
CPSE | Rd,Rr | Π‘ΡΠ°Π²Π½ΠΈΡΡ, ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½Ρβ | if (Rd ==Rr) PC = PC 2 or 3 | None | 1/2/3 |
CP | Rd,Rr | Π‘ΡΠ°Π²Π½ΠΈΡΡ | Rd -Rr | Z,C,N,V,H,S | 1 |
CPC | Rd,Rr | Π‘ΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ | Rd — Rr — C | Z,C,N,V,H,S | 1 |
CPI | Rd,K8 | Π‘ΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ | Rd — K | Z,C,N,V,H,S | 1 |
SBRC | Rr,b | ΠΡΠΎΠΏΡΡΡΠΈΡΡ Π΅ΡΠ»ΠΈ Π±ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΎΡΠΈΡΠ΅Π½ | if(Rr(b)==0) PC = PC + 2 or 3 | None | 1/2/3 |
SBRS | Rr,b | ΠΡΠΎΠΏΡΡΡΠΈΡΡ Π΅ΡΠ»ΠΈ Π±ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(Rr(b)==1) PC = PC + 2 or 3 | None | 1/2/3 |
SBIC | P,b | ΠΡΠΎΠΏΡΡΡΠΈΡΡ Π΅ΡΠ»ΠΈ Π±ΠΈΡ Π² ΠΏΠΎΡΡΡ ΠΎΡΠΈΡΠ΅Π½ | if(I/O(P,b)==0) PC = PC + 2 or 3 | None | 1/2/3 |
SBIS | P,b | ΠΡΠΎΠΏΡΡΡΠΈΡΡ Π΅ΡΠ»ΠΈ Π±ΠΈΡ Π² ΠΏΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(I/O(P,b)==1) PC = PC + 2 or 3 | None | 1/2/3 |
BRBC | s,k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ Π² SREG ΠΎΡΠΈΡΠ΅Π½ | if(SREG(s)==0) PC = PC + k + 1 | None | 1/2 |
BRBS | s,k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ Π² SREG ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(SREG(s)==1) PC = PC + k + 1 | None | 1/2 |
BREQ | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ | if(Z==1) PC = PC + k + 1 | None | 1/2 |
BRNE | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ°Π²Π½ΠΎ | if(Z==0) PC = PC + k + 1 | None | 1/2 |
BRCS | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(C==1) PC = PC + k + 1 | None | 1/2 |
BRCC | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΎΡΠΈΡΠ΅Π½ | if(C==0) PC = PC + k + 1 | None | 1/2 |
BRSH | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ | if(C==0) PC = PC + k + 1 | None | 1/2 |
BRLO | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ | if(C==1) PC = PC + k + 1 | None | 1/2 |
BRMI | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΌΠΈΠ½ΡΡ | if(N==1) PC = PC + k + 1 | None | 1/2 |
BRPL | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΏΠ»ΡΡ | if(N==0) PC = PC + k + 1 | None | 1/2 |
BRGE | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ (ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ) | if(S==0) PC = PC + k + 1 | None | 1/2 |
BRLT | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ (ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ) | if(S==1) PC = PC + k + 1 | None | 1/2 |
BRHS | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(H==1) PC = PC + k + 1 | None | 1/2 |
BRHC | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΎΡΠΈΡΠ΅Π½ | if(H==0) PC = PC + k + 1 | None | 1/2 |
BRTS | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ T ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(T==1) PC = PC + k + 1 | None | 1/2 |
BRTC | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ T ΠΎΡΠΈΡΠ΅Π½ | if(T==0) PC = PC + k + 1 | None | 1/2 |
BRVS | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ | if(V==1) PC = PC + k + 1 | None | 1/2 |
BRVC | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΡΠ΅Π½ | if(V==0) PC = PC + k + 1 | None | 1/2 |
BRIE | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ | if(I==1) PC = PC + k + 1 | None | 1/2 |
BRID | k | ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ | if(I==0) PC = PC + k + 1 | None | 1/2 |
* ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΎΠ² ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΈ Π½Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΠΠ£. ΠΠ»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ CALL, ICALL, EICALL, RCALL, RET ΠΈ RETI, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΏΠ»ΡΡ ΠΏΠΎ Π΄Π²Π° ΡΠΈΠΊΠ»Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ Ρ PC ΠΌΠ΅Π½ΡΡΠΈΠΌ 16 Π±ΠΈΡ (128KB ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ). ΠΠ»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ²ΡΡΠ΅ 128KB , Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΠΏΠ»ΡΡ ΠΏΠΎ ΡΡΠΈ ΡΠΈΠΊΠ»Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅.
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Π€Π»Π°Π³ΠΈ | Π¦ΠΈΠΊΠ»Ρ |
MOV | Rd,Rr | Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡ | Rd = Rr | None | 1 |
MOVW | Rd,Rr | Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² | Rd+1:Rd = Rr+1:Rr, r,d even | None | 1 |
LDI | Rd,K8 | ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ | Rd = K | None | 1 |
LDS | Rd,k | ΠΡΡΠΌΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° | Rd = (k) | None | 2* |
LD | Rd,X | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° | Rd = (X) | None | 2* |
LD | Rd,X+ | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Rd = (X), X=X+1 | None | 2* |
LD | Rd,-X | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | X=X-1, Rd = (X) | None | 2* |
LD | Rd,Y | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° | Rd = (Y) | None | 2* |
LD | Rd,Y+ | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Rd = (Y), Y=Y+1 | None | 2* |
LD | Rd,-Y | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Y=Y-1, Rd = (Y) | None | 2* |
LDD | Rd,Y+q | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ | Rd = (Y+q) | None | 2* |
LD | Rd,Z | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° | Rd = (Z) | None | 2* |
LD | Rd,Z+ | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Rd = (Z), Z=Z+1 | None | 2* |
LD | Rd,-Z | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Z=Z-1, Rd = (Z) | None | 2* |
LDD | Rd,Z+q | ΠΠΎΡΠ²Π΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ | Rd = (Z+q) | None | 2* |
STS | k,Rr | ΠΡΡΠΌΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ | (k) = Rr | None | 2* |
ST | X,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ | (X) = Rr | None | 2* |
ST | X+,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | (X) = Rr, X=X+1 | None | 2* |
ST | -X,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | X=X-1, (X)=Rr | None | 2* |
ST | Y,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ | (Y) = Rr | None | 2* |
ST | Y+,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | (Y) = Rr, Y=Y+1 | None | 2 |
ST | -Y,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Y=Y-1, (Y) = Rr | None | 2 |
ST | Y+q,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ | (Y+q) = Rr | None | 2 |
ST | Z,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ | (Z) = Rr | None | 2 |
ST | Z+,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | (Z) = Rr, Z=Z+1 | None | 2 |
ST | -Z,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅-Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Z=Z-1, (Z) = Rr | None | 2 |
ST | Z+q,Rr | ΠΠΎΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ | (Z+q) = Rr | None | 2 |
LPM | ΠΠ΅Ρ | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | R0 = (Z) | None | 3 |
LPM | Rd,Z | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | Rd = (Z) | None | 3 |
LPM | Rd,Z+ | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Rd = (Z), Z=Z+1 | None | 3 |
ELPM | ΠΠ΅Ρ | Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | R0 = (RAMPZ:Z) | None | 3 |
ELPM | Rd,Z | Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | Rd = (RAMPZ:Z) | None | 3 |
ELPM | Rd,Z+ | Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΡΡ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ | Rd = (RAMPZ:Z), Z = Z+1 | None | 3 |
SPM | ΠΠ΅Ρ | Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | (Z) = R1:R0 | None | — |
ESPM | ΠΠ΅Ρ | Π Π°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ | (RAMPZ:Z) = R1:R0 | None | — |
IN | Rd,P | Π§ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° | Rd = P | None | 1 |
OUT | P,Rr | ΠΠ°ΠΏΠΈΡΡ Π² ΠΏΠΎΡΡ | P = Rr | None | 1 |
PUSH | Rr | ΠΠ°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° Π² ΡΡΠ΅ΠΊ | STACK = Rr | None | 2 |
POP | Rd | ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈΠ· ΡΡΠ΅ΠΊΠ° | Rd = STACK | None | 2 |
* ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΎΠ² ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΈ Π½Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΠΠ£. ΠΠ»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ LD, ST, LDD, STD, LDS, STS, PUSH ΠΈ POP, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΊΠ» ΠΏΠ»ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ
ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | Π€Π»Π°Π³ΠΈ | Π¦ΠΈΠΊΠ»Ρ |
LSL | Rd | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ | Rd(n+1)=Rd(n), Rd(0)=0, C=Rd(7) | Z,C,N,V,H,S | 1 |
LSR | Rd | ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ | Rd(n)=Rd(n+1), Rd(7)=0, C=Rd(0) | Z,C,N,V,S | 1 |
ROL | Rd | Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ ΡΠ΅ΡΠ΅Π· C | Rd(0)=C, Rd(n+1)=Rd(n), C=Rd(7) | Z,C,N,V,H,S | 1 |
ROR | Rd | Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ ΡΠ΅ΡΠ΅Π· C | Rd(7)=C, Rd(n)=Rd(n+1), C=Rd(0) | Z,C,N,V,S | 1 |
ASR | Rd | ΠΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ | Rd(n)=Rd(n+1), n=0,…,6 | Z,C,N,V,S | 1 |
SWAP | Rd | ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΡΠ°Π΄ | Rd(3..0) = Rd(7..4), Rd(7..4) = Rd(3..0) | None | 1 |
BSETβ | s | Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»Π°Π³Π° | SREG(s) = 1 | SREG(s) | 1 |
BCLR | s | ΠΡΠΈΡΡΠΊΠ° ΡΠ»Π°Π³Π° | SREG(s) = 0 | SREG(s) | 1 |
SBI | P,b | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡ Π² ΠΏΠΎΡΡΡ | I/O(P,b) = 1 | None | 2 |
CBI | P,b | ΠΡΠΈΡΡΠΈΡΡ Π±ΠΈΡ Π² ΠΏΠΎΡΡΡ | I/O(P,b) = 0 | None | 2 |
BST | Rr,b | Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π±ΠΈΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° Π² T | T = Rr(b) | T | 1 |
BLD | Rd,b | ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π±ΠΈΡ ΠΈΠ· T Π² ΡΠ΅Π³ΠΈΡΡΡ | Rd(b) = T | None | 1 |
SEC | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | C =1 | C | 1 |
CLC | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | C = 0 | C | 1 |
SEN | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° | N = 1 | N | 1 |
CLN | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° | N = 0 | N | 1 |
SEZ | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ Π½ΡΠ»Ρ | Z = 1 | Z | 1 |
CLZ | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ Π½ΡΠ»Ρ | Z = 0 | Z | 1 |
SEI | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ | I = 1 | I | 1 |
CLI | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ | I = 0 | I | 1 |
SES | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ | S = 1 | S | 1 |
CLN | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ | S = 0 | S | 1 |
SEV | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ | V = 1 | V | 1 |
CLV | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ | V = 0 | V | 1 |
SET | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ T | T = 1 | T | 1 |
CLT | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ T | T = 0 | T | 1 |
SEH | ΠΠ΅Ρ | Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°Π³ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | H = 1 | H | 1 |
CLH | ΠΠ΅Ρ | ΠΡΠΈΡΡΠΈΡΡ ΡΠ»Π°Π³ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° | H = 0 | H | 1 |
NOP | ΠΠ΅Ρ | ΠΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ | ΠΠ΅Ρ | None | 1 |
SLEEP | ΠΠ΅Ρ | Π‘ΠΏΠ°ΡΡ (ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅) | Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ | None | 1 |
WDR | ΠΠ΅Ρ | Π‘Π±ΡΠΎΡ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° | Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ | None | 1 |
β
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΠΊΠΈΡ Π²ΠΈΠ΄ΠΎΠ²:
Rd: Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ (ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ) ΡΠ΅Π³ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
Rr: ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
b: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (3 Π±ΠΈΡΠ°), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
s: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (3 Π±ΠΈΡΠ°), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
P: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (5-6 Π±ΠΈΡ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
K6; ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (6 Π±ΠΈΡ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
K8: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (8 Π±ΠΈΡ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
k: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
q: ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° (6 Π±ΠΈΡ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Rdl:β R24, R26, R28, R30. ΠΠ»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ADIW ΠΈ SBIW
X,Y,Z: Π Π΅Π³ΠΈΡΡΡΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ (X=R27:R26, Y=R29:R28, Z=R31:R30)
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΄
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ². ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π½Π΅
ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²
ΠΊΠΎΠ΄. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ
Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ
Ρ.Π΄. Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π²
ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅.
β
ΠΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ.
BYTE - ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡΡ Π² ΠΠΠ£
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° BYTE ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ Π±Π°ΠΉΡΡ Π² ΠΠΠ£. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° BYTE Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠ΅Π½Π° ΠΌΠ΅ΡΠΊΠΎΠΉ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±Π°ΠΉΡ. ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ (ΡΠΌΠΎΡΡΠ΅ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ CSEG ΠΈ DSEG). ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π°ΠΉΡΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΠΠ’ΠΠ: .BYTE Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ:
.DSEG
var1:βββ .BYTE 1βββββββββββ ;
ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ 1 Π±Π°ΠΉΡ Π΄Π»Ρ var1
table:ββ .BYTE tab_sizeββββ ; ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ
tab_size Π±Π°ΠΉΡ
.CSEG
ββββββββ ldi r30,low(var1)β ; ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ
ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Z
ββββββββ ldi r31,high(var1) ; ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ
ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Z
ββββββββ ld r1,Zβββββββββββ ;
ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ VAR1 Π² ΡΠ΅Π³ΠΈΡΡΡ 1
CSEG - ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° CSEG ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ Π½Π΅ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎ, Π° ΠΏΠΎ ΡΠ»ΠΎΠ²Π½ΠΎ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ORG ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° CSEG Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.CSEG
ΠΡΠΈΠΌΠ΅Ρ:
.DSEGββββββββββββββββββββββ ;
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
vartab: .BYTE 4ββββββββββββ ;
Π Π΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ 4 Π±Π°ΠΉΡΠ° Π² ΠΠΠ£
.CSEGββββββββββββββββββββββ ;
ΠΠ°ΡΠ°Π»ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°
const:β .DW 2ββββββββββββββ ;
Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 0x0002 Π² ΠΏΠ°ΠΌΡΡΠΈ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
βββββββ mov r1,r0ββββββββββ ;
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
DB — ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°ΠΉΡΡ Π²ΠΎ ΡΠ»ΡΡ ΠΈΠ»ΠΈ EEPROM
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ»ΠΈ Π² EEPROM. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠ΅Π½Π° ΠΌΠ΅ΡΠΊΠΎΠΉ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ°Π½Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (CSEG) ΠΈΠ»ΠΈ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ EEPROM (ESEG).
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ — ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (-128..255), ΠΈΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Π²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΡΠΎΠΌ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΠ΅ΠΊΠ°Π΅ΡΡΡ Π΄ΠΎ Π±Π°ΠΉΡΠ°, ΠΏΡΠΈΡΡΠΌ ΠΠΠ Π²ΡΠ΄Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² ΡΠ»ΠΎΠ²Π° (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ), ΠΈ Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ΡΡΡΠ½ΠΎ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΠ΅Π½ΠΎ Π΄ΠΎ Π±Π°ΠΉΡΠ° ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠ²ΠΎ ΡΠΎ ΡΡΠ°ΡΡΠΈΠΌ Π±Π°ΠΉΡΠΎΠΌ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ Π΅ΡΡ ΠΎΠ΄Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΠΠ’ΠΠ:β .DB ΡΠΏΠΈΡΠΎΠΊ_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠΈΠΌΠ΅Ρ:
.CSEG
consts: .DB 0, 255, 0b01010101, -128, 0xaa
.ESEG
const2: .DB 1,2,3
DEF - ΠΠ°Π·Π½Π°ΡΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DEF ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ. ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΉ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ. Π Π΅Π³ΠΈΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠΌΠ΅Π½. Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.DEF Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅_ΠΈΠΌΡ = Π Π΅Π³ΠΈΡΡΡ
ΠΡΠΈΠΌΠ΅Ρ:
.DEF temp=R16
.DEF ior=R0
.CSEG
βldi temp,0xf0β ; ΠΠ°Π³ΡΡΠ·ΠΈΡΡ 0xf0 Π² ΡΠ΅Π³ΠΈΡΡΡ
temp (R16)
βin ior,0x3fβ ; ΠΡΠΎΡΠΈΡΠ°ΡΡ SREG Π² ΡΠ΅Π³ΠΈΡΡΡ
ior (R0)
βeor temp,iorβ ; Π Π΅Π³ΠΈΡΡΡΡ temp ΠΈ ior
ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ
DEVICE — ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DEVICE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, Π»ΠΈΠ±ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½Ρ EEPROM ΠΏΡΠ΅Π²ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌΠΈ, ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.DEVICE AT90S1200 |AT90S2313 | AT90S2323 | AT90S2333 |
AT90S2343 | AT90S4414 | AT90S4433 | AT90S4434 | AT90S8515 |
AT90S8534 | AT90S8535 | ATtiny11 | ATtiny12 | ATtiny22 |
ATmega603 | ATmega103
ΠΡΠΈΠΌΠ΅Ρ:
.DEVICE AT90S1200β ; ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ AT90S1200
.CSEG
βββββββ push r30ββ ; ΠΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ββββββββββββββββββ ; ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
AT90S1200 Π΅Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ
DSEG — Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DSEG ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² BYTE ΠΈ ΠΌΠ΅ΡΠΎΠΊ. Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ORG ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΠΠ£. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.DSEGβ
ΠΡΠΈΠΌΠ΅Ρ:
.DSEGβββββββββββββββββββββββ ;
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
var1:β .BYTE 1ββββββββββββββ ;
Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ 1 Π±Π°ΠΉΡ Π΄Π»Ρ var1
table:β .BYTE tab_sizeββββββ ;
Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ tab_size Π±Π°ΠΉΡ.
.CSEG
βββββββ ldi r30,low(var1)βββ ; ΠΠ°Π³ΡΡΠ·ΠΈΡΡ
ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Z
βββββββ ldi r31,high(var1)ββ ; ΠΠ°Π³ΡΡΠ·ΠΈΡΡ
ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Z
βββββββ ld r1,Zβββββββββββββ ;
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ var1 Π² ΡΠ΅Π³ΠΈΡΡΡ r1
DW — ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»ΠΎΠ²Π° Π²ΠΎ ΡΠ»ΡΡ ΠΈΠ»ΠΈ EEPROM
Β
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DW ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ»ΠΈ Π² EEPROM. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DW Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠ΅Π½Π° ΠΌΠ΅ΡΠΊΠΎΠΉ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DW Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ°Π½Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (CSEG) ΠΈΠ»ΠΈ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ EEPROM (ESEG).
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ — ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (-32768..65535), ΠΈΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Π²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΡΠΎΠΌ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΠ΅ΠΊΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ»ΠΎΠ²Π°, ΠΏΡΠΈΡΠ΅ΠΌ ΠΠΠ Π²ΡΠ΄Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΠΠ’ΠΠ: .DW expressionlist
ΠΡΠΈΠΌΠ΅Ρ:
.CSEG
varlist:β .DW 0, 0xffff, 0b1001110001010101, -32768, 65535
.ESEG
eevarlst: .DW 0,0xffff,10
ENDMACRO — ΠΠΎΠ½Π΅Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ½Π΅Ρ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΈ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ MACRO.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.ENDMACROβ
ΠΡΠΈΠΌΠ΅Ρ:
.MACRO SUBI16ββββββββββββββ ; ΠΠ°ΡΠ°Π»ΠΎ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ°
βββββββ subi r16,low(@0)βββ ; ΠΡΡΠ΅ΡΡΡ
ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
βββββββ sbci r17,high(@0)ββ ; ΠΡΡΠ΅ΡΡΡ
ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
.ENDMACRO
EQU - Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° EQU ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ° ΠΌΠ΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΠ΅ΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΠΈ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.EQU ΠΌΠ΅ΡΠΊΠ° = Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ:
.EQU io_offset = 0x23
.EQU portaββββ = io_offset + 2
.CSEGββββββββββββββββ ; ΠΠ°ΡΠ°Π»ΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
βββββββ clr r2βββββββ ; ΠΡΠΈΡΡΠΈΡΡ
ΡΠ΅Π³ΠΈΡΡΡ r2
βββββββ out porta,r2β ; ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΠΎΡΡ
A
ESEG — Π‘Π΅Π³ΠΌΠ΅Π½Ρ EEPROM
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ESEG ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° EEPROM. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² EEPROM, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π‘Π΅Π³ΠΌΠ΅Π½Ρ EEPROM ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² DB, DW ΠΈ ΠΌΠ΅ΡΠΎΠΊ. Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ EEPROM ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ORG ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ EEPROM. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.ESEGβββ
ΠΡΠΈΠΌΠ΅Ρ:
.DSEGβββββββββββββββββββ ; ΠΠ°ΡΠ°Π»ΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
var1:ββ .BYTE 1βββββββββ ;
Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ 1 Π±Π°ΠΉΡ Π΄Π»Ρ var1
table:β .BYTE tab_sizeββ ; Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ
tab_size Π±Π°ΠΉΡ.
.ESEG
eevar1: .DW 0xffffβββββββ ;
ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ 1 ΡΠ»ΠΎΠ²ΠΎ Π² EEPROM
EXIT — ΠΡΠΉΡΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
ΠΡΡΡΠ΅ΡΠΈΠ² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ EXIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ (ΡΠΌ. Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ INCLUDE), ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ INCLUDE. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΠΉΠ» Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.EXIT
ΠΡΠΈΠΌΠ΅Ρ:
.EXITβ ; ΠΡΠΉΡΠΈ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
INCLUDE - ΠΠ»ΠΎΠΆΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ»
ΠΡΡΡΠ΅ΡΠΈΠ² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ INCLUDE ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠΊΠ° ΡΠ°ΠΉΠ» Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° EXIT, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΎ ΡΡΡΠΎΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ INCLUDE. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ INCLUDE.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.INCLUDE «ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°»
ΠΡΠΈΠΌΠ΅Ρ:
; ΡΠ°ΠΉΠ» iodefs.asm:
.EQU sregββ = 0x3fββββ ; Π Π΅Π³ΠΈΡΡΡ ΡΡΠ°ΡΡΡΠ°
.EQU sphigh = 0x3eββββ ; Π‘ΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ°
.EQU splowβ = 0x3dββββ ; ΠΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ°
; ΡΠ°ΠΉΠ» incdemo.asm
.INCLUDE iodefs.asmβββ ; ΠΠ»ΠΎΠΆΠΈΡΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ²
βββββββ in r0,sregββββ ; ΠΡΠΎΡΠΈΡΠ°ΡΡ
ΡΠ΅Π³ΠΈΡΡΡ ΡΡΠ°ΡΡΡΠ°
LIST - ΠΠΊΠ»ΡΡΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° LIST ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°. ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ NOLIST Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.LIST
ΠΡΠΈΠΌΠ΅Ρ:
.NOLISTβββββββββββββββ ; ΠΡΠΊΠ»ΡΡΠΈΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
.INCLUDE «macro.inc»ββ ; ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅
ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ
.INCLUDE «const.def»ββ ; ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π²
Π»ΠΈΡΡΠΈΠ½Π³Π΅
.LISTβββββββββββββββββ ; ΠΠΊΠ»ΡΡΠΈΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
LISTMAC - ΠΠΊΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅
ΠΠΎΡΠ»Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ LISTMAC ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.LISTMAC
ΠΡΠΈΠΌΠ΅Ρ:
.MACRO MACXββββββββ ; ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΌΠ°ΠΊΡΠΎΡΠ°
βββββββ addβ r0,@0β ; Π’Π΅Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°
βββββββ eorβ r1,@1β
.ENDMACROββββββββββ ; ΠΠΎΠ½Π΅Ρ
ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
.LISTMACβββββββββββ ; ΠΠΊΠ»ΡΡΠΈΡΡ
ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
βββββββ MACX r2,r1β ; ΠΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° (Π²
Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠ΅Π»ΠΎ
ΠΌΠ°ΠΊΡΠΎΡΠ°)
MACRO — ΠΠ°ΡΠ°Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°
Π‘ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ MACRO Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠΌΡ ΠΌΠ°ΠΊΡΠΎΡΠ°. ΠΡΠΈ Π²ΡΡΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΎ ΠΈΠΌΡ Π½Π° ΡΠ΅Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°. ΠΠ°ΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎ 10 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π² Π΅Π³ΠΎ ΡΠ΅Π»Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· @0-@9. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ENDMACRO.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π»ΠΈΡΡΠΈΠ½Π³ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ
ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ°, Π΄Π»Ρ
ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ LISTMAC.
ΠΠ°ΠΊΡΠΎΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ
Π·Π½Π°ΠΊΠΎΠΌ +.
β
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.MACRO ΠΌΠ°ΠΊΡΠΎΠΈΠΌΡ
ΠΡΠΈΠΌΠ΅Ρ:
.MACRO SUBI16ββββββββββββββββββ ;
ΠΠ°ΡΠ°Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
βββββββ subi @1,low(@0)ββββββββ ;
ΠΡΡΠ΅ΡΡΡ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 0 ΠΈΠ·
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 1
βββββββ sbci @2,high(@0)βββββββ ;
ΠΡΡΠ΅ΡΡΡ ΡΡΠ°ΡΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 0 ΠΈΠ·
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° 2
.ENDMACROββββββββββββββββββββββ ;
ΠΠΎΠ½Π΅Ρ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
.CSEGββββββββββββββββββββββββββ
; ΠΠ°ΡΠ°Π»ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°
βββββββ SUBI16 0x1234,r16,r17ββ ; ΠΡΡΠ΅ΡΡΡ
0x1234 ΠΈΠ· r17:r16
NOLIST - ΠΡΠΊΠ»ΡΡΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° NOLIST ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π»ΠΈΡΡΠΈΠ½Π³Π°. ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π΄Π°Π½Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ LIST Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.NOLIST
ΠΡΠΈΠΌΠ΅Ρ:
.NOLISTβββββββββββββββ ; ΠΡΠΊΠ»ΡΡΠΈΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
.INCLUDE «macro.inc»ββ ; ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅
ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ
.INCLUDE «const.def»ββ ; ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π²
Π»ΠΈΡΡΠΈΠ½Π³Π΅
.LISTβββββββββββββββββ ; ΠΠΊΠ»ΡΡΠΈΡΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³Π°
ORG - Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ORG ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡΡΡΠΈΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π²Π½ΡΠΌ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ»Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΡΡΡΠΈΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² SRAM (ΠΠΠ£), Π΄Π»Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΡΡΡΡΠΈΠΊ, Π° Π΄Π»Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° EEPROM ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² EEPROM. ΠΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΊΠ° (Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠ΅) ΡΠΎ ΠΌΠ΅ΡΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΡΡΡΡΠΈΠΊ ΠΈ ΡΡΡΡΡΠΈΠΊ EEPROM ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, Π° ΡΡΡΡΡΠΈΠΊ ΠΠΠ£ ΡΠ°Π²Π΅Π½ 32 (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°Π΄ΡΠ΅ΡΠ° 0-31 Π·Π°Π½ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ Π΄Π»Ρ ΠΠΠ£ ΠΈ EEPROM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ Π° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° - ΠΏΠΎΡΠ»ΠΎΠ²Π½ΡΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.ORG Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ:
.DSEGβββββββββββββββ ; ΠΠ°ΡΠ°Π»ΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ
.ORG 0x37βββββββββββ ; Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
Π°Π΄ΡΠ΅Ρ SRAM ΡΠ°Π²Π½ΡΠΌ 0x37
variable: .BYTE 1βββ ; ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ
Π±Π°ΠΉΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x37H
.CSEG
.ORG 0x10βββββββββββ ; Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΡΡΡΡΠΈΠΊ ΡΠ°Π²Π½ΡΠΌ 0x10
βββββββββ mov r0,r1β ; ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°
Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x10
SET - Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° SET ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΈΠΌΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΈΡΠ΅ΠΌ Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ EQU Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ SET.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
.SET ΠΈΠΌΡ = Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ:
.SET io_offset = 0x23
.SET portaββββ = io_offset + 2
.CSEGββββββββββββββββ ; ΠΠ°ΡΠ°Π»ΠΎ
ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°
βββββββ clr r2βββββββ ; ΠΡΠΈΡΡΠΈΡΡ
ΡΠ΅Π³ΠΈΡΡΡ 2
βββββββ out porta,r2β ; ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π² ΠΏΠΎΡΡ
A
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΡΡΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², Π·Π½Π°ΠΊΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ.
ΠΠΏΠ΅ΡΠ°Π½Π΄Ρ
ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ:
- ΠΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
- ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ SET
- ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ EQU
- Π§ΠΈΡΠ»Π° Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅:
- ΠΠ΅ΡΡΡΠΈΡΠ½ΠΎΠΌ (ΠΏΡΠΈΠ½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ): 10, 255
- Π¨Π΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ (Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π·Π°ΠΏΠΈΡΠΈ): 0x0a, $0a, 0xff, $ff
- ΠΠ²ΠΎΠΈΡΠ½ΠΎΠΌ: 0b00001010, 0b11111111
- ΠΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΠΎΠΌ (Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π½ΡΠ»Ρ): 010, 077
- PC — ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ° (Programm Counter)
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ (ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ). ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π·Π° ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: !
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 0,
ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 14
ΠΡΠΈΠΌΠ΅Ρ: ldi r16, !0xf0β ; Π
r16 Π·Π°Π³ΡΡΠ·ΠΈΡΡ 0x00
ΠΠΎΠ±ΠΈΡΠ½ΠΎΠ΅ ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: ~
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ΅
Π±ΠΈΡΡ ΠΏΡΠΎΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Ρ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 14
ΠΡΠΈΠΌΠ΅Ρ: ldi r16, ~0xf0β ; Π
r16 Π·Π°Π³ΡΡΠ·ΠΈΡΡ 0x0f
ΠΠΈΠ½ΡΡ
Π‘ΠΈΠΌΠ²ΠΎΠ»: —
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅
ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 14
ΠΡΠΈΠΌΠ΅Ρ: ldi r16,-2β ;
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ -2(0xfe) Π² r16
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: *
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
Π΄Π²ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 13
ΠΡΠΈΠΌΠ΅Ρ: ldi r30, label*2
ΠΠ΅Π»Π΅Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: /
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΡΡ ΡΠ°ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
Π΄Π΅Π»Π΅Π½ΠΈΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠ°Π²ΠΎΠ΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 13
ΠΡΠΈΠΌΠ΅Ρ: ldi r30, label/2
Π‘ΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: +
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΌΠΌΡ Π΄Π²ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 12
ΠΡΠΈΠΌΠ΅Ρ: ldi r30, c1+c2
ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»: —
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ
ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 12
ΠΡΠΈΠΌΠ΅Ρ: ldi r17, c1-c2
Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: <<
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΡΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ Π²Π»Π΅Π²ΠΎ Π½Π° ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ
ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π°
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 11
ΠΡΠΈΠΌΠ΅Ρ: ldi r17,
1<<bitmaskβ ; Π r17 Π·Π°Π³ΡΡΠ·ΠΈΡΡ 1
ΡΠ΄Π²ΠΈΠ½ΡΡΡΡ Π²Π»Π΅Π²ΠΎ bitmask ΡΠ°Π·
Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡΠ°Π²ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: >>
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΡΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ Π²ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ
ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π°
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 11
ΠΡΠΈΠΌΠ΅Ρ: ldi r17,
c1>>c2β ; Π r17 Π·Π°Π³ΡΡΠ·ΠΈΡΡ c1 ΡΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅
Π²ΠΏΡΠ°Π²ΠΎ c2 ΡΠ°Π·
ΠΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌ
Π‘ΠΈΠΌΠ²ΠΎΠ»: <
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΎΠ΅ (ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ
Π·Π½Π°ΠΊ), ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 10
ΠΡΠΈΠΌΠ΅Ρ: ori r18,
bitmask*(c1<c2)+1
ΠΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: <=
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΎΠ΅
(ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΠΊ), ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ
ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 10
ΠΡΠΈΠΌΠ΅Ρ: ori r18,
bitmask*(c1<=c2)+1
ΠΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ
Π‘ΠΈΠΌΠ²ΠΎΠ»: >
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΎΠ΅ (ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ
Π·Π½Π°ΠΊ), ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 10
ΠΡΠΈΠΌΠ΅Ρ: ori r18,
bitmask*(c1>c2)+1
ΠΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: >=
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΎΠ΅
(ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΠΊ), ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ
ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 10
ΠΡΠΈΠΌΠ΅Ρ: ori r18,
bitmask*(c1>=c2)+1
Π Π°Π²Π½ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: ==
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΡΠ°Π²Π½ΠΎ ΠΏΡΠ°Π²ΠΎΠΌΡ (ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΠΊ), ΠΈ 0
Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 9
ΠΡΠΈΠΌΠ΅Ρ: andi r19,
bitmask*(c1==c2)+1
ΠΠ΅ ΡΠ°Π²Π½ΠΎ
Π‘ΠΈΠΌΠ²ΠΎΠ»: !=
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π½Π΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠ°Π²ΠΎΠΌΡ (ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΠΊ),
ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 9
ΠΡΠΈΠΌΠ΅Ρ: .c2)
ΠΠΎΠ±ΠΈΡΠ½ΠΎΠ΅ ΠΠΠ
Π‘ΠΈΠΌΠ²ΠΎΠ»: |
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ
ΠΠΠ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 6
ΠΡΠΈΠΌΠ΅Ρ: ldi r18, Low(c1|c2)
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π
Π‘ΠΈΠΌΠ²ΠΎΠ»: &&
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ ΠΎΠ±Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅
ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΠΈ 0 Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 5
ΠΡΠΈΠΌΠ΅Ρ: ldi r18,
Low(c1&&c2)
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΠ
Π‘ΠΈΠΌΠ²ΠΎΠ»: ||
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 1 Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ, ΠΈ 0 Π²
ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ: 4
ΠΡΠΈΠΌΠ΅Ρ: ldi r18, Low(c1||c2)
Π€ΡΠ½ΠΊΡΠΈΠΈ
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- LOW(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- HIGH(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠΎΡΠΎΠΉ Π±Π°ΠΉΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- BYTE2(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) ΡΠΎ ΠΆΠ΅ ΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ HIGH
- BYTE3(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ΅ΡΠΈΠΉ Π±Π°ΠΉΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- BYTE4(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΡΠ²ΡΡΡΡΠΉ Π±Π°ΠΉΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- LWRD(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΠΈΡΡ 0-15 Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- HWRD(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΠΈΡΡ 16-31 Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- PAGE(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±ΠΈΡΡ 16-21 Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- EXP2(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
- LOG2(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π»ΡΡ ΡΠ°ΡΡΡ log2(Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°
ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
Π WAVRASM ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΊ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΡΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 28 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ (Π² ΡΠ²ΡΠ·ΠΈ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ MS-Windows). ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΡΠΎΠΌ ΠΎΠΊΠ½Π΅. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΡΡΠΎΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΡΠ°ΡΠ½ΠΎΠΉ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°Π½ΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅ Π² ΠΎΠΊΠ½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΠ½ΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ, ΡΠΎ ΠΎΠΊΠ½ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, ΠΈ ΠΊΡΡΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π½Π΅ ΠΎΡΠΊΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ») ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΡΡΡ.
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ (Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ), ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΎΠΌΠ΅ΡΠ°Ρ ΡΡΡΠΎΠΊ Π² ΠΎΠΊΠ½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ.
ΠΠΏΡΠΈΠΈ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ «Options».
Π ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΠΎΠ·Π°Π³Π»Π°Π²Π»Π΅Π½Π½ΠΎΠΌ «List-file extension», Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° Π»ΠΈΡΡΠΈΠ½Π³Π°, Π° Π² ΠΏΠΎΠ»Π΅ «Output-file extension» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ «Output file format» ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΌΠ°Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅Π»ΠΎΠ²ΡΠΊΠΈΠΉ). ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ AVR Studio), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ, ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ OBJ. ΠΡΠ»ΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½Ρ EEPROM ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ EEP. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΠΈ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ.
ΠΠΏΡΠΈΡ «Wrap relative jumps» Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ «Π·Π°Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ» Π°Π΄ΡΠ΅ΡΠ°. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΈΠΏΠ°Ρ Ρ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ 4Π ΡΠ»ΠΎΠ² (8Π Π±Π°ΠΉΡ), ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (rjmp) ΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (rcall) ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΏΡΠΈΡ «Save before assemble» ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ) ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΊΡΡΠ²Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΎΠΊΠ½Π°, ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π³Π°Π»ΠΎΡΠΊΡ Π² ΠΏΠΎΠ»Π΅ «Close all windows before exit».
Atmel, AVR ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠ²Π°ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΡΠΈΡΠΌΡ Atmel Corporation
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» Π ΡΡΠ»Π°Π½ Π¨ΠΈΠΌΠΊΠ΅Π²ΠΈΡ, [email protected]
ΠΠΎΠ²ΠΎΡΡΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β Β Turbo PascalΒ ΠΠ³ΡΡ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΒ Β Β Π‘ΡΡΠ°Π½Π½ΠΎΡΡΠΈ FAQ Π‘ΡΡΠ»ΠΊΠΈ Π€ΠΎΡΡΠΌ ΠΠΎΡΡΠ΅Π²Π°Ρ ΠΊΠ½ΠΈΠ³Π° Π Π°ΡΡΡΠ»ΠΊΠ° ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ ΠΠ± Π°Π²ΡΠΎΡΠ΅ ΒΒ |
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°ΒΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Borland Pascal ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊ- ΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°: DB (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°ΠΉΡ), DW (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»ΠΎΠ²ΠΎ) ΠΈ DD (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ). ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ- ΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π·Π°ΠΏΡΡΡΠΌ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DB Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅- ΡΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ -128 Π΄ΠΎ 255, ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π»ΡΠ±ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ 1 Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π°, Π° ΡΡΡΠΎΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄Ρ ASCII ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DW Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅- ΡΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ -32768 Π΄ΠΎ 65535, ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π±Π»ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΈΠΏΠ°, ΡΡΠΎ Π΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° DD Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΠ»ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ -2147483648 Π΄ΠΎ 4294967295 ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ ΡΠΈΠΏΠ°, ΡΡΠΎ Π΅ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°, Π·Π° ΠΊΠΎ- ΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»ΠΎΠ²ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ°Π½Π½ΡΠ΅, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌ DB, DW ΠΈ DD, Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΠΈ- ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΊΠΎΠ΄Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. Π§ΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈ- Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠ°ΡΠΊΠ°Π»Ρ ΡΠΈΠΏΠ° var ΠΈΠ»ΠΈ const. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² DB, DW ΠΈ DD: asm DB 00FH { 1 Π±Π°ΠΉΡ } DB 0,99 { 2 Π±Π°ΠΉΡΠ° } DB 'A' { Ord('A) } DB 'ΠΡΠΈΠΌΠ΅Ρ',0DH,OAH { ΡΡΡΠΎΠΊΠ°, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ } B.Pascal 7 & Objects/LR - 416 - DB 12,"Borland Pascal" { ΡΡΡΠΎΠΊΠ° ΠΠ°ΡΠΊΠ°Π»Ρ } DW 0FFFFH { 1 ΡΠ»ΠΎΠ²ΠΎ } DW 0,9999 { 2 ΡΠ»ΠΎΠ²Π° } DW 'A' { ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ DB 'A',0 } DW 'BA' { ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ DB 'A','B' } DW MyVar { ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ MyVar } DW MyProc { ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ MyProc } DD 0FFFFFFFH { 1 Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ } DD 0,99999999 { 2 Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΠ»ΠΎΠ²Π° } DD 'A' { ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ DB 'A',0,0,0 } DD 'DBCA' { ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ DS 'A','B','C','D' } DD MyVar { ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° MyVar } DD MyProc { ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° MyProc } end; Π Π’ΡΡΠ±ΠΎ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ DB, DW ΠΈΠ»ΠΈ DD, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ ΡΠΊΠ°Π·Π°Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π² Π±Π°ΠΉΡ, ΡΠ»ΠΎΠ²ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π’ΡΡΠ±ΠΎ ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: ByteVar DB ? WordVar DW ? . . . mov al,ByteVar mov bx,WordVar ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½- Π½ΡΡ . Π Borland Pascal Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΊΠ°. ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΠ°ΡΠΊΠ°Π»Ρ, ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ: var ByteVar: Byte; WordWat: Word; . . . asm mov al,ByteVar mov bx,WordVar end; |
ΠΠ΅ΠΊΡΠΈΡ 10. ΠΠ°ΡΡΠΈΠ²Ρ. — Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΌΠ°ΡΡΠΈΠ²Β — ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ°ΠΊ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅?
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²?
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°?
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ?
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΈΠΏΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ?
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Ρ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
1.Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ:
;ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².Π Π°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° 4 Π±Π°ΠΉΡΠ°: mas dd 1,2,3,4,5 |
2.Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡΒ dup. Π ΠΏΡΠΈΠΌΠ΅ΡΡ:
;ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 5 Π½ΡΠ»Π΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ;Π Π°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° 2 Π±Π°ΠΉΡΠ°: mas dw 5 dup (0) |
Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΡΠ΅Π»ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°.
3.Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΡΒ labelΠΈrept. ΠΠ°ΡΠ° ΡΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π°reptΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π· ΡΡΡΠΎΠΊ, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΠΈ ΡΡΡΠΎΠΊΠΎΠΉ endm. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌmas_b. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°labelΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡmas_b, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΡlabelΠ² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π° Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ β ΡΡΠΎ ΡΡΠ΅ΠΉΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²label, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ΄Π½Π° Π·Π° Π΄ΡΡΠ³ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠΏ, ΡΡΠΎ ΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅:
… n=0 … mas_b label byte mas_w label word rept 4 dw 0f1f0h endm |
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ»ΠΎΠ²Β f1f0. ΠΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠΌΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ βmas_bΠΈΠ»ΠΈmas_w.
4.Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ².
5.Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³Π° 2, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 2 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΠΈΠΊΠ»Π΅ ;prg_12_1.asm MASM MODEL small STACK 256 .data mes db 0ah,0dh,’ΠΠ°ΡΡΠΈΠ²- ‘,’$’ mas db 10 dup (?) ;ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² i db 0 .code main: mov ax,@data mov ds,ax xor ax,ax ;ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ax mov cx,10 ;Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΊΠ»Π° Π² cx mov si,0 ;ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² cx go: ;ΡΠΈΠΊΠ» ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ mov bh,i ;i Π² bh mov mas[si],bh ;Π·Π°ΠΏΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² i inc i ;ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ i inc si ;ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° loop go ;ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠΈΠΊΠ» ;Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° mov cx,10 mov si,0 mov ah,09h lea dx,mes int 21h show: mov ah,02h ;ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· al Π½Π° ΡΠΊΡΠ°Π½ mov dl,mas[si] add dl,30h ;ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π² ΡΠΈΠΌΠ²ΠΎΠ» int 21h inc si loop show exit: mov ax,4c00h ;ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΡ ΠΎΠ΄ int 21h end main ;ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ |
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π±Π΅, ΡΡΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ². Π’Π°ΠΊ, ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π‘Π°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π½Π΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ²ΠΎΠ΅ΠΌΒ βΡΠΌΡΡΠ»ΠΎΠ²ΠΎΠΌβ, ΠΈΠ»ΠΈΒ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ, ΡΠΈΠΏΠ΅. ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ΅.
ΠΡΠΈ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π½Π°Β ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Π΅Ρ ΠΎΠ± ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π΅ΠΌΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠ²Ρ ΠΈΡ ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΌΡΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΊ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡΒ ΠΈΠ½Π΄Π΅ΠΊΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΈ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π½ΠΎ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ ΡΡΠΈΠΌ Π½Π΅ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π°Π΄ΡΠ΅Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ :
ΠΡΡΡΡ ΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π» ΡΡΠ°ΠΊΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉΒ dw, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½Π° ΡΠ°Π²Π½Π°2Π±Π°ΠΉΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΊ Π°Π΄ΡΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠΈΠ±Π°Π²ΠΈΡΡ6. ΠΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½ΡΠ»Ρ.
Π’ΠΎ Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΠ΄Π΅Ρ ΠΎΒ 4-ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° β 3, Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π·Π½Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ; ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ β Π΅ΠΌΡ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΡΠ΅Ρ.
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ (Π±Π°Π·ΠΎΠ²ΡΠΉ) Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ»ΠΎΠΆΠΈΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠΈΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°) ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°:
Π±Π°Π·Π° + (ΠΈΠ½Π΄Π΅ΠΊΡ*ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°)
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ:
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΈΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌΒ β ΡΠ΅ΠΆΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ (Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ)β ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°;
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ)β ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°.
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Π ΠΏΡΠΈΠΌΠ΅ΡΡ:
mas dw 0,1,2,3,4,5 … mov si,4 ;ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° mas Π² ΡΠ΅Π³ΠΈΡΡΡ ax: mov ax,mas[si] |
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Π±Π°Π·ΠΎΠ²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌΒ β ΡΠ΅ΠΆΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈΠ· ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ(Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ), Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅;
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ)β ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°;
oΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ (ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ)β ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°.
ΠΡΠΎΡ Π²ΠΈΠ΄ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ esp/sp.
ΠΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΒ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΒ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° Π·Π½Π°ΠΊ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡΒ β*βΒ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠΉ 2, 4 ΠΈΠ»ΠΈ 8, ΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡΡΡ Π½Π° 2, 4 ΠΈΠ»ΠΈ 8, ΡΠΎ Π΅ΡΡΡΒ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π²Π½ΡΠΉ 2, 4 ΠΈΠ»ΠΈ 8 Π±Π°ΠΉΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ°ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (ΡΡΠΈΡΠ°Ρ ΠΎΡ 0). ΠΡΡΠ°ΡΠΈ ΡΠΊΠ°Π·Π°ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ i486. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°Β .486. ΠΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠ΅ΠΉΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ.386, Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΠ΅ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½ΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΈΡΡΠΈΠ½Π³ 3, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ»ΠΎΠ², ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π½ΡΠ»Π΅ΠΌ. ΠΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΈΡΡΠΈΠ½Π³ 3. ΠΡΠΎΡΠΌΠΎΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ»ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ;prg_12_2.asm MASM MODEL small STACK 256 .data ;Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ;ΡΠ΅ΠΊΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ: mes1 db ‘Π½Π΅ ΡΠ°Π²Π΅Π½ 0!$’,0ah,0dh mes2 db ‘ΡΠ°Π²Π΅Π½ 0!$’,0ah,0dh mes3 db 0ah,0dh,’ΠΠ»Π΅ΠΌΠ΅Π½Ρ $’ mas dw 2,7,0,0,1,9,3,6,0,8 ;ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² .code .486 ;ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ main: mov ax,@data mov ds,ax ;ΡΠ²ΡΠ·ΠΊΠ° ds Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ xor ax,ax ;ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ax prepare: mov cx,10 ;Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΊΠ»Π° Π² cx mov esi,0 ;ΠΈΠ½Π΄Π΅ΠΊΡ Π² esi compare: mov dx,mas[esi*2] ;ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² dx cmp dx,0 ;ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ dx c 0 je equal ;ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ not_equal: ;Π½Π΅ ΡΠ°Π²Π½ΠΎ mov ah,09h ;Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ lea dx,mes3 int 21h mov ah,02h ;Π²ΡΠ²ΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΡΠΊΡΠ°Π½ mov dx,si add dl,30h int 21h mov ah,09h lea dx,mes1 int 21h inc esi ;Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ dec cx ;ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π° jcxz exit ;cx=0? ΠΡΠ»ΠΈ Π΄Π° β Π½Π° Π²ΡΡ ΠΎΠ΄ jmp compare ;Π½Π΅Ρ β ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠΈΠΊΠ» equal: ;ΡΠ°Π²Π½ΠΎ 0 mov ah,09h ;Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ mes3 Π½Π° ΡΠΊΡΠ°Π½ lea dx,mes3 int 21h mov ah,02h mov dx,si add dl,30h int 21h mov ah,09h ;Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ mes2 Π½Π° ΡΠΊΡΠ°Π½ lea dx,mes2 int 21h inc esi ;Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ dec cx ;Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ? jcxz exit jmp compare exit: mov ax,4c00h ;ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΡ ΠΎΠ΄ int 21h end main ;ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ |
ΠΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ :
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΈΡΡΡ, ΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΒ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈΠΈ ΡΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΠ±Π°Π·ΠΎΠ²ΡΠΉ:
;ΠΏΠ΅ΡΠ΅ΡΠ»Π°ΡΡ Π±Π°ΠΉΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π°Π½Π½ΡΡ , Π°Π΄ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ebx: mov al,[ebx] |
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠ»ΠΈ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΒ ΠΏΡΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ(Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°) Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ, ΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ±ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. Π Π΅Π³ΠΈΡΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΌ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°:
add eax,mas[ebx*4] ;ΡΠ»ΠΎΠΆΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ eax Ρ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ ;ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ mas + (ebx)*4 |
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°, ΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΒ Π±Π°Π·ΠΎΠ²ΠΎ-ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ΅Π²ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΒ Π±Π°Π·ΠΎΠ²ΡΠΉ, Π° ΠΏΡΠ°Π²ΡΠΉ β ΠΊΠ°ΠΊΒ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΡΠΎ ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΌ. ΠΠΎ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ.
Β·Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²Β ebp/bpΠΈesp/spΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π°Π΄ΡΠ΅ΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ss.
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎΒ Π±Π°Π·ΠΎΠ²ΠΎ-ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡΒ Π½Π΅ Π²ΠΎΠ·Π±ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΡΠ΅ΡΠ°ΡΡ ΡΒ ΠΏΡΡΠΌΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉΒ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΄ΡΠ΅Ρ ΡΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π ΠΏΡΠΈΠΌΠ΅ΡΡ:
mov ax,mas[ebx][ecx*2] ;Π°Π΄ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΡΠ°Π²Π΅Π½ [mas+(ebx)+(ecx)*2] … sub dx,[ebx+8][ecx*4] ;Π°Π΄ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΡΠ°Π²Π΅Π½ [(ebx)+8+(ecx)*4] |
ΠΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎΒ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π»ΠΈΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°Π²Π½Π° 2, 4 ΠΈΠ»ΠΈ 8 Π±Π°ΠΉΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΡΡΠ³Π°Ρ, ΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ· ΠΏΡΡΠΈ ΡΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π»ΠΈΡΡΠΈΠ½Π³ 4). ΠΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ΠΊΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ, Π° ΡΡΠ°ΡΡΠΈΠ΅ Π΄Π²Π° Π±Π°ΠΉΡΠ° β ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, Π΄Π»Ρ Π½Π°Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ²Π΅Π»ΠΈΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 4. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ ;prg_11_3.asm MASM MODEL small ;ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ STACK 256 ;ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ° .data ;Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ N=5 ;ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° mas db 5 dup (3 dup (0)) .code ;ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° main: ;ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ mov ax,@data mov ds,ax xor ax,ax ;ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ax mov si,0 ;0 Π² si mov cx,N ;N Π² cx go: mov dl,mas[si] ;ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π°ΠΉΡ ΠΏΠΎΠ»Ρ Π² dl inc dl ;ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ dl Π½Π° 1 (ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ) mov mas[si],dl ;Π·Π°ΡΠ»Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ² add si,3 ;ΡΠ΄Π²ΠΈΠ³ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° loop go ;ΠΏΠΎΠ²ΡΠΎΡ ΡΠΈΠΊΠ»Π° mov si,0 ;ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΡΠΊΡΠ°Π½ mov cx,N show: ;Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ;ΠΏΠ΅ΡΠ²ΡΡ Π±Π°ΠΉΡ ΠΏΠΎΠ»Π΅ΠΉ mov dl,mas[si] add dl,30h mov ah,02h int 21h loop show exit: mov ax,4c00h ;ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΡ ΠΎΠ΄ int 21h end main ;ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ |
Β
Π‘Π±ΠΎΡΠΊΠ°— ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΠ? Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ Π±Π°ΠΉΡΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°?
ΠΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅:
- Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ 1, ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ
- Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΎΡΠΌΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π½Π° Π½ΠΈΡ ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ . ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΡΠ΅ΠΉ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ ΠΈ Ρ. Π.
- Π±ΡΡΠ΅ΡΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
- Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½ΡΠ»Π΅ΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ
- ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅ΡΡΠΈΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΡΠΎ, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ, ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΡΠΌ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π΄Π°Π½Π½ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ — Π°Π΄ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΡΡΠΎΠ΅Π½ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ).
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ .Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ»ΠΊΡ) ΡΡΡ ΠΌΠ΅ΡΠΊΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ .
Π£ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° .data
(ΠΈΠ»ΠΈ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°) ΡΠΊΠ°ΠΆΠ΅Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π²ΠΌΠ΅ΡΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π» Π΄Π°Π½Π½ΡΡ
Π²ΡΠ²ΠΎΠ΄Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ°.ΠΠ±ΡΡΠ½ΠΎ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎΠ±Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΠΊΠΎΠ΄Ρ, ΠΏΠΎΠ±Π»ΠΈΠ·ΠΎΡΡΠΈ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
Z80 — ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Z80 — ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°db, defb, dm ΠΈΠ»ΠΈ defm
db ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π°ΠΉΡΒ», dm — Β«ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅Β». ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π±ΡΠΊΠ²Π°Π»ΡΠ½ΡΡ
Π±Π°ΠΉΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ².ΠΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ. Π‘ΡΡΠΎΠΊΠΈ Π±Π°ΠΉΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ
ΠΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
label: equ 20
defb "ΠΡΠΎ ΡΠ΅ΠΊΡΡ", label / 2, "ΠΡΠΎ Π΅ΡΠ΅ ΡΠ΅ΠΊΡΡ", 10, 0
dw ΠΈΠ»ΠΈ defw
dw ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°Β». ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
Π±Π°ΠΉΡΠΎΠ²ΡΡ
ΡΠ»ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Z80 ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΡΡΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ:
org 0x8000
pointertable: defw sub1, sub2
sub1: sub b
ret nz
sub2: ld h, 0
ret
ds ΠΈΠ»ΠΈ defs
ds ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΒ».Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, num ΠΈ Π²Π°Π» . ΠΠ½ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ num Π±Π°ΠΉΡΠΎΠ² ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡ
Π΄Π»Ρ Π²Π°Π» . ΠΡΠ»ΠΈ val ΠΎΠΏΡΡΠ΅Π½ΠΎ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 0. ΠΡΠΈΠΌΠ΅Ρ:
Π±ΡΡΠ΅Ρ: defs 20
ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ: defs 10, 7
ΠΊΠΎΠ½Π΅Ρ
Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ «end». Π’Π°ΠΌ Π² ΡΡΠΎΠΌ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ΅, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΠΊΠΎΠ½ΡΠ΅.
org
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ΅. Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ (ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠ½Π°ΡΠ°Π»Π΅ ΡΠ΅ΠΊΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° 0. ΠΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ — org, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ Π°Π΄ΡΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ.ΠΠ° Π½Π°ΡΠ°Π»ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ. Π Π°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π±Π°ΠΉΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΡΠ°Π²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ defs. Org ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, Β«Π³Π΄Π΅Β» ΡΡΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 4 Π±Π°ΠΉΡΠ°:
23, 12, 00, 00. first_label: defw second_label
org 0x1234
second_label: defw first_label
ΠΈΡΠΊΠ°ΡΡ
ΠΡΠ΄ΠΈ Π·Π°ΠΏΡΠΎΡΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄.ΠΡΠΎ Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΠΈΡΠΊ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ incbin. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Β«ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Β».
ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠ° Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°, ΡΠ°ΠΉΠ» Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ Π½ΡΠ»ΡΠΌΠΈ.
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ
ΠΠ°ΠΊ ΠΈ Π² C (Π½ΠΎ Π±Π΅Π· ΡΠΈΠΌΠ²ΠΎΠ»Π° #), ΡΡΠ΄Π° Π²Ρ
ΠΎΠ΄ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ΅Ρ
Π·Π°ΠΌΠ΅Π½Π° Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ~ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ
ΠΈΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· escape-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ·-Π·Π° ΠΏΡΠ°Π²ΠΈΠ» ΠΊΠ°Π²ΡΡΠ΅ΠΊ. Π
ΠΏΠ΅ΡΠ²ΡΠΉ Π½Π΅ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΡΠ»Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ include ΡΡΠΈΡΠ°Π΅ΡΡΡ
Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΠ°ΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠ°Π²ΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ
ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΠ°ΡΠ°. ΠΡΠΈΠΌΠ΅Ρ:
include 'math.asm'
include -file 'Ρ "ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ" .asm-
Π²ΠΊΠ»ΡΡΠΈΡΡ zletter Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ°Π²ΡΡΠ΅ΠΊ ΠΈ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π² name.asmz
incbin
Incbin ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»Β». ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΠ±ΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ Π±ΡΡΡ Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ²ΠΎΠ΄.ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
if, else, endif
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ
ΡΡΠ»ΠΎΠ²Π½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π°.
ΠΈΠ½Π°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ°Π·. ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠ±ΡΠ°Π½,
ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ Π½Π΅ ΡΡΠΎΠ³Π°ΡΡ, Π° ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ
Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ
ΡΡΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ. ΠΡΠΈΠΌΠ΅Ρ:
org 0x8000
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ "math.asm"
, Π΅ΡΠ»ΠΈ $ <0x9000; Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°.asm Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°Π»
ld a, 3
else
ld a, 6
else
; ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ math.asm Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°Π»
ld h, 8
endif
; ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ
call math_init
ΠΌΠ°ΠΊΡΠΎΡ, endm
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄. ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΡΠΈΠΌΠ΅Ρ: callf: ΡΠ»ΠΎΡ ΠΌΠ°ΠΊΡΠΎΡΠ°, Π°Π΄ΡΠ΅Ρ
rst 0x30
ΡΠ»ΠΎΡ db
Π°Π΄ΡΠ΅Ρ DW
ΠΊΠΎΠ½Π΅Ρ
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: callf 0x8b, 0x4000
8086 Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ (ΡΠ°ΡΡΡ 3)
8086 Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ (ΡΠ°ΡΡΡ 3)8086 Π£ΡΠ΅Π±Π½ΠΈΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ (ΡΠ°ΡΡΡ 3)
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ — ΡΡΠΎ ΡΡΠ΅ΠΉΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ.ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ « var1 «, Π·Π°ΡΠ΅ΠΌ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 5A73: 235B, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ 10 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .ΠΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ : BYTE ΠΈ WORD .
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΈΠΌΡ DB Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΡ DW Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DB — ΠΎΡΡΠ°Π΅ΡΡΡ Π΄Π»Ρ 9014fine D yte. ΠΈΠΌΡ — ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ² ΠΈΠ»ΠΈ ΡΠΈΡΡ, Ρ ΠΎΡΡ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±ΡΠΊΠ²Ρ. ΠΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ (ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π°Π΄ΡΠ΅Ρ, Π½ΠΎ Π½Π΅ ΠΈΠΌΡ). Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½Π°Ρ, Π΄Π²ΠΎΠΈΡΠ½Π°Ρ ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ), ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» «? » Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. |
ΠΠ°ΠΊ Π²Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π½Π°Π΅ΡΠ΅ ΠΈΠ· , ΡΠ°ΡΡΡ 2 ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, MOV ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π² ΠΌΠ΅ΡΡΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ MOV :
ORG 100Ρ MOV AL, var1 MOV BX, var2 RET; ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. VAR1 DB 7 var2 DW 1234h |
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ F5 , ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π² ΡΠΌΡΠ»ΡΡΠΎΡ.Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ . ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ DS (ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² COM Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° DS ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈ ΡΠ΅Π³ΠΈΡΡΡ CS — ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°).
Π ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° — ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ , Π²ΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° — ΡΡΠΎ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , ΡΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° — Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ASCII .
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Β« VAR1 Β» ΠΈ Β« var1 Β» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ VAR1 — 0108h , Π° ΠΏΠΎΠ»Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ — 0B56: 0108 .
Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ var2 — 0109h , Π° ΠΏΠΎΠ»Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ — 0B56: 0109 , ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ — WORD , ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2 ΠΠΠΠ’Π . ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎ ΠΌΠ»Π°Π΄ΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ 34h Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ 12h .
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ RET ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ Π·Π½Π°Π΅Ρ, Π³Π΄Π΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅,
ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΡ
ΠΊΠ°ΠΊ
Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ 8086 (ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΈΡ
ΠΏΠΎΠ·ΠΆΠ΅).
ΠΡ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ DB :
ORG 100Ρ DB 0A0h DB 08h DB 01h DB 8Bh DB 1Eh DB 09h DB 01h DB 0C3h DB 7 DB 34h DB 12h |
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ F5 , ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡ.Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»!
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π°Π±ΠΎΡ Π±Π°ΠΉΡΠΎΠ², ΡΡΠΎΡ Π½Π°Π±ΠΎΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ , ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ , ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ.
ORG 100h — Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΊΠ°ΠΊ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄). ΠΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ
ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»
Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· 100h (256 Π±Π°ΠΉΡ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΊΠΎΠ³Π΄Π°
ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΡ
ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ .ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ .
ΠΠΎΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· 100h ? ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ
ΡΠΈΡΡΠ΅ΠΌΠ° Ρ
ΡΠ°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π² ΠΏΠ΅ΡΠ²ΡΡ
256 Π±Π°ΠΉΡΠ°Ρ
CS (ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°), ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ. Π΄.
Π₯ΠΎΡΡ ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² COM , Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ EXE ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 0000 , ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ
EXE ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ°ΡΡΠΈΠ²Ρ
ΠΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π’Π΅ΠΊΡΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ASCII (0..255).
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°:
a DB 48h, 65h, 6Ch, 6Ch, 6Fh, 00h
b DB 'Hello', 0
b ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° a , ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΠΎΠΊΠ° Π²Π½ΡΡΡΠΈ ΠΊΠ°Π²ΡΡΠ΅ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΅Π΅ Π² Π½Π°Π±ΠΎΡ Π±Π°ΠΉΡΠΎΠ². ΠΡΠΎΡ ΠΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
MOV AL, a [3]
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ BX, SI, DI, BP ,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
MOV SI, 3
MOV AL, a [SI]
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ DUP .
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ DUP :
Π½ΠΎΠΌΠ΅Ρ DUP ( Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Ρ) )
ΡΠΈΡΠ»ΠΎ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ (Π»ΡΠ±ΠΎΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ DUP Π±ΡΠ΄Π΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
c DB 5 DUP (9)
— Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:
Π² DB 9, 9, 9, 9, 9
Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ:
d DB 5 DUP (1, 2)
— Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:
Π³ DB 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DW Π²ΠΌΠ΅ΡΡΠΎ DB , Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ 255 ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ -128. DW Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
ΠΠΌΠ΅Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ LEA (ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ) ΠΈ
Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ OFFSET . ΠΠ±Π° OFFSET ΠΈ LEA ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
LEA Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π΄ΡΠ΅Ρ
ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ
Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅:
Π§ΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ ,
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ:
BYTE PTR — Π΄Π»Ρ Π±Π°ΠΉΡΠ°.
WORD PTR — Π΄Π»Ρ ΡΠ»ΠΎΠ²Π° (Π΄Π²Π° Π±Π°ΠΉΡΠ°).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
BYTE PTR [BX]; Π±Π°ΠΉΡΠΎΠ²ΡΠΉ Π΄ΠΎΡΡΡΠΏ. ΠΈΠ»ΠΈ ΠΆΠ΅ WORD PTR [BX]; ΡΠ»ΠΎΠ²ΠΎ Π΄ΠΎΡΡΡΠΏ.ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ:
b. — Π΄Π»Ρ BYTE PTR
w. — Π΄Π»Ρ WORD PTR
Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠΎΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ORG 100Ρ MOV AL, VAR1; ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ VAR1, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ² Π΅Π³ΠΎ Π² AL. LEA BX, VAR1; ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π΄ΡΠ΅Ρ VAR1 Π² BX. MOV BYTE PTR [BX], 44Ρ; ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ VAR1. MOV AL, VAR1; ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ VAR1, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ² Π΅Π³ΠΎ Π² AL. RET VAR1 DB 22Ρ ΠΠΠΠΠ¦ |
ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ OFFSET Π²ΠΌΠ΅ΡΡΠΎ LEA :
ORG 100Ρ MOV AL, VAR1; ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ VAR1, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ² Π΅Π³ΠΎ Π² AL.MOV BX, Π‘ΠΠΠ©ΠΠΠΠ VAR1; ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π΄ΡΠ΅Ρ VAR1 Π² BX. MOV BYTE PTR [BX], 44Ρ; ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ VAR1. MOV AL, VAR1; ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ VAR1, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ² Π΅Π³ΠΎ Π² AL. RET VAR1 DB 22Ρ ΠΠΠΠΠ¦ |
ΠΠ±Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠΈ ΡΡΡΠΎΠΊΠΈ:
LEA BX, VAR1
MOV BX, OFFSET VAR1
Π΄Π°ΠΆΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄: MOV BX, num
num — ΡΡΠΎ 16-Π±ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ.
Π²Π½ΡΡΡΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊ (ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΠ°ΠΌΡΡΡ): BX, SI, DI, BP !
(ΡΠΌ. ΠΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°).
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½ΠΎ ΠΎΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ (ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ). ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° EQU :
name EQU <Π»ΡΠ±ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅>
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΠΊΠΎΠ΄Ρ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ±ΡΠ°Π² Β« Variables Β» ΠΈΠ· ΠΌΠ΅Π½Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠ° Β« View Β».
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Elements ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π½Π΅Ρ ΡΡΡΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΠ±Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ:
- HEX — ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ (ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ 16).
- ΠΠΠ — Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ (ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ 2).
- OCT — Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠΉ (ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ 8).
- SIGNED — Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ (ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ 10).
- UNSIGNED — Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° (ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ 10).
- CHAR — ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π° ASCII (Π²ΡΠ΅Π³ΠΎ 256 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΎΡΡΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ Π½Π΅ΠΉ, ΠΈΠ»ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ .
ΠΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠΈΡΠ»Π° Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ
Π‘ΡΡΡΠΈΠΊΡ Β« h Β», Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΡΡΡΠΈΠΊΡ Β« b Β», Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠΉ ΡΡΡΡΠΈΠΊΡ Β« o Β», Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°
Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΡΠΈΠΊΡΠ°.Π‘ΡΡΠΎΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
‘hello world’, 0
(ΡΡΠ° ΡΡΡΠΎΠΊΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΡΠ»Π΅ΠΌ).
ΠΠ°ΡΡΠΈΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1, 2, 3, 4, 5
(ΠΌΠ°ΡΡΠΈΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ², ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠ±ΡΠ°Π½ΠΎ BYTE ΠΈΠ»ΠΈ WORD Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ).
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
5 + 2
ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΎ Π² 7 ΠΈ Ρ. Π…
<<< ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΠ°ΡΡΡ <<< >>> Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°ΡΡΡ >>>
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ REPT ΠΈ IRP
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ REPT ΠΈ IRPΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° REPT Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. REPT Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΎΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² REPT Π²Π½ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ.
REPT, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ dup
ΠΠΎΠΌΠ΅ΡΡΠΈΠ² ΡΡΠΎΡ REPT Π² ΡΠ°ΠΉΠ».Π‘Π΅Π³ΠΌΠ΅Π½Ρ DATA, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠΠΠ’ΠΠ 10 db 0 ΠΊΠΎΠ½Π΅Ρ
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ 10 Π±Π°ΠΉΡΠΎΠ² ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ db 10 dup (0) .
REPT Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ = Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0 ΠΠΠΠ’ΠΠ 10 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ db Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ + 1 ΠΊΠΎΠ½Π΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ Π±Π°ΠΉΡΠΎΠ², ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 0 .. 9.
ΠΡΠΎΡ REPT ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0 ΠΠΠΠ’ΠΠ 4 Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ db Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ + 1 ΠΊΠΎΠ½Π΅Ρ
Π Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ db 0 Π΄Π± 1 db 2 Π΄Π± 3
ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠ΅ΡΠΊΠ° Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΠ»Π° Π² REPT, ΠΈΠ½Π°ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ db Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΡΡ ββΠΆΠ΅ ΠΌΠ΅ΡΠΊΡ.
REPT Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π±Π°ΠΉΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π½ΠΎΠΌΠ΅Ρ ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ.
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0 ΠΠΠΠ’ΠΠ 4 ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ db Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ + 1 ΠΊΠΎΠ½Π΅Ρ
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ list0 db 0 list1 db 1 list2 db 2 list3 db 3
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ REPT Π²Π½ΡΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ REPT Π² ΠΌΠ°ΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ Π·Π²ΠΎΠ½ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 0 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ db Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ + 1 ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠ½Π΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ 4 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ 3
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ db 0 Π΄Π± 1 db 2 Π΄Π± 3 db 0 Π΄Π± 1 db 2
IRP Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
IRP ΠΏΠΎΡ ΠΎΠΆ Π½Π° REPT, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ IRP ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, IRP Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ 4 ΡΠ°Π·Π°. ΠΠ΄Π΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ°ΠΊΡΠΎΡ, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ IRP Π²ΠΌΠ΅ΡΡΠΎ REPT
IRP arg,db arg ΠΊΠΎΠ½Π΅Ρ
ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π»ΠΎΡΡ Π±Ρ ΠΊΠ°ΠΊ REPT
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ IRP arg, <0,1,2,3> db arg ΠΊΠΎΠ½Π΅Ρ
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅.
ΡΠΏΠΈΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΊΠΈ db 0 Π΄Π± 1 db 2 Π΄Π± 3
ΠΠ°ΠΆΠ΅ΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²Π½ΡΡΡΠΈ <>. ΠΠ΄Π½Π°ΠΊΠΎ Ρ IRP Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΡΠ΅ΠΌ Ρ REPT. REPT — ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΡΠΌΡΠ»ΠΎΠΉ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ IRP ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π½Π°Π΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΠΠ’ΠΠ
IRP arg, <5,15,8,2> db arg ΠΊΠΎΠ½Π΅Ρ
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ
Π΄Π 5 Π΄Π± 15 Π΄Π± 8 db 2
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ IRP Π²Π½ΡΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ IRP Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΠΌΠ°ΠΊΡΠΎΡ
ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡ argList IRP arg,db arg ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠ½Π΅Ρ
ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡ define , ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ REPT ΡΠΎΠΆΠ΅.
Π±Π°ΠΉΡ ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡ <0,5,8> ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ 3 ΡΠΎΠ·Π΄Π°ΡΡ <10,15,3,7>
Π§ΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ
Π±Π°ΠΉΡ ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ db 0 Π΄Π± 5 Π΄Π± 8 db 0 Π΄Π± 1 Π΄Π± 3 Π΄Π± 10 Π΄Π± 15 Π΄Π± 3 Π΄Π± 7
Π¦ΠΈΠΊΠ» for Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ IRP
ΠΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΉΠΊΠ° ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ IRP, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΠΌΠ°ΠΊΡΠΎΡΠ΅.
forloop ΠΌΠ°ΠΊΡΠΎΡ start, stop, incr, statementList ΠΌΠ΅ΡΡΠ½ΡΠΉ ΡΠΎΠΏ, Π³ΠΎΡΠΎΠ²ΠΎ ΡΠΎΠ»ΠΊΠ°ΡΡ ΡΠΎΠΏΠΎΡ mov ax, start Π²Π²Π΅ΡΡ Ρ: cmp ax, stop jge ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΠ°ΡΠ²Π»Π΅Π½ΠΈΠ΅ IRP,ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠΏΠΎΡ, incr jmp top ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ: ΡΠΎΠΏΠΎΡ ΠΊΠΎΠ½Π΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΏΠ΅ΡΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² bx ΠΈ Π²ΡΡΡΠΈΡΠ΅ Π΅Π΅ Π² cx.
xor bx, bx xor cx, cx forloop 20,5, -4, << Π΄ΠΎΠ±Π°Π²ΠΈΡΡ bx, ax>, >
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ
ΡΠΎΠ»ΠΊΠ°ΡΡΠΈΠΉ ΡΠΎΠΏΠΎΡ ΠΌΠΎΠ² ΡΠΎΠΏΠΎΡ, 20 top1: cmp ax, 5 jge done1 Π΄ΠΎΠ±Π°Π²ΠΈΡΡ bx, ax sub cx, ax Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠΏΠΎΡ, -4 jmp top1 done1: ΡΠΎΠΏΠΎΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ \, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ.
xor bx, bx xor cx, cx forloop 20,5, -4, \ <\ <Π΄ΠΎΠ±Π°Π²ΠΈΡΡ bx, ax>, \ \ >
3.2. ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
3.2. ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ — ΡΡΠΎ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, Ρ
ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ x86,
Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ
ΠΈΡ
. Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ: DB
, DW
, DD
, DQ
, DT
, DDQ
, DO
, ΠΈΡ
Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ RESB
, RESW
, RESD
, RESQ
, REST
, RESDDQ
ΠΈ RESO
, ΠΊΠΎΠΌΠ°Π½Π΄Π° INCBIN
, ΠΊΠΎΠΌΠ°Π½Π΄Π° EQU
ΠΈ TIMES
ΠΏΡΠ΅ΡΠΈΠΊΡ.
3.2.1.
DB
ΠΈ Π΄ΡΡΠ·ΡΡ: ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
DB
, DW
, DD
, DQ
, DT
, DDQ
ΠΈ DO
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π²
Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ». ΠΡ
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
db 0x55; ΠΏΡΠΎΡΡΠΎ Π±Π°ΠΉΡ 0x55 db 0x55,0x56,0x57; ΡΡΠΈ Π±Π°ΠΉΡΠ° ΠΏΠΎΠ΄ΡΡΠ΄ db 'a', 0x55; ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ db 'ΠΏΡΠΈΠ²Π΅Ρ', 13,10, '$'; ΡΠ°ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ dw 0x1234; 0x34 0x12 dw 'a'; 0x41 0x00 (ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ) dw 'ab'; 0x41 0x42 (ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°) dw 'abc'; 0x41 0x42 0x43 0x00 (ΡΡΡΠΎΠΊΠ°) dd 0x12345678; 0x78 0x56 0x34 0x12 dq 0x1122334455667788; 0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 ddq 0x112233445566778899aabbccddeeff00 ; 0x00 0xff 0xee 0xdd 0xcc 0xbb 0xaa 0x99 ; 0x88 0x77 0x66 0x55 0x44 0x33 0x22 0x11 ΡΠ΄Π΅Π»Π°ΡΡ 0x112233445566778899aabbccddeeff00; ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π΄Π΄ 1.234567e20; ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ dq 1.234567e20; ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ dt 1.234567e20; ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ
DT
Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², Π° DDQ
Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ. ΠΡΠ±ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ DD
Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΊΠ°ΠΊ
ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ.
3.2.2.
RESB
ΠΈ Π΄ΡΡΠ·ΡΡ: ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
ΠΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ RESB
, RESW
, RESD
, RESQ
, REST
, RESDQ
ΠΈ RESO
ΡΠ²Π»ΡΡΡΡΡ
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ BSS ΠΌΠΎΠ΄ΡΠ»Ρ: ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ .ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°Π½Π΄,
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², ΡΠ»ΠΎΠ², Π΄Π²ΠΎΠΉΠ½ΡΡ
ΡΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎ-ΡΠΎ Π΅ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ. NASM Π½Π΅
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ MASM / TASM Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ DW?
ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ: ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ. ΠΠΏΠ΅ΡΠ°Π½Π΄ Π΄Π»Ρ
ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ RESB ΡΠΈΠΏΠ°
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ : ΡΠΌ. Π Π°Π·Π΄Π΅Π» 3.8.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π±ΡΡΠ΅Ρ: resb 64; Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ 64 Π±Π°ΠΉΡΠ° wordvar: resw 1; Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²ΠΎ realarray resq 10; ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ΅Π°Π»ΠΎΠ²
3.2.3.
INCBIN
: Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅
ΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ INCBIN
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ
Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ Π² Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ». ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΡΠΌΠΎ Π² ΠΈΠ³ΡΡ
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ». ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ
. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠ΅Ρ
ΡΠΏΠΎΡΠΎΠ±Ρ:
incbin "file.dat"; Π²ΠΊΠ»ΡΡΠΈΡΡ Π²Π΅ΡΡ ΡΠ°ΠΉΠ» incbin "file.dat", 1024; ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 1024 Π±Π°ΠΉΡΠ° incbin "ΡΠ°ΠΉΠ».dat ", 1024 512; ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 1024 ΠΈ ; ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 512
3.2.4.
EQU
: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ EQU
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ EQU
, ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ΅ΡΠΊΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ EQU
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π΅
(ΡΠΎΠ»ΡΠΊΠΎ) ΠΎΠΏΠ΅ΡΠ°Π½Π΄. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
message db 'ΠΏΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ' msglen equ $ -ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ msglen
ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 12. msglen
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅. ΠΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°:
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ msglen
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ $
(ΡΠΌ.
Π Π°Π·Π΄Π΅Π» 3.6 Π΄Π»Ρ
ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ $
) Π² ΠΏΡΠ½ΠΊΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π° Π½Π΅
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ $
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π΄Π»Ρ EQU
ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΡΠ°Π·Π΄Π΅Π» 3.8).
3.2.5.
Π ΠΠ
: ΠΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΡΠ΅ΡΠΈΠΊΡ TIMES
Π²ΡΠ·ΡΠ²Π°Π΅Ρ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² NASM
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° DUP
, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ MASM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ
zerobuf: ΡΠ°Π· 64 Π΄Π 0
ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ; Π½ΠΎ TIMES
Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½, ΡΠ΅ΠΌ ΡΡΠΎ.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ TIMES
— ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π°
ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ , ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ
Π±ΡΡΠ΅Ρ: db 'ΠΏΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ' ΡΠ°Π· 64 - $ + Π±ΡΡΠ΅Ρ db ''
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ²Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΡΡ Π΄Π»ΠΈΠ½Ρ Π±ΡΡΠ΅ΡΠ°
Π΄ΠΎ 64.ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π ΠΠ
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΡΠΈΠΊΠ»Ρ:
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° 100 ΠΌΠΎΠ²ΡΠ±
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ , ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° 100.
resb 1
ΠΈ resb 100
, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ
ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 100 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ Π·Π° ΡΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠΏΠ΅ΡΠ°Π½Π΄ Π΄Π»Ρ TIMES
, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ EQU
, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ RESB
ΠΈ Π΄ΡΡΠ³ΠΈΡ
, ΡΠ²Π»ΡΠ΅ΡΡΡ
ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΡΠ°Π·Π΄Π΅Π» 3.8).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ TIMES
Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌ: ΠΏΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ TIMES
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΌΠ°ΠΊΡΠΎ ΡΠ°Π·Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½Ρ TIMES
, ΡΡΠΎΠ±Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ 64 - $ + Π±ΡΡΠ΅Ρ
, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°,
ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° % rep
.
NASM Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
NASMΠ‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° | ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π³Π»Π°Π²Π° | Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ | ΠΠ½Π΄Π΅ΠΊΡ
3.1 Π‘Ρ Π΅ΠΌΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ NASM
ΠΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° NASM ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ (Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΌΠ°ΠΊΡΠΎΡ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°: ΡΠΌ. Π³Π»Π°Π²Π° 4 ΠΈ Π³Π»Π°Π²Π° 5) Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ
ΠΌΠ΅ΡΠΊΠ°: ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ; ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ; Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΊΠΈ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ· ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΠΏΠΎΠ»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
NASM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ (\) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ; Π΅ΡΠ»ΠΈ Π»ΠΈΠ½ΠΈΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΠΈΠ½ΠΈΡ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ.
NASM Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΡΠΎΠ±Π΅Π»Ρ Π² ΡΡΡΠΎΠΊΠ΅: ΠΌΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ
ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠ±Π΅Π», ΠΈΠ»ΠΈ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Π° ΠΏΠ΅ΡΠ΅Π΄
ΠΈΡ
ΠΈΠ»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ. ΠΠ²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. (ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ
ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ lodsb
Π½Π° Π»ΠΈΠ½ΠΈΠΈ, Π° Π½Π°Π±Π΅ΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ lodab
, ΡΠΎ
ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ.ΠΠ°ΠΏΡΡΠΊ NASM Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ -w + orphan-labels
Π·Π°ΡΡΠ°Π²ΠΈΡ Π²Π°Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΡΡ Π²Π°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΊΡ Π² ΡΡΡΠΎΠΊΠ΅ Π±Π΅Π· ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ.)
ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π° ΡΡΠΈΠΊΠ΅ΡΠΊΠ°Ρ
: Π±ΡΠΊΠ²Ρ, ΡΠΈΡΡΡ, _
, $
, #
, @
, ~
, .
ΠΈ ?
. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° — Π±ΡΠΊΠ²Ρ, .
(ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ: ΡΠΌ.
Π Π°Π·Π΄Π΅Π» 3.9), _
ΠΈ ?
. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ $
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π° Π½Π΅ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ; ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Ρ
ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ eax
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΡΠΌ. $ eax
Π² ΠΊΠΎΠ΄Π΅ NASM, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ°.
ΠΠΎΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ: Pentium ΠΈ
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ P6, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ FPU, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ MMX ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅
Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ.ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΠΠΠΠ
, REP
, REPE
/ REPZ
ΠΈΠ»ΠΈ REPNE
/ REPNZ
, Π²
ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±. Π―Π²Π½ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° A16
, A32
, O16
ΠΈ O32
ΡΠ²Π»ΡΡΡΡΡ
ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ — ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π²
Π³Π»Π°Π²Π° 9. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ: ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ es mov [bx], ax
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ mov [es: bx], ax
.ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ,
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΠ·ΡΠΊΠ°, Π½ΠΎ
Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠ°ΠΊ LODSB
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅Ρ
ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°, Π½Π΅Ρ ΡΠΈΡΡΠΎΠ³ΠΎ
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΊΡΠΎΠΌΠ΅ es lodsb
.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: ΠΏΡΠ΅ΡΠΈΠΊΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CS
, A32
, LOCK
ΠΈΠ»ΠΈ REPE
ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ
Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΈ NASM ΠΏΡΠΎΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π±Π°ΠΉΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, NASM ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 3.2.
ΠΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ: ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ,
ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ax
, BP
, EBX
, cr0
: NASM Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ gas
— ΡΡΠΈΠ»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠΌΠ΅Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ
Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ %
), ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ
Π°Π΄ΡΠ΅ΡΠ° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.3), ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
(ΡΠ°Π·Π΄Π΅Π» 3.4) ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
(ΡΠ°Π·Π΄Π΅Π» 3.5).
ΠΠ»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ NASM ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠ²: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΡ Ρ Π΄Π²ΡΠΌΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MASM, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NASM Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΡΠΌΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠΌ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ:
fadd st1; ΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ st0: = st0 + st1 fadd st0, st1; ΡΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ fadd st1, st0; ΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ st1: = st1 + st0 fadd to st1; ΡΠ°ΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠ°ΠΌΡΡΡ, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ² DWORD
, QWORD
ΠΈΠ»ΠΈ TWORD
Π΄ΠΎ
ΡΠΊΠ°Π·Π°ΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ½ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ.
3.2 ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΠΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ — ΡΡΠΎ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, Ρ
ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ x86.
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΠΎΠ»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ
ΡΠ°ΠΌΠΎΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΈΡ
ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ DB
, DW
, DD
, DQ
ΠΈ DT
, ΠΈΡ
Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ RESB
, RESW
, RESD
, RESQ
ΠΈ REST
, INCBIN
ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° EQU
ΠΈ TIMES
ΠΏΡΠ΅ΡΠΈΠΊΡ.
3.2.1
DB
ΠΈ Π΄ΡΡΠ³ΠΈΠ΅: ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
DB
, DW
, DD
, DQ
ΠΈ DT
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠ°ΠΊ ΠΈ Π² MASM, Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΡ
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π² ΡΠΈΡΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
ΡΠΏΠΎΡΠΎΠ±Ρ:
db 0x55; ΠΏΡΠΎΡΡΠΎ Π±Π°ΠΉΡ 0x55 db 0x55,0x56,0x57; ΡΡΠΈ Π±Π°ΠΉΡΠ° ΠΏΠΎΠ΄ΡΡΠ΄ db 'a', 0x55; ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ db 'ΠΏΡΠΈΠ²Π΅Ρ', 13,10, '$'; ΡΠ°ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ dw 0x1234; 0x34 0x12 dw 'a'; 0x41 0x00 (ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ) dw 'ab'; 0x41 0x42 (ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°) dw 'abc'; 0x41 0x42 0x43 0x00 (ΡΡΡΠΎΠΊΠ°) dd 0x12345678; 0x78 0x56 0x34 0x12 Π΄Π΄ 1.234567e20; ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ dq 1.234567e20; ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ dt 1.234567e20; ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ
DQ
ΠΈ DT
Π½Π΅
ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ².
3.2.2
RESB
ΠΈ Π΄ΡΡΠ·ΡΡ: ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π ΠΠ‘Π
, Π ΠΠ‘Π
, RESD
, RESQ
ΠΈ REST
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ BSS
ΠΌΠΎΠ΄ΡΠ»Ρ: ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄ΠΈΡΠΊΠΎΠ²ΡΡ
ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ².ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², ΡΠ»ΠΎΠ², Π΄Π²ΠΎΠΉΠ½ΡΡ
ΡΠ»ΠΎΠ² ΠΈΠ»ΠΈ
Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²
ΡΠ°Π·Π΄Π΅Π» 2.2.7, NASM Π½Π΅
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ MASM / TASM Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈ DW?
ΠΈΠ»ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ Π²Π΅ΡΠΈ: Π²ΠΎΡ ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ
Π²ΠΌΠ΅ΡΡΠΎ. ΠΠΏΠ΅ΡΠ°Π½Π΄ ΡΠΈΠΏΠ° RESB
ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ — ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ : ΡΠΌ.
ΡΠ°Π·Π΄Π΅Π» 3.8.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π±ΡΡΠ΅Ρ: resb 64; Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ 64 Π±Π°ΠΉΡΠ° wordvar: resw 1; Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²ΠΎ realarray resq 10; ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ΅Π°Π»ΠΎΠ²
3.2.3
INCBIN
: Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ INCBIN
Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ Ρ ΡΡΠ°ΡΠΎΠΉ ΠΠΌΠΈΠ³ΠΈ
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ DevPac: ΠΎΠ½ Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ».
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ Π·Π²ΡΠΊΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΏΡΡΠΌΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ³ΡΡ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π°:
incbin "file.dat"; Π²ΠΊΠ»ΡΡΠΈΡΡ Π²Π΅ΡΡ ΡΠ°ΠΉΠ» incbin "file.dat", 1024; ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 1024 Π±Π°ΠΉΡΠ° incbin "ΡΠ°ΠΉΠ».dat ", 1024 512; ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 1024 ΠΈ ; ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 512
3.2.4
EQU
: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ EQU
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ EQU
ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π°
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ΅ΡΠΊΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ EQU
Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ
Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ (Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ) ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
message db 'ΠΏΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ' msglen equ $ -ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ msglen
ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ 12. msglen
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅. ΠΡΠΎ
Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ msglen
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΡΡΠΎΠΈΠΌΠΎΡΡΡ $
(ΡΠΌ. ΡΠ°Π·Π΄Π΅Π»
3.5 Π΄Π»Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ $
) Π² ΠΏΡΠ½ΠΊΡΠ΅
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ, ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΡΡΠΎΠΈΠΌΠΎΡΡΡ $
Π² ΡΠΎΡΠΊΠ΅ ΠΎΡΡΡΠ΅ΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π΄Π»Ρ EQU
ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΡΠ°Π·Π΄Π΅Π» 3.8).
3.2.5
TIMES
: ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΡ
ΠΡΠ΅ΡΠΈΠΊΡ TIMES
Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π±ΡΡΡ
ΡΠΎΠ±ΡΠ°Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ NASM
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ DUP
, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ MASM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ
zerobuf: ΡΠ°Π· 64 Π΄Π 0
ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ; Π° Π²ΠΎΡ TIMES
ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π΅Π΅
ΡΠ΅ΠΌ ΡΡΠΎ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ TIMES
— ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ
ΡΠΈΡΠ»ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π½ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ , ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ
Π½ΡΠ°Π²ΠΈΡΡΡΡ
Π±ΡΡΠ΅Ρ: db 'ΠΏΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ' ΡΠ°Π· 64 - $ + Π±ΡΡΠ΅Ρ db ''
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΎΠ±ΡΡΡ Π΄Π»ΠΈΠ½Ρ Π±ΡΡΠ΅Ρ
Π΄ΠΎ 64.ΠΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΡΠΎ, TIMES
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΡΠΈΠΊΠ»Ρ:
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° 100 ΠΌΠΎΠ²ΡΠ±
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π· 100 resb 1
ΠΈ resb 100
, ΡΠ°Π·Π²Π΅ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ
ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 100 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ Π·Π° ΡΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ.
ΠΠΏΠ΅ΡΠ°Π½Π΄ Π΄Π»Ρ TIMES
, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ EQU
ΠΈ RESB
ΠΈ Π΄ΡΡΠ·ΡΡ, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΡΠ°Π·Π΄Π΅Π»
3.8).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ TIMES
Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ
ΠΌΠ°ΠΊΡΠΎΡΡ: ΠΏΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π ΠΠ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΌΠ°ΠΊΡΠΎ-ΡΠ°Π·Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ TIMES
, ΡΡΠΎΠ±Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ 64 - $ + Π±ΡΡΠ΅Ρ
, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ
ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ % rep
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°.
3.3 ΠΠ΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ°
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ — ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.Π£ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² Π² NASM ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: ΠΎΠ½ΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ Π°Π΄ΡΠ΅Ρ, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
wordvar dw 123 mov ax, [wordvar] mov ax, [wordvar + 1] mov ax, [es: wordvar + bx]
ΠΡΠ΅, ΡΡΠΎ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ.
ΡΡΡΠ»ΠΊΠ° Π² NASM, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ es: wordvar [bx]
.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³ΠΈΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅:
mov eax, [ebx * 2 + ecx + ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅] mov ax, [bp + di + 8]
NASM ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°Π»Π³Π΅Π±ΡΡ ΠΏΠΎ ΡΡΠΈΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π·Π°ΠΊΠΎΠ½Π½ΡΠΌΠΈ, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Ρ:
mov eax, [ebx * 5]; ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ [ebx * 4 + ebx] mov eax, [ΠΌΠ΅ΡΠΊΠ°1 * 2-ΠΌΠ΅ΡΠΊΠ°2]; Ρ.Π΅. [ΠΌΠ΅ΡΠΊΠ°1 + (ΠΌΠ΅ΡΠΊΠ°1-ΠΌΠ΅ΡΠΊΠ°2)]
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ; Π²
Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°Π΅Π² NASM Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΠΌΡ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ Π΄Π»Ρ 32-Π±ΠΈΡΠ½ΡΡ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
Π°Π΄ΡΠ΅ΡΠΎΠ² [eax * 2 + 0]
ΠΈ [eax + eax]
, ΠΈ NASM ΠΎΠ±ΡΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π½Π° ΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π±Π°ΠΉΡΠ° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π½ΡΠ»Ρ
ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ.
NASM ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ [eax + ebx]
ΠΈ [ebx + eax]
Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ; ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ [esi + ebp]
ΠΈ [ebp + esi]
ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΡΡ NASM ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π²
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ² BYTE
, WORD
, DWORD
ΠΈ ΠΠΠ‘ΠΠΠΠ’
. ΠΡΠ»ΠΈ ΡΠ΅Π±Π΅ Π½Π°Π΄ΠΎ [eax + 3]
Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°
ΠΏΠΎΠ»Π΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ NASM, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΊΠΎΠ΄ [dword eax + 3]
. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΡΡ NASM
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ
ΠΏΡΠΎΠΉΡΠΈ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.8 Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ
ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ [Π±Π°ΠΉΡ eax + ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅]
. Π Π²ΠΈΠ΄Π΅
ΠΎΡΠΎΠ±ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, [byte eax]
Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ [eax + 0]
Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π±Π°ΠΉΡΠΎΠ²ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈ [dword eax]
Π·Π°ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ
ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΡΠ»Ρ. Π Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ [eax]
Π±ΡΠ΄Π΅Ρ
ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΠΎΠ»Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
Π€ΠΎΡΠΌΠ°, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ Π°Π±Π·Π°ΡΠ΅, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² 32-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΈΠ· 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠ± Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. (ΡΠ°Π·Π΄Π΅Π» 9.2). Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΌΠ΅ΡΡΠΈΡΡΡ Π² 16-Π±ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°, nasm Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ NASM ΡΠ°Π·Π΄Π΅Π»ΠΈΡ [eax * 2]
Π½Π° [eax + eax]
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ
ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠΎ; Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡΡ [eax * 2 + ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅]
Π² [eax + eax + offset]
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΠΎΡΠΎΡΡΡΡ Ρ ΡΡΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° NOSPLIT
: [nosplit eax * 2]
Π·Π°ΡΡΠ°Π²ΠΈΡ [eax * 2 + 0]
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ.
3,4 ΠΠΎΠ½ΡΡΠ°Π½ΡΡ
NASM ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ: ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅, ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅, ΡΡΡΠΎΠΊΠ° ΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
3.4.1 Π§ΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π§ΠΈΡΠ»ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ. NASM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ
ΡΠΈΡΠ»Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡΡ
ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΈΠΊΡ H
, Q
ΠΈ B
Π΄Π»Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ, Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡ 0x
Π΄Π»Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ³ΠΎ Π² ΡΡΠΈΠ»Π΅ C, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡ $
Π·Π° ΡΠ΅ΡΡΠΈΠ³ΡΠ°Π½Π½ΠΈΠΊ Π² ΡΡΠΈΠ»Π΅ Borland Pascal.ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅,
ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ $
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ
ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 3.1), ΠΏΠΎΡΡΠΎΠΌΡ
ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ $
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ
ΡΠΈΡΡΠ° ΠΏΠΎΡΠ»Π΅ $
, Π° Π½Π΅ Π±ΡΠΊΠ²Π°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
mov ax, 100; Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΉ mov ax, 0a2h; ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ mov ax, $ 0a2; ΡΠ½ΠΎΠ²Π° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ: ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 0 mov ax, 0xa2; ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ Π΅ΡΠ΅ ΡΠ°Π· mov ax, 777q; Π²ΠΎΡΡΠΌΠ΅ΡΠΈΡΠ½ΡΠΉ mov ax, 10010011b; Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ
3.4.2 Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π΄ΠΎ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ. Π’ΠΈΠΏ ΠΊΠΎΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ NASM, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π° Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ²: Π΅ΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΠ΅
mov eax, 'abcd'
, ΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π½Π΅ 0x61626364
,
Π½ΠΎ 0x64636261
, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ Π·Π°ΡΠ΅ΠΌ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ abcd
ΡΠΊΠΎΡΠ΅Π΅
ΡΠ΅ΠΌ dcba
.ΠΡΠΎ ΡΠΎΠΆΠ΅ ΡΡΠ²ΡΡΠ²ΠΎ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ°
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠ΅ Pentium CPUID
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π»
Π.4.34).
3.4.3 Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ
ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ DB
ΠΈ ΠΠΠΠΠΠ
.
Π‘ΡΡΠΎΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»ΠΈΠ½Π½Π΅Π΅. ΡΡΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π»Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ:
db 'ΠΏΡΠΈΠ²Π΅Ρ'; ΡΡΡΠΎΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° db 'h', 'e', ββ'l', 'l', 'ΠΎ'; ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ:
dd 'ninechars'; ΡΡΡΠΎΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° dd 'Π΄Π΅Π²ΡΡΡ', 'char', 's'; ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ΅ΠΌΡ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ db 'ninechars', 0,0,0; ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π΄Π»Ρ db
, a
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΡΠΈΠΏΠ° 'ab'
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ°
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ db 'ab'
Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ db 'a'
, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π³Π»ΡΠΏΠΎ.ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ,
ΡΡΠ΅Ρ
ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΠ΅Ρ
ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠ³Π΄Π°
ΠΎΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Π½Π° dw
.
3.4.4 ΠΠΎΠ½ΡΡΠ°Π½ΡΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ DD
, DQ
ΠΈ ΠΠ’
. ΠΠ½ΠΈ Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅:
ΡΠΈΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ°, Π·Π°ΡΠ΅ΠΌ, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΡΡ, Π·Π°ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ E
, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ. ΠΠ΅ΡΠΈΠΎΠ΄
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ NASM ΠΌΠΎΠ³ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ dd 1
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΈ Π΄Π΄ 1.0
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
dd 1.2; Π»Π΅Π³ΠΊΠΈΠΉ dq 1.e10; 10 000 000 000 dq 1.e + 10; ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ 1.e10 dq 1.e-10; 0,000 000 000 1 dt 3.141592653589793238462; ΠΠΈ
NASM Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ NASM ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΠΌ, Ρ ΠΎΡΡ ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ x86, ΡΠ°ΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ANSI C.ΠΠΎΡΡΠΎΠΌΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΠ»Π° Intel ΡΠΎΡΠΌΠ°ΡΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ NASM ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Ρ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΡΠ³ΠΎΠ΄ΠΎΠΉ.
3.5 ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² NASM ΠΏΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π² C.
NASM Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ NASM ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° 64-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅, ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π² 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ. NASM Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ANSI C: Ρ Π²Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 32 Π±ΠΈΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
NASM ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠΊΠ΅Π½Π° Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ: $
ΠΈ $$
ΠΆΠ΅ΡΠΎΠ½ΠΎΠ². $
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅; ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ JMP
ΡΡΠ±. $$
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ Π²
Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°; ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π²
Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ($ - $$)
. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ XOR.
3.5.3
ΠΈ
: ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π ΠΈ
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ AND.
3.5.4
<<
ΠΈ >>
: ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° <<
Π΄Π°Π΅Ρ Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ, ΠΏΡΠΎΡΡΠΎ
ΠΊΠ°ΠΊ ΠΈ Π² C. ΠΡΠ°ΠΊ, 5 << 3
ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 5
ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π½Π° 8 ΠΈΠ»ΠΈ 40. >>
Π΄Π°Π΅Ρ Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ΄Π²ΠΈΠ³
Π²Π΅ΡΠ½ΠΎ; Π² NASM ΡΠ°ΠΊΠΎΠΉ ΡΠ΄Π²ΠΈΠ³ ΡΠ°Π²Π΅Π½ , Π²ΡΠ΅Π³Π΄Π° Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ Π±ΠΈΡΡ
ΡΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ Ρ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°, Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ, Π° Π½Π΅
Π·Π½Π°ΠΊ-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±ΠΈΡΠ°.
3.5.5
+
ΠΈ -
: ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ +
ΠΈ -
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅.
3.5.6
*
, /
, //
, %
ΠΈ %%
: ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ *
- ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ. /
ΠΈ //
ΠΎΠ±Π° ΡΠ²Π»ΡΡΡΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π΅Π»Π΅Π½ΠΈΡ: /
- Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ //
- Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅.ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ, %
ΠΈ %%
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
NASM, ΠΊΠ°ΠΊ ΠΈ ANSI C, Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ» %
ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΈ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅
ΠΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π», Π³Π΄Π΅ Π±Ρ ΠΎΠ½ΠΈ Π½ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ.
3.5.7 Π£Π½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ:
+
, -
, ~
ΠΈ SEG
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Ρ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π² Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ NASM:
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. -
ΠΎΡΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ
ΠΎΠΏΠ΅ΡΠ°Π½Π΄, +
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ (ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π»Ρ
ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡ Ρ -
), ~
Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π΄ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, ΠΈ SEG
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°
(Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 3.6).
3,6
SEG
ΠΈ WRT
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
16-Π±ΠΈΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ°ΡΡΡ
Π°Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°.NASM ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ SEG
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ SEG
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ
ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΡ
ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠ°ΠΊ, ΠΊΠΎΠ΄
mov ax, seg symbol mov es, ax mov bx, ΡΠΈΠΌΠ²ΠΎΠ»
Π·Π°Π³ΡΡΠ·ΠΈΡ ES: BX
Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π°
ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΈΠΌΠ²ΠΎΠ»
.
ΠΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ, ΡΠ΅ΠΌ ΡΡΠΎ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 16-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΈ Π³ΡΡΠΏΠΏΡ
ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ, ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΈΠΌΠ²ΠΎΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
Π±Π°Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ.NASM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° WRT
(ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π°).
ΠΡΠ°ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ
mov ax, weird_seg; weird_seg - ΡΡΠΎ Π±Π°Π·Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° mov es, ax mov bx, ΡΠΈΠΌΠ²ΠΎΠ» wrt weird_seg
Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ES: BX
Ρ Π΄ΡΡΠ³ΠΈΠΌ, Π½ΠΎ
ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΈΠΌΠ²ΠΎΠ»
.
NASM ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π°Π»ΡΠ½ΠΈΠ΅ (ΠΌΠ΅ΠΆΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅) Π²ΡΠ·ΠΎΠ²Ρ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π°: ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
, Π³Π΄Π΅ ΡΠ΅Π³ΠΌΠ΅Π½Ρ
ΠΈ ΡΠΌΠ΅ΡΠ΅Π½Ρ
ΠΎΠ±Π°
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π½Π½ΠΎΡΡΠΈ.ΠΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ Π΄Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄
Π»ΡΠ±ΠΎΠΉ ΠΈΠ·
Π²ΡΠ·ΠΎΠ² (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°): ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ·ΠΎΠ² weird_seg: (ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° wrt weird_seg)
(ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ.)
NASM ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ , ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π°Π»ΡΠ½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
ΠΊΠ°ΠΊ
ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΉ. JMP
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ CALL
Π² ΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
.
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π΄Π°Π»ΡΠ½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ» DW, ΡΠΈΠΌΠ²ΠΎΠ» seg
NASM Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, Ρ ΠΎΡΡ Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΡΠΈ ΠΎΠ΄ΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ.
3,7
STRICT
: Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠΎΠΌ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ 2 ΠΈΠ»ΠΈ Π²ΡΡΠ΅ (ΡΠΌ.
ΡΠ°Π·Π΄Π΅Π» 2.1.16), NASM Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ( BYTE
, WORD
, DWORD
, QWORD
ΠΈΠ»ΠΈ TWORD
), Π½ΠΎ
Π΄Π°ΡΡ ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ.ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ STRICT
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ
ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅. ΠΠ»Ρ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ΅ ΠΈ Π² BITS 16
Π Π΅ΠΆΠΈΠΌ,
ΡΠΎΠ»ΠΊΠ½ΡΡΡ dword 33
ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ ΡΡΠ΅ΠΌΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ 66 6A 21
, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ
ΡΠΎΠ»ΠΊΠ°ΡΡ ΡΡΡΠΎΠ³ΠΈΠΉ dword 33
ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΡΡΡ Π±Π°ΠΉΡΠ°ΠΌΠΈ, Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ 66 68 21 00 00 00
.
ΠΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄ (ΡΠ΅ΡΡΡ Π±Π°ΠΉΡΠΎΠ²) Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ,
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ STRICT
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
3.8 ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ NASM ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π΄Π²ΡΡ ΠΏΡΠΎΡ ΠΎΠ΄Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ; Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ TASM ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ²Π½ΠΎ Π΄Π²Π° ΠΏΡΠΎΡ ΠΎΠ΄Π° ΡΠ±ΠΎΡΠΊΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Ρ, ΡΡΠΎΠ±Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΎΠ².
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π·Π½Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» Π°Π΄ΡΠ΅ΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠΎΠ΄. ΠΡΠ°ΠΊ, ΠΎΠ΄Π½Π° Π²Π΅ΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ NASM Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ, - ΡΡΠΎ ΠΊΠΎΠ΄, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ΄Π° Π² Π²ΠΎΠΏΡΠΎΡ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΡΠ°Π· (ΠΌΠ΅ΡΠΊΠ°- $) db 0 label: db 'ΠΠ΄Π΅ Ρ?'
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π ΠΠ
Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ³ Π±Ρ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ; NASM ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ TIMES
ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΠΈΠ΄ΠΈΡ ΡΡΠΎ. ΠΠ½ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ³Π½Π΅Ρ ΡΠ»Π΅Π³ΠΊΠ°
ΠΏΠ°ΡΠ°Π΄ΠΎΠΊΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄
ΡΠ°Π· (ΠΌΠ΅ΡΠΊΠ° - $ + 1) db 0 label: db 'Π’ΠΠΠΠ Π¬ Π³Π΄Π΅ Ρ?'
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ TIMES
Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π΅Π²Π΅ΡΠ΅Π½ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ!
NASM ΠΎΡΠ²Π΅ΡΠ³Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅, ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½
Π·Π°Π²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ² TIMES
- ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅; Π΄Π»Ρ
ΠΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° RESB
ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ : ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄.
mov ax, symbol1 symbol1 equ symbol2 symbol2:
ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅ NASM Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»1
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»1
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π²Π½ΠΎΠ΅ symbol2
, ΠΊΠΎΡΠΎΡΡΠΉ NASM Π΅ΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π».ΠΠ° Π²ΡΠΎΡΠΎΠΌ
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ mov ax, symbol1
, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»1
. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠ½ ΡΠ²ΠΈΠ΄ΠΈΡ EQU
ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ symbol1
, Π½ΠΎ ΡΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ.
NASM ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΡ EQU
ΠΊΠ°ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° 1
Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ Π²
ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄.
ΠΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΠΏΡΡΠΌΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ: ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°.
mov eax, [ebx + ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅] ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ² 10
NASM Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ mov eax, [ebx + offset]
Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
. ΠΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°Π»ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠΉ
ΠΏΠΎΠ»Π΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ
ΡΠΎΡΠΌΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ°; Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π·Π½Π°Π΅Ρ, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅, ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅, ΠΈ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅ΡΡΡΠ΅Ρ
Π±Π°ΠΉΡΠΎΠ²Π°Ρ ΡΠΎΡΠΌΠ°.ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ
Π±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π°Π΄ΡΠ΅ΡΠ°. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΡ
ΠΎΠ΄Π΅
ΠΏΡΠΈΠ½ΡΠ² ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π΅Π³ΠΎ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π±ΠΎΠ»ΡΡΠ°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ, ΠΊΠ°ΠΊ
ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ. ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°ΠΉΡΠ°
Π² Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ [Π±Π°ΠΉΡ EBX + ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅]
.
3.9 ΠΠ΅ΡΡΠ½ΡΠ΅ ΡΡΠ»ΡΠΊΠΈ
NASM ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌΡΡ Ρ ΡΠΎΡΠΊΠΈ.ΠΡΠΈΠΊΠ΅ΡΠΊΠ° Π½Π°ΡΠ°Π»ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΌΠ΅ΡΠΊΠ° , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
label1; ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄ .ΠΏΠ΅ΡΠ»Ρ ; Π΅ΡΠ΅ ΠΊΠΎΠ΄ jne .loop Ret label2; ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄ .ΠΏΠ΅ΡΠ»Ρ ; Π΅ΡΠ΅ ΠΊΠΎΠ΄ jne .loop Ret
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ JNE
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π½Π° ΡΡΡΠΎΠΊΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π²Π°
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ .ΠΏΠ΅ΡΠ»ΠΈ
ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π°
ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ.
ΠΡΠ° ΡΠΎΡΠΌΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠΊ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π° ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Amiga.
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ DevPac; ΠΎΠ΄Π½Π°ΠΊΠΎ NASM ΠΈΠ΄Π΅Ρ Π΅ΡΠ΅ Π΄Π°Π»ΡΡΠ΅, ΡΠ°Π·ΡΠ΅ΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ
ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΊΠ°ΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΊΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ:
ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ .loop
, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ label1.ΠΏΠ΅ΡΠ»Ρ
, Π°
Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ label2.loop
. Π’Π°ΠΊ,
Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ
label3; Π΅ΡΠ΅ ΠΊΠΎΠ΄ ; ΠΈ Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ jmp label1.loop
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠ°ΠΊΡΠΎΡΠ΅ - ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ
ΠΌΠ΅ΡΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΠΎΡΠΊΡΠ΄Π° ΡΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ
Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ. Π’Π°ΠΊΠΎΠΉ ΡΡΠ»ΡΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ ΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌ
ΠΊ, ΠΌΠ΅ΡΡΠ½ΡΠ΅ Π»Π΅ΠΉΠ±Π»Ρ; ΠΈ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»
Π½Π΅ Π·Π½Π°Π» ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ Π»Π΅ΠΉΠ±Π»Π°.ΠΠΎΡΡΠΎΠΌΡ NASM ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅ΡΠΈΠΉ ΡΠΈΠΏ
ΠΌΠ΅ΡΠΊΠΈ, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ
ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²: Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΊΠ°
Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° .. @
, Π·Π°ΡΠ΅ΠΌ
Π½ΠΈΡΠ΅Π³ΠΎ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ ΠΌΠ΅ΡΠΎΠΊ. ΠΡΠ°ΠΊ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄
label1:; Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π»Π΅ΠΉΠ±Π» .ΠΌΠ΅ΡΡΠ½ΡΠΉ: ; ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ label1.local .. @ foo:; ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» label2:; Π΄ΡΡΠ³ΠΎΠΉ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π»Π΅ΠΉΠ±Π» .ΠΌΠ΅ΡΡΠ½ΡΠΉ: ; ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ label2.ΠΌΠ΅ΡΡΠ½ΡΠΉ jmp .. @ foo; ΡΡΠΎ ΠΏΡΡΠ³Π½Π΅Ρ Π½Π° ΡΡΠΈ ΡΡΡΠΎΡΠΊΠΈ Π²Π²Π΅ΡΡ
NASM ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .. Π½Π°ΡΠ°Π»ΠΎ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ
ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΎΡΠΊΡ Π²Ρ
ΠΎΠ΄Π° Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π° obj
(ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 6.2.6).
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° | ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π³Π»Π°Π²Π° | Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ | ΠΠ½Π΄Π΅ΠΊΡ
404 | ΠΠΈΠΊΡΠΎ Π€ΠΎΠΊΡΡ
Π‘ΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ ΠΠ’-ΡΡΠ΅Π΄Ρ.
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π²Π°ΠΌ Π²Π½Π΅Π΄ΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΠ’ ΠΈ Π½Π°Π»Π°Π΄ΠΈΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ’-ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π²Π°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ.
Π£ΡΠΊΠΎΡΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ»ΡΠ³ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ.
Π‘Π»ΡΠΆΠ±Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΡΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌ, ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΠΈΠΌΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅.
Π£ΡΠ»ΡΠ³ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°Π»ΡΠΈΠ½Π³Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠΌΠΈ Π² ΠΏΠΎΡΡΡΠ΅Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Micro Focus, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π£ΡΠ»ΡΠ³ΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠΉ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π±ΡΡΡΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Micro Focus.
Π‘Π»ΡΠΆΠ±Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ»ΡΠ³Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ, Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ².
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΈΡΠ΅ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΈΡΠ΅ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΈΡΠ΅ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΠΊΠΎΡΡΡΡ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΡΠ½ΠΎΠΊ Π±Π΅Π· ΡΡΠ΅ΡΠ±Π° Π΄Π»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΡΠΈΡΠ΅ Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.