Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ
Π Π΅Π³ΠΈΡΡΡΡ, Π±Π°ΠΉΡΡ, Π±ΠΈΡΡ
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ°ΡΠ΅ΠΌ? Π― Π΄ΡΠΌΠ°Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΆΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ Π² ΡΠΊΠ΅ΡΡΠ°Ρ ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ. ΠΠ°ΡΠ½ΡΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ, Π³Π΄Π΅ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄: Arduino IDE. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π° Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠ°Ρ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΡΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ βΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²β ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Arduino IDE ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΊΠ°Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΡΡΡ, Π½ΠΎ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠΈ ΡΠ·ΡΠΊΠ°:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡ? Π’ΡΡ Π²ΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡΠΎ: ΡΡΠΎ ΡΠ²Π΅ΡΡ Π±ΡΡΡΡΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΡΠΌΠΎΠΌ 1 Π±Π°ΠΉΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ΄ΡΠΎΠΌ ΠΠ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠ΅ΠΉ. ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ. Π ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Ρ ΡΠ°Π½ΡΡΡΡ βΠ½Π°ΡΡΡΠΎΠΉΠΊΠΈβ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π΅Π³ΠΎ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ: ΡΠ°ΠΉΠΌΠ΅ΡΡ-ΡΡΡΡΡΠΈΠΊΠΈ, ΠΏΠΎΡΡΡ Ρ ΠΏΠΈΠ½Π°ΠΌΠΈ, ΠΠ¦Π, ΡΠΈΠ½Π° UART, I2C, SPI ΠΈ ΠΏΡΠΎΡΠ΅Π΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ Π² ΠΠ. ΠΠ΅Π½ΡΡ ΡΠ΅Π³ΠΈΡΡΡ, ΠΌΡ Π΄Π°ΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΡΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 1 ΡΠ°ΠΊΡ, ΡΠΎ Π΅ΡΡΡ 0.0625 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ (ΠΏΡΠΈ ΡΠ°ΡΡΠΎΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ 16 ΠΠΡ) β ΡΡΠΎ ΠΠ§ΠΠΠ¬ Π±ΡΡΡΡΠΎ. ΠΠΌΠ΅Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄Π°ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄Π°ΡΠ°ΡΠΈΡ Π½Π° ATmega328 β Arduino Nano/UNO/Mini). Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΡΡΡΠΈΠ»ΠΈ ΠΈΡ Π²ΡΠ΅ Π½Π°ΠΈΠ·ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ Ρ Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΡΠ΅, Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ. Π’Π°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ βΠΡΠ΄ΡΠΈΠ½ΠΎΠ²ΡΠΊΠΈΠ΅β ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ, ΠΎΡΡΠ°Π²Π»ΡΡ Π½Π°ΠΌ ΡΠ΄ΠΎΠ±Π½ΡΡ, ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΈΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΡ ΡΠ΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΌ Π½Π΅Ρ. ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ? ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
ΠΠΎ ΡΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ° ΠΏΠΎ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ! ΠΡΠΈΡΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅ΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅, ΡΡΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²Π°. CS11 ΡΠ°Π²Π΅Π½ 1, WGM13 ΡΠ°Π²Π΅Π½ 4, ICNC1 ΡΠ°Π²Π΅Π½ 7 (ΡΠΌ. ΡΠ°Π±Π»ΠΈΡΡ Π²ΡΡΠ΅). ΠΡΠΌΠ°Ρ Π·Π΄Π΅ΡΡ Π²ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ: Π΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡ (Π±Π°ΠΉΡ), ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΈ ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· 8 Π±ΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ Π±ΠΈΡΠ° Π² Π±Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°. ΠΡΡΠ°Π»ΠΎΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΈΠΌ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΠ°ΠΏΠΈΡΡ/ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΡΠΎΠ² Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ . ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π²ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ Π²Ρ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π°Π½Π½Π°Ρ ΡΡΡΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π°. ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½ΡΠΆΠ½ΡΡ Π±ΠΈΡΠΎΠ² Π² Π½ΡΠΆΠ½ΠΎΠΌ Π±Π°ΠΉΡΠ΅ (Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅) Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ 0 ΠΈΠ»ΠΈ 1. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎΠΊ ΠΏΠΎ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ΠΎ Π²ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π±ΠΈΡΠ°ΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π» Π²ΡΡΠ΅, ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΡΠΎ ΡΠ²Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π±Π°ΠΉΡΠ° ΡΡΠ°Π·Ρ, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ ΠΈ Π½ΡΠ»ΡΠΌΠΈ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
Π’ΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π³Π΄Π΅ ΡΡΠΎΠΈΡ. Π§Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΡ ΠΏΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π²Π°. ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π² ΡΡΠΆΠΈΡ ΡΠΊΠ΅ΡΡΠ°Ρ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ. ΠΠΎΡΠ°Π·Π΄ΠΎ ΡΠ°ΡΠ΅ Π±ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΠΎ βΠΏΡΠΈΡΠ΅Π»ΡΠ½ΠΎβ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ Π² Π±Π°ΠΉΡΠ΅, ΠΈ ΡΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ (Π±ΠΈΡΠΎΠ²ΡΠ΅) ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π²ΠΎ Π²ΡΠ΅Ρ ΠΈΠ· Π½ΠΈΡ BYTE ΡΡΠΎ Π±Π°ΠΉΡ-ΡΠ΅Π³ΠΈΡΡΡ, ΠΈ BIT ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ Π±ΠΈΡΠ°, ΡΡΠΈΡΠ°Ρ Ρ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΊΡΠ°Ρ. Π’ΠΎ Π΅ΡΡΡ BIT ΡΡΠΎ ΡΠΈΡΡΠ° ΠΎΡ 0 Π΄ΠΎ 7, Π»ΠΈΠ±ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΡΠ° ΠΈΠ· Π΄Π°ΡΠ°ΡΠΈΡΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ° Π² 1 | Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ° Π² 0 | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ||
BYTE |= (1 | BYTE &= (1 | ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° BYTE |= (2^BIT); | BYTE &= (2^BIT); | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ 2 Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ (ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠΉ!) |
BYTE |= bit(BIT); | BYTE &= bit(BIT); | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°ΡΠ΄ΡΠΈΠ½ΠΎΠ²ΡΠΊΠΈΠΉ ΠΌΠ°ΠΊΡΠΎΡ bit(), Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠΉ ΡΠ΄Π²ΠΈΠ³ | ||
BYTE |= _BV(BIT); | BYTE &= _BV(BIT); | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ _BV(), ΠΎΠΏΡΡΡ ΠΆΠ΅ Π°Π½Π°Π»ΠΎΠ³ ΡΠ΄Π²ΠΈΠ³Π° | ||
sbi(BYTE, BIT); | cbi(BYTE, BIT); | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ sbi ΠΈ cbi | ||
bitSet(BYTE, BIT); | bitClear(BYTE, BIT); | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°ΡΠ΄ΡΠΈΠ½ΠΎΠ²ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ bitSet() ΠΈ bitClear() |
ΠΠΎΠΆΠ½ΠΎ Π΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ, Π³Π΄Π΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ βΠΏΡΠΈΡΠ΅Π»ΡΠ½ΠΎβ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΡΠΎΠ²:
Π― Π΄ΡΠΌΠ°Ρ ΡΡΡ Π²ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ βΠΏΡΠΈΡΠ΅Π»ΡΠ½ΠΎβ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±ΠΈΡ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°:
Π§ΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠ° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
(BYTE >> BIT) & 1 | ΠΡΡΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΄Π²ΠΈΠ³ |
bitRead(BYTE, BIT) | ΠΡΠ΄ΡΠΈΠ½ΠΎΠ²ΡΠΊΠ°Ρ ΠΌΠ°ΠΊΡΠΎ-ΡΡΠ½ΠΊΡΠΈΡ |
ΠΠ²Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ 0 ΠΈΠ»ΠΈ 1 Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±ΠΈΡΠ°. ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΡΠ°ΠΌΠΈ ΡΠΌΠΎΡΡΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΏΠΎ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ.
16-Π±ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ
Π’Π°ΠΊΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²Ρ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ βΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡΡΡβ ΡΠ΅ΡΠ΅Π· ΡΠ΄Π²ΠΈΠ³:
ΠΠ°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±Π°ΠΉΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ) β ΠΠ βΠ·Π°ΡΠ΅Π»ΠΊΠΈΠ²Π°Π΅Ρβ ΠΎΠ±Π° ΡΠ΅Π³ΠΈΡΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ»Π°Π΄ΡΠΈΠΉ β Π² ΡΡΠ°ΡΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ 0, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π°.
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ
ΠΠ±Π½ΠΎΠ²Π». 27 Π‘Π΅Π½ 2021 |
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠΎΠ΄Π΅Π»Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π½Π° Π³ΡΡΠΏΠΏΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π²ΡΠΎΡΠΎΠΉ β Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π° ΡΡΠ΅ΡΠΈΠΉ β Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°.
Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ ΠΏΠ°ΠΌΡΡΠΈ:
Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ (data segment) β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ .data ΠΈ .bss. Π‘Π΅ΠΊΡΠΈΡ .data ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ° ΡΠ΅ΠΊΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΎΠ½Π° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π‘Π΅ΠΊΡΠΈΡ .bss ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΠΈΠ΅ΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π±ΡΡΠ΅ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠ·ΠΆΠ΅. ΠΡΠ° Π±ΡΡΠ΅ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° Π½ΡΠ»ΡΠΌΠΈ.
Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° (code segment) β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅ΠΊΡΠΈΠ΅ΠΉ .text. ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠΎΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ.
Π‘ΡΠ΅ΠΊ (stack) β ΡΡΠΎ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π Π΅Π³ΠΈΡΡΡΡ
ΠΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Ρ ΠΎΡΡΡΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ· Π±Π»ΠΎΠΊΠ° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΊΠ°Π½Π°Π»Ρ β ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ. Π Π΅Π³ΠΈΡΡΡΡ Ρ ΡΠ°Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π²ΡΡΡΠΎΠ΅Π½ΠΎ Π² ΡΠΈΠΏ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ IA-32 Π΅ΡΡΡ Π΄Π΅ΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΡ ΠΈ ΡΠ΅ΡΡΡ 16-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². Π Π΅Π³ΠΈΡΡΡΡ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
ΠΠ±ΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (General Registers);
Π Π΅Π³ΠΈΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Control Registers);
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (Segment Registers).
Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ (Data Registers);
Π Π΅Π³ΠΈΡΡΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (Pointer Registers);
ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (Index Registers).
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ β ΡΡΠΎ ΡΠ΅ΡΡΡΠ΅ 32-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ , Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈ 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΡΠ΅ 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ : EAX, EBX, ECX, EDX;
Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ 32-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΡΡΠ΅ 16-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Π΄Π°Π½Π½ΡΡ : AX, BX, CX ΠΈ DX;
Π½ΠΈΠΆΠ½ΡΡ ΠΈ Π²Π΅ΡΡ Π½ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠ΅ΡΡΡΠ΅Ρ 16-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π²ΠΎΡΠ΅ΠΌΡ 8-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ : AH, AL, BH, BL, CH, CL, DH ΠΈ DL.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ :
AX (primary accumulator) β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ EAX/AX/AL Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°.
BX (base register) β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ.
CX (count register) β Ρ ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠ»ΠΎΠ² Π² ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ (ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ECX ΠΈ CX).
DX (data register) β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ AX ΠΈ DX Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π Π΅Π³ΠΈΡΡΡΡ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ
Π Π΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ-ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ EIP, ESP ΠΈ EBP ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ 16-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ IP, SP ΠΈ BP. ΠΡΡΡ ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Instruction Pointer ΠΈΠ»ΠΈ IP) β 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ IP Ρ ΡΠ°Π½ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. IP Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ CS (ΠΊΠ°ΠΊ CS:IP) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π°.
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ΅ΠΊ (Stack Pointer ΠΈΠ»ΠΈ SP) β 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ SP ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅. SP Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ SS (SS:SP) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅ΡΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (Base Pointer ΠΈΠ»ΠΈ BP) β 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ BP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΄ΡΠ΅Ρ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ SS ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² BP, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. BP ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Ρ DI ΠΈ SI Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ
Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ESI ΠΈ EDI ΠΈ ΠΈΡ 16-Π±ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ: SI ΠΈ DI. ΠΡΠ΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π°, Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ/Π²ΡΡΠΈΡΠ°Π½ΠΈΡ. ΠΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Source Index ΠΈΠ»ΠΈ SI) β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ .
ΠΠ½Π΄Π΅ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Destination Index ΠΈΠ»ΠΈ DI) β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ .
Π Π΅Π³ΠΈΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π Π΅Π³ΠΈΡΡΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ 32-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ 32-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² (ΡΠ΅Π³ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΎΡΡΠ°ΠΆΠ°ΡΡΠΈΠΉ Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅). ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ², Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΠΎΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ»Π°Π³ΠΈ:
Π€Π»Π°Π³ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Overflow Flag ΠΈΠ»ΠΈ OF) β ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ (ΠΊΡΠ°ΠΉΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π±ΠΈΡΠ°) ΠΏΠΎΡΠ»Π΅ signed Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π€Π»Π°Π³ Π»ΠΎΠ²ΡΡΠΊΠ° (Trap Flag ΠΈΠ»ΠΈ TF) β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΠΎΠ΄Π½ΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ»Π°Π³ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° (Auxiliary Carry Flag ΠΈΠ»ΠΈ AF) β ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΎΡ Π±ΠΈΡΠ° 3 Π΄ΠΎ Π±ΠΈΡΠ° 4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ. AF ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° 1-Π±Π°ΠΉΡΠΎΠ²Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΈΠ· Π±ΠΈΡΠ° 3 Π² Π±ΠΈΡ 4.
Π€Π»Π°Π³ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° (Carry Flag ΠΈΠ»ΠΈ CF) β ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ 0 ΠΈΠ»ΠΈ 1 ΠΈΠ· ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° (ΠΊΡΠ°ΠΉΠ½Π΅Π³ΠΎ ΡΠ»Π΅Π²Π°). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π±ΠΈΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π²ΠΈΠ³Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΡΠ»Π°Π³ΠΎΠ² Π² 16-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠ»Π°Π³ΠΎΠ²:
Π€Π»Π°Π³: | O | D | I | T | S | Z | A | P | C | |||||||
ΠΠΈΡ β: | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ
Π‘Π΅Π³ΠΌΠ΅Π½ΡΡ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΠ΄ ΠΈ ΡΡΠ΅ΠΊ. ΠΡΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°:
Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° (Code Segment ΠΈΠ»ΠΈ CS) β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ. 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡ CS Ρ ΡΠ°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°.
Π‘Π΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ (Data Segment ΠΈΠ»ΠΈ DS) β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ. 16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡ DS Ρ ΡΠ°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ .
Π‘Π΅Π³ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ° (Stack Segment ΠΈΠ»ΠΈ SS) β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Β«Π‘ΡΠ΅ΠΊΒ». Π Π΅Π³ΠΈΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡ SS Ρ ΡΠ°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΠ΅ΠΊΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² CS, DS ΠΈ SS ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² β ES (Extra Segment), FS ΠΈ GS, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Ρ ΡΠ°Π½ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° Π»ΡΠ±ΡΡ ΡΡΠ΅ΠΉΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ 9 Π·Π²ΡΠ·Π΄ΠΎΡΠ΅ΠΊ Ρ ΠΏΡΠΎΡΡΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ:
Π£ΡΠΎΠΊΠΈ FASM. Π Π΅Π³ΠΈΡΡΡΡ. Window x32
Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ?
ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ Π±ΡΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π² ΠΠ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΠΠ£. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌ ΠΠΠ£, ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΠΠ£.
Π Π΅Π³ΠΈΡΡΡ RAX ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ EAX, EAX ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ AX, AX ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ 2 ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² AH ΠΈ AL.
wikipedia
OllyDbg
Ollydbg
ΠΠ°ΡΠ΅ΠΌ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠ΅ΠΉ 1 ΡΠ΅Π³ΠΈΡΡΡΠ°?
ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² x86 (ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π½Π° 64 Π±ΠΈΡΠ½ΠΎΠΌ Π¦Π Π·Π°ΠΏΡΡΡΠΈΡΡ 32 Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ)
ΠΠ°ΠΊΠΈΠ΅ Π±ΡΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ?
ΠΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ, Π½ΠΎ Π΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠΎ 32 Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (16, 8):
ESI (SI, ΡΡΠΎ 16 Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ, ΠΌΠ΅Π½ΡΡΠ΅ Π½Π΅Ρ)
EDI (DI, ΡΡΠΎ 16 Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ, ΠΌΠ΅Π½ΡΡΠ΅ Π½Π΅Ρ)
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ?
Π Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ (int), ΡΠΈΡΠ»Π° Π±Π΅Π· Π·Π½Π°ΠΊΠ° (unsigned int), ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (float, Π² x64 ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ double Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅), Π°Π΄ΡΠ΅Ρ, ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°), ΠΈ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΡ:
Π§ΡΠΎ Π·Π° ΡΠ΅Π³ΠΈΡΡΡ FLAGS?
ΠΡΠΎ ΡΠ΅Π³ΠΈΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π¦Π, ΠΎΠ½ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π», ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ².
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ 80386 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Intel ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ 16 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΅ΡΡ 11 ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (MMX) ΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ (FPU/NPX). ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΡΠΎΠΊΠΎ.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡΡΠ°Π²/ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΡΠ°ΠΊ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel.
Π’Π°Π±Π»ΠΈΡΠ° 2.1. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ | Π Π°Π·ΡΡΠ΄Π½ΠΎΡΡΡ | ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
EAX | 32 | ΠΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ |
EBX | 32 | ΠΠ°Π·Π° |
ECX | 32 | Π‘ΡΡΡΡΠΈΠΊ |
EDX | 32 | Π Π΅Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ |
EBP | 32 | Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π±Π°Π·Ρ |
ESP | 32 | Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° |
ESI | 32 | ΠΠ½Π΄Π΅ΠΊΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° |
EDI | 32 | ΠΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΠ° |
EFLAGS | 32 | Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² |
EIP | 32 | Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ) |
CS | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
DS | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
ES | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
FS | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
GS | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
SS | 16 | Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ |
Π Π΅Π³ΠΈΡΡΡΡ EAX, EBX, ECX, EDX β ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΡΠ°ΠΊ ΡΠΆ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ), ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π Π΅Π³ΠΈΡΡΡΡ EBP, ESP, ESI, EDI β ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Β«Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΉΒ» ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π Π΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π±ΡΠ΄ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π°Π»Π΅Π΅.
ΠΠΎΠΊΠ° Π΄Π»Ρ Π²Π°Ρ Π·Π΄Π΅ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΡΠ»ΠΎΠ², Π½ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΡ ΠΏΡΠΎΡΡΠ½ΠΈΡΡΡ)))
ΠΠΎΠ³Π΄Π°-ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π±ΡΠ»ΠΈ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ, ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠ΅ ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π±ΡΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ. ΠΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° 2 ΠΈΠ»ΠΈ 4 Β«ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ Β» ΡΠ΅Π³ΠΈΡΡΡΠ°, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΈΠΌΠ΅Π½Π°. Π ΡΠ°Π±Π»ΠΈΡΠ΅ 2.2 ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°.
ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ΠΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠΌΠ΅ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ AX ΡΠΈΡΠ»ΠΎ 1. Π Π°Π·Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π½ΡΠ»ΠΈΡ ΡΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° EAX, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ EAX Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ»ΠΎ 1. Π ΠΏΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΡΠ°Π²ΠΈΡ Π² ΡΡΠ°ΡΡΠΈΡ ΡΠ°Π·ΡΡΠ΄Π°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ° EAX ΡΡΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π Π΅ΡΠ»ΠΈ ΡΠ°ΠΌ Π±ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ Π½ΡΠ»Ρ, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ EAX Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΈΡΠ»ΠΎ, Π½ΠΎ Π½Π΅ 1. Π Π²ΠΎΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ AX Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ»ΠΎ 1. Π‘Π»ΠΎΠΆΠ½ΠΎ? ΠΡ ΡΡΠΎ ΠΏΠΎΠΊΠ°β¦ Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²Ρ ΠΊ ΡΠ°ΠΊΠΈΠΌ Π²Π΅ΡΠ°ΠΌ ΠΏΡΠΈΠ²ΡΠΊΠ½ΠΈΡΠ΅.
ΠΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠ°Π·ΡΡΠ΄Π°Ρ (Π±ΠΈΡΠ°Ρ ). ΠΡΡ ΡΠ΅ΠΌΡ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ , ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠΊΠ° Π²Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄ (Π±ΠΈΡ) β ΡΡΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±ΠΈΡ. ΠΠ½ ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠΏΡΠ°Π²Π°. Π‘ΡΠ°ΡΡΠΈΠΉ Π±ΠΈΡ β ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»Π΅Π²Π°. ΠΠΎΠΌΠ΅Ρ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±ΠΈΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΡΠ»Π°/ΡΠ΅Π³ΠΈΡΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΡΠ°ΡΡΠΈΠΌ Π±ΠΈΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ 31-ΠΉ Π±ΠΈΡ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0, Π° Π½Π΅ Ρ 1).
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊ Β«ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠ°ΠΌΒ» ΠΈ Β«ΡΠ΅ΡΠ²Π΅ΡΡΠΈΠ½ΠΊΠ°ΠΌΒ» ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΊΠ°ΠΊ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ.
Π’Π°Π±Π»ΠΈΡΠ° 2.2. Β«ΠΠ΅Π»ΠΈΠΌΡΠ΅Β» ΡΠ΅Π³ΠΈΡΡΡΡ..
Π Π΅Π³ΠΈΡΡΡ | Π‘ΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ | ΠΠΌΠ΅Π½Π° 16-ΡΠΈ ΠΈ 8-ΠΌΠΈ Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² | |
31β¦16 | 15β¦8 | 7β¦0 | |
EAX | . | AX | |
AH | AL | ||
EBX | . | BX | |
BH | BL | ||
ECX | . | CX | |
CH | CL | ||
EDX | . | DX | |
DH | DL | ||
ESI | . | SI | |
EDI | . | DI | |
EBP | . | BP | |
ESP | . | SP | |
EIP | . | IP |
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Π½Π°ΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ β ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π», ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π±Π΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π·Π½Π°Π½ΠΈΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈ ΡΠΆΠ΅ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
MS-DOS ΠΈ TASM 2.0. Π§Π°ΡΡΡ 8. Π Π΅Π³ΠΈΡΡΡΡ.
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΡΠ΄Π° ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Ρ ΠΆΡΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ β Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ , Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΡ Π±Π»ΠΎΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΠΈ β ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β ΡΡΠΎ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π±Π»ΠΎΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ·ΡΡΠ°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° TD (Turbo Debugger) ΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β«Hello, world!Β» (prg.com). Π’Π°ΠΊ ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ DOSBox ΠΈ ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ (Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π΅ DOS-1.rar, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°).
ΠΠ·ΡΡΠ°Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ TD ΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ Turbo Debugger ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΡ ΠΎΠΊΠ½ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ F5 Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ TD.
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Intel ΠΈ ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ ΠΈΡ
ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ΅Π³ΠΈΡΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ 80386, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Intel ΠΈ ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΈΠΌΠ΅ΡΡ 16 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈ 11 ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (FPU/NPX) ΠΈ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (MMX). ΠΠ»Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ΅ΠΌ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ (GDTR, IDTR, TR, LDTR), ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (CR0, CR1 β CR4), ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ (DR0 β DR7) ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° 8086.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ 16 Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ MS-DOS, ΡΠΎ Π²Π΅ΡΠ½ΡΠΌΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² 8086 ΠΈ 80286. Π ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ 32 ΠΈ 64 Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³ΠΈΡΡΡ ax (16 Π±ΠΈΡ) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ° eax (32 Π±ΠΈΡΠ°). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ . Π’Π°ΠΊΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Ρ 16 Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π² 32 Π±ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΡΠ°ΠΊ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ (8086 ΠΈ 80286) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 12 16-ΡΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². Π Π΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΈΠ½ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π² ΡΡΠΈ Π³ΡΡΠΏΠΏΡ:
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π² ΡΠΎΡΡΠ°Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π²Ρ ΠΎΠ΄ΡΡ:
16-ΡΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ 0FFFFh Π±ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ Π΄Π²Π° Π±Π°ΠΉΡΠ°: 0FFh-0FFh ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ (ΡΠ΅Π³ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
Π Π΅Π³ΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°ΡΡΠΈΠΌ (High β ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π»ΠΈΡΠ΅ΡΠΎΠΉ H) ΠΈ ΠΌΠ»Π°Π΄ΡΠΈΠΌ (Lough β ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π»ΠΈΡΠ΅ΡΠΎΠΉ L) ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΠΌ.