Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠ½ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅
Π ΠΠ (ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ°)
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ/ΡΠ΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΡΡΠΎΠ²Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Ρ. Π΄. (ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ).
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡ Π΅ΠΌΡ, ΡΠ»ΡΠΆΠ°ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π». Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ½Π° ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ. ΠΠΌΠ΅ΡΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΠ΅Π½Π΅Π²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ²). ΠΡΠΈΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ Ρ Intel 386
IP (Π°Π½Π³Π». Instruction Pointer ) β ΡΠ΅Π³ΠΈΡΡΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°.
IP β 16-Π±ΠΈΡΠ½ΡΠΉ (ΠΌΠ»Π°Π΄ΡΠ°Ρ ΡΠ°ΡΡΡ EIP)
EIP β 32-Π±ΠΈΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ β Π Π΅Π³ΠΈΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ.
CS β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ. Π‘Π²ΡΠ·ΠΊΠ° CS:IP ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ β ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 β R15 β 64-Π±ΠΈΡΠ½ΡΠ΅
EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP β 32-Π±ΠΈΡΠ½ΡΠ΅ (extended AX)
AX, BX, CX, DX β 16-Π±ΠΈΡΠ½ΡΠ΅
AH, AL, BH, BL, CH, CL, DH, DL β 8-Π±ΠΈΡΠ½ΡΠ΅ (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ 16-ΡΠΈ Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²)
RAX | RBX | RCX | RDX | ||||||||||||
ββ | EAX | ββ | EBX | ββ | ECX | ββ | EDX | ||||||||
ββ | ββ | AX | ββ | ββ | BX | ββ | ββ | CX | ββ | ββ | DX | ||||
ββ | ββ | AH | AL | ββ | ββ | BH | BL | ββ | ββ | CH | CL | ββ | ββ | DH | DL |
Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² EFLAGS β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π΅Π³ΠΈΡΡΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·Π΅Π», ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΏΡΠΈΡΠΌ, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΅Π³ΠΈΡΡΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π³ΡΡΠΏΠΏΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ², ΠΎΠ±ΡΡΠ½ΠΎ D. ΠΠΎ ΡΠΈΠΏΡ ΠΏΡΠΈΡΠΌΠ° ΠΈ Π²ΡΠ΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ 2 ΡΠΈΠΏΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²:
Π‘Π΄Π²ΠΈΠ³ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ². ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ β ΡΠ΄Π²ΠΈΠ³ ΡΠ°Π·ΡΡΠ΄ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°.
ΠΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π½Π°:
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ/ΡΠ΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΡΡΠΎΠ²Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Ρ. Π΄. (ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ).
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡ Π΅ΠΌΡ, ΡΠ»ΡΠΆΠ°ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π». Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ½Π° ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ. ΠΠΌΠ΅ΡΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΠ΅Π½Π΅Π²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ²). ΠΡΠΈΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ Ρ Intel 386
IP (Π°Π½Π³Π». Instruction Pointer ) β ΡΠ΅Π³ΠΈΡΡΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°.
IP β 16-Π±ΠΈΡΠ½ΡΠΉ (ΠΌΠ»Π°Π΄ΡΠ°Ρ ΡΠ°ΡΡΡ EIP)
EIP β 32-Π±ΠΈΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ β Π Π΅Π³ΠΈΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ.
CS β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ. Π‘Π²ΡΠ·ΠΊΠ° CS:IP ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ β ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 β R15 β 64-Π±ΠΈΡΠ½ΡΠ΅
EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP β 32-Π±ΠΈΡΠ½ΡΠ΅ (extended AX)
AX, BX, CX, DX β 16-Π±ΠΈΡΠ½ΡΠ΅
AH, AL, BH, BL, CH, CL, DH, DL β 8-Π±ΠΈΡΠ½ΡΠ΅ (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠΈ 16-ΡΠΈ Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²)
RAX | RBX | RCX | RDX | ||||||||||||
ββ | EAX | ββ | EBX | ββ | ECX | ββ | EDX | ||||||||
ββ | ββ | AX | ββ | ββ | BX | ββ | ββ | CX | ββ | ββ | DX | ||||
ββ | ββ | AH | AL | ββ | ββ | BH | BL | ββ | ββ | CH | CL | ββ | ββ | DH | DL |
Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² EFLAGS β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π΅Π³ΠΈΡΡΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·Π΅Π», ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ ΠΏΡΠΈΡΠΌ, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΅Π³ΠΈΡΡΡΡ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π³ΡΡΠΏΠΏΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ², ΠΎΠ±ΡΡΠ½ΠΎ D. ΠΠΎ ΡΠΈΠΏΡ ΠΏΡΠΈΡΠΌΠ° ΠΈ Π²ΡΠ΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ 2 ΡΠΈΠΏΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²:
Π‘Π΄Π²ΠΈΠ³ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ². ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ β ΡΠ΄Π²ΠΈΠ³ ΡΠ°Π·ΡΡΠ΄ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°.
ΠΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π½Π°:
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ
8-bit | MCS-51 β’ MCS-48 β’ AVR β’ Z8 β’ H8 β’ COP8 β’ 68HC08 β’ 68HC11 |
---|---|
16-bit | PIC24 β’ MAXQ β’ Nios β’ 68HC12 β’ 68HC16 |
32-bit | ARM β’ PIC32MX β’ 683XX β’ M32R β’ |
ΠΠΎΠ»Π΅Π·Π½ΠΎΠ΅
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°» Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡΡ :
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ (ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°) (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°), ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ IT ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌΠΈ Π² Π°ΡΠΏΠ΅ΠΊΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΠΡΠ° ΡΡΠ°ΡΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° Β«IPΒ»; ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π±Π»ΠΎΠΊ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΉ ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ (Π‘ΠΠΠ£) Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΡΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΠΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΊΡΡ (ΡΠ²Π΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π΅ΡΡ Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ[1] β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΠΡΡ (Π°Π½Π³Π». cache[1], ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ kΓ¦Κ ΠΊΠΡ) ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ Ρ Π±ΡΡΡΡΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡ ΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΌΠ΅Π½Π΅Π΅ Π±ΡΡΡΡΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, Π½ΠΎ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΡΠ΄Π° Π·Π°ΠΏΡΠΎΡΠ΅Π½Π°. ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π²β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄Π΅Π»Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ β (Model Specific Registers, MSR) cΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86, Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ RDMSR ΠΈ WRMSR. ΠΠ΄ΡΠ΅ΡΡΡΡΡΡ 32 Π±ΠΈΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ,β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π Π΅Π³ΠΈΡΡΡ (ΡΠΈΡΡΠΎΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°) β Π£ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΌ. Π Π΅Π³ΠΈΡΡΡ. 4 Ρ ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠ΄Π²ΠΈΠ³ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π Π΅Π³ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π ΠΠ (ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ°) β Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ/ΡΠ΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π Π΅Π³ΠΈΡΡΡ (Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°) β Π Π΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ/ΡΠ΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Motorola 6809 β > Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΡΠΎΡΠ΅ΡΡΠΎΡ Motorola 6809E Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ 1 ΠΠΡ, Π²ΡΠΏΡΡΠ΅Π½ Π² 1983 Π³ΠΎΠ΄Ρ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ β ΠΠΈΡΠ°ΠΌΠΈΠ΄Π° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π΅ΠΌΠΊΠΎΡΡΡ, ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠΏΡΠ°Π²Π° ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠΊΠΎΡΠΎΡ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π ΠΠ)
Π Π΅Π³ΠΈΡΡΡΡ EAX, EBX, ECX, EDX Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π²Π½ΡΡΡΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎ-Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΠΠ£), ΡΠΎ ΠΈΡ Π΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΠΠ£:
Β· eax/ax/ah/al (Accumulator register) β Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Β· ebx/bx/bh/bl (Base register) β Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ.
Β· ecx/cx/ch/cl (Count register) β ΡΠ΅Π³ΠΈΡΡΡ-ΡΡΠ΅ΡΡΠΈΠΊ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΡ
Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΡΠ°ΡΡΡΡ Π½Π΅ΡΠ²Π½ΠΎ ΠΈ ΡΠΊΡΡΡΠΎ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° loop ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π½Π°Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ecx/cx;
Β· edx/dx/dh/dl (Data register) β ΡΠ΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅Π³ΠΈΡΡΡ eax/ax/ah/al, ΠΎΠ½ Ρ ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ; Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ.
Π ΠΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅, ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π ΠΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΊ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΊ 16-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊ Π΄Π²ΡΠΌ 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΈΡΡΡ EAX ΡΠ²Π»ΡΠ΅ΡΡΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ 16-ΡΠ°Π·ΡΡΠ΄ΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΠ₯. Π‘ΡΠ°ΡΡΠΈΠ΅ 8-ΡΠ°Π·ΡΡΠ΄ΠΎΠ² ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΠ₯ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΠ, Π° ΠΌΠ»Π°Π΄ΡΠΈΠ΅ 8-ΡΠ°Π·ΡΡΠ΄ΠΎΠ² β Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ AL.
Π ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΡΠ»ΠΎΠ²Π½ΠΎ Π½Π°Π·Π²Π°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΡΠ°ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Β· Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΠΠ₯ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π΅Π³ΠΎ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° (extended accumulator).
Β· Π Π΅Π³ΠΈΡΡΡ ΠΠ‘Π₯ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΊΠ»Π°.
Β· esi/si (Source Index register) β ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°. ΠΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΡΠ΅ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅-ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅;
Β· edi/di (Destination Index register) β ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° (ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ). ΠΡΠΎΡ ΡΠ΅Π³ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΡΠ΅ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅.
Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ AVR
Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π ΠΠ) Π΅ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅. ΠΡ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ βΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡβ. ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΈΡΠΎΠ³ΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ).
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ Ρ Π ΠΠ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
Π€Π°ΠΉΠ» ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π‘Π»ΠΎΠ²ΠΎ ΡΠ°ΠΉΠ» ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΡ ΠΈ ΠΊΠ°ΠΊ βΠΌΠ°ΡΡΠΈΠ²β.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π»Π΅ΠΉ.
Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΡΠ΅ΡΠΈΠΈ AVR Π²ΡΠ΅Π³ΠΎ 32 ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π ΠΠ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ: ΠΎΡ R0 Π΄ΠΎ R31.
Π‘Ρ Π΅ΠΌΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ°ΡΡΠΈΠ² Π ΠΠ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ Π΄Π»Ρ Π΄Π»Ρ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AVR Enhanced RISC. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡ Π΅ΠΌΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²:
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡΡΡΠΊΡΡΡΠ° 32 ΡΠ°Π±ΠΎΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΊΠ».
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΡΡΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΡΠ·Π°Π½ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΡ Π°Π΄ΡΠ΅Ρ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ 32 ΡΡΠ΅ΠΉΠΊΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π°Π½Π½ΡΡ . Π₯ΠΎΡΡ ΡΡΠ° ΠΏΠ°ΠΌΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² SRAM, ΡΠ°ΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° X-, Y- ΠΈ Z- ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄).
Π₯-ΡΠ΅Π³ΠΈΡΡΡ, Y-ΡΠ΅Π³ΠΈΡΡΡ ΠΈ Z-ΡΠ΅Π³ΠΈΡΡΡ
ΠΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² AVR ΡΠ²Π»ΡΡΡΡΡ Π²ΠΎΡΡΠΌΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² (R26. R31) ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ²Π»ΡΡΡΡΡ 16-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π½Π½ΡΡ . Π’ΡΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π₯, Y ΠΈ Z ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
Π ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΈ Π°Π΄ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΏΠ°ΡΡ (ΡΠΌ. ΡΠΈΡ. Π²ΡΡΠ΅) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π Π΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎ-Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»ΠΈΡΡΡΡ Π½Π° Π΄Π²Π΅ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ: AH, BH, CH ΠΈ DH Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡ Π±Π°ΠΉΡΠΎΠ² ΠΈ AL, BL, CL ΠΈ DL Π΄Π»Ρ ΠΌΠ»Π°Π΄ΡΠΈΡ Π±Π°ΠΉΡΠΎΠ².
Π ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ 80386 ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π±ΡΠ»Π° ΡΠ΄Π²ΠΎΠ΅Π½Π° ΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° 32 Π±ΠΈΡΠ°. ΠΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ: 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° EAX, EBX, ECX, EDX, ESI, EDI, EBP ΠΈ ESP, Π° ΠΈΡ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΆΠ½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΡΡΠΌ Ρ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π²ΡΠΌ ΠΌΠ»Π°Π΄ΡΠΈΠΌ Π±Π°ΠΉΡΠ°ΠΌ (AH, AL ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅). Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° 8086.
ΠΡΡΠ³ΠΈΠΌ Π²Π°ΠΆΠ½ΡΠΌ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° 80386 ΡΡΠ°Π»ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Β«Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΈΠΈΒ» ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ: ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅. ΠΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° 2, 4 ΠΈΠ»ΠΈ 8. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° 8086 Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ BX, BP, SI ΠΈ DI, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² (ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ EM64T/AMD64) ΠΏΠΎΠ²Π»Π΅ΠΊΠ»ΠΎ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π°Π±ΠΎΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π‘ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ: