ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅
ΠΠ° ΡΡΠΎ Ρ Π»ΡΠ±Π»Ρ Assembler?
ΠΠ³ΠΎΠ²ΠΎΡΠΎΡΠΊΠΈ
Π₯ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ Β«Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΒ» (assembler), Π° Β«ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°Β» (assembly language), ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ β ΡΡΠΎ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Ρ.Π΅. ΠΏΠΎ ΡΡΡΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° MASM, TASM, fasm, NASM, UASM, GAS ΠΈ ΠΏΡ., ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, Π³ΠΎΠ²ΠΎΡΡ Β«Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΒ» (Π°ΡΠΌ, asm), ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Β«ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°Β».
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ², ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΏΡ. ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠΎΠ² (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, MASM, fasm, NASM, GAS), ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ (ΠΈΠΌΠ΅Π½Π°) ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (ΠΊΠΎΠΌΠ°Π½Π΄) ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ°Ρ (Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ GAS (GNU Assembler) Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° AT&T Π΄Π»Ρ x86, Π³Π΄Π΅ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΡΡΡΠΈΠΊΡΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΡΠ°ΠΌ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½ΡΠ°Π½ΡΡ, ΡΠ±ΠΈΠ²Π°ΡΡΠΈΠ΅ Ρ ΡΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΏΡΠΈΠ²ΡΠΊΡΠ΅Π³ΠΎ ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², Ρ ΠΎΡΡ Π²ΡΡ ΡΡΠΎ Π»Π΅ΡΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Intel).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ β ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ Π±Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, x86 ΠΈ ARM), Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, 32-Π±ΠΈΡΠ½ΡΠΉ Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, 64-Π±ΠΈΡΠ½ΡΠΉ long mode; Π° Π΅ΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²ΡΠΎΠ΄Π΅ SSE, AVX, FMA, BMI ΠΈ AES-NI, ΡΠ°ΠΊ ΠΈ Π±Π΅Π· Π½ΠΈΡ ) ΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (Windows, Linux, MS-DOS). Π₯ΠΎΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Β«ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉΒ» ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ), ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π΄Π»Ρ 32- ΠΈ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΠ‘ Windows (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ Windows ΠΈ Linux), Π½ΠΎ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΡΠ°ΡΡΠΎ. ΠΠ΅Π΄Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ (Π½Π΅ ΡΡΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ², ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ) β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΈΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΠ‘, ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Ρ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΌΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΡΠΊΡΠ΄Π° ΡΠ°ΡΡΡΡ Π½ΠΎΠ³ΠΈ?
ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ Ρ ΡΠ²Π»ΡΠΊΡΡ Π»Π΅Ρ Π² 12β13, ΠΈ ΠΎΠ½ ΠΌΠ΅Π½Ρ ΠΈΠ·ΡΡΠ΄Π½ΠΎ Β«Π·Π°ΡΡΠ½ΡΠ»Β». ΠΠΎΡΠ΅ΠΌΡ?
ΠΠΎ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 2-Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π»Π΅Ρ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ) Π² ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°, Π΄Π° ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ Π²ΠΏΠΎΠ»Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ (ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π΅ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ ΡΡΠΎ, Ρ ΠΎΡΡ Π·Π°ΠΊΠΎΠ½ ΠΠΈΡΡΠ° Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ»). Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π·Π°ΡΠ°ΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΄Π°ΠΆΠ΅ Π»ΡΡΡΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π§ΡΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π²Π΅Π΄Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π° Π½ΡΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΡΠΌΠ½ΡΠ΅ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅, Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ (Π² Ρ.Ρ. Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ)?
ΠΠΎΠ½ ΠΎΠ½ΠΎ ΡΡΠΎ!
ΠΡΠΈΠ²Π΅Π΄Ρ ΡΠ²ΠΎΠΈ Π΄ΠΎΠ²ΠΎΠ΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΌ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ.
Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π΅ΡΡΡ ΠΎΡΠΎΠ±Π°Ρ ΠΌΠ°Π³ΠΈΡ ΠΈ ΠΏΡΠΈΡΡΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ! ΠΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅Π³Π΄Π° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ β Π·Π°Π½ΡΡΠΈΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΈΠ»ΠΈΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΠΈ (Ρ ΡΠ°ΠΌ ΡΠ΅ΠΆΠ΅ ΠΏΠΈΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ). ΠΠ΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΡΠΎΠ»Ρ ΡΠΆ ΠΆΡΡΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΡΡ ΡΠ°ΠΊΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΠΎΠΌ ΠΆΠ΅ C/C++ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΠΏΡΠΈΡΡΠΌ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ Π΄Π΅ΡΡΡΠΎΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ ΠΠ‘, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡ.
ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ (ΠΏΡΠΈΠΌΠ΅Ρ). Π§Π°ΡΡΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΡΠ°Π²ΠΎΠΊ Π² ΠΊΠΎΠ΄ Π½Π° Π―ΠΠ£ (ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ RTL-ΠΌΠΎΠ΄ΡΠ»ΠΈ Delphi, ΡΠ°ΠΌ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ° Π² ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ). ΠΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠΈΠ½ΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΎ) Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠΎΠ΄ΡΡΠΎΠΆΠΈΠΌβ¦
ΠΡΠ°ΠΊ, ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ.
ΠΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ?
Π’Π°ΠΊ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ? ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π΅ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ Ρ Π²Π°Ρ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ Π°ΠΌΠ±ΠΈΡΠΈΠΈ, ΡΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΆΠ΅Π»Π΅Π·Π° (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΏΠ°ΠΌΡΡΠΈ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Ρ ΠΎΡΡ Π±Ρ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ), ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΌ ΡΡΠΎΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ. ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΡΡΡ ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° Python ΠΈΠ»ΠΈ JavaScript. Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ·ΡΠΊ β C ΠΈΠ»ΠΈ C++, Ρ ΠΎΡΠΎΡΠ΅Π½ΡΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ Β«ΡΠ°ΠΊΡΠΈΠΊΠ΅Β», Π½ΠΎ ΠΈ ΠΎ Β«ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈΒ» Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ (ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ), ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π±Π΅Π· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠ΅Π±Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈ ΠΎΠΊΡΠ½ΡΡΡΡΡ Π² Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°:
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
ΠΡΠ΅ ΡΡΠΈ ΡΡΡΠ»ΠΊΠΈ (Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΠΎΡΠ»ΠΈ Π² ΡΡΡ ΡΡΠ°ΡΡΡ) Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ, ΠΊΠ»ΠΈΠΊΠ½ΡΠ² ΡΡΠ΄Π°.
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠΈΡΡ Π²Π°Ρ Π² Π½Π°Ρ ΡΡΡΠ½ΡΠΉ Β«Π»Π°ΠΌΠΏΠΎΠ²ΡΠΉΒ» ΡΠ°Π·Π΄Π΅Π» Assembler Π€ΠΎΡΡΠΌΠ° Π½Π° ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°Ρ .Π Ρ π
ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ Π΄Π΅ΠΌΠΎΡΡΠ΅Π½ΠΎΠΉ ΠΈ ΡΠ°ΠΉΠ·ΠΊΠΎΠ΄ΠΈΠ½Π³ΠΎΠΌ, welcome here.
ΠΠ° ΡΡΠΎ Ρ Π»ΡΠ±Π»Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ?
ΠΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΆΠ΅ ΠΏΠΎΡΡΠΈ 3 Π³ΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈ Π²ΡΠ»ΠΎΠΆΠΈΡΡ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½Π° Π₯Π°Π±Ρ.
ΠΠ³ΠΎΠ²ΠΎΡΠΎΡΠΊΠΈ
Π₯ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ Β«Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΒ» (assembler), Π° Β«ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°Β» (assembly language), ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ β ΡΡΠΎ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Ρ.Π΅. ΠΏΠΎ ΡΡΡΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° MASM, TASM, fasm, NASM, UASM, GAS ΠΈ ΠΏΡ., ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, Π³ΠΎΠ²ΠΎΡΡ Β«Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΒ» (Π°ΡΠΌ, asm), ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Β«ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°Β».
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ², ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΏΡ. ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠΎΠ² (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, MASM, fasm, NASM, GAS), ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ (ΠΈΠΌΠ΅Π½Π°) ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (ΠΊΠΎΠΌΠ°Π½Π΄) ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ°Ρ (Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ GAS (GNU Assembler) Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° AT&T Π΄Π»Ρ x86, Π³Π΄Π΅ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΡΡΡΠΈΠΊΡΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΡΠ°ΠΌ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½ΡΠ°Π½ΡΡ, ΡΠ±ΠΈΠ²Π°ΡΡΠΈΠ΅ Ρ ΡΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΏΡΠΈΠ²ΡΠΊΡΠ΅Π³ΠΎ ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², Ρ ΠΎΡΡ Π²ΡΡ ΡΡΠΎ Π»Π΅ΡΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Intel).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ β ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΡΡ Π±Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, x86 ΠΈ ARM), Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (16-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, 32-Π±ΠΈΡΠ½ΡΠΉ Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, 64-Π±ΠΈΡΠ½ΡΠΉ long mode; Π° Π΅ΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²ΡΠΎΠ΄Π΅ SSE, AVX, FMA, BMI ΠΈ AES-NI, ΡΠ°ΠΊ ΠΈ Π±Π΅Π· Π½ΠΈΡ ) ΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (Windows, Linux, MS-DOS). Π₯ΠΎΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Β«ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉΒ» ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ), ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π΄Π»Ρ 32- ΠΈ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΠ‘ Windows (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ Windows ΠΈ Linux), Π½ΠΎ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΡΠ°ΡΡΠΎ. ΠΠ΅Π΄Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ (Π½Π΅ ΡΡΠΈΡΠ°Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ², ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ) β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΈΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΠ‘, ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Ρ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΌΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΡΠΊΡΠ΄Π° ΡΠ°ΡΡΡΡ Π½ΠΎΠ³ΠΈ?
ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ Ρ ΡΠ²Π»ΡΠΊΡΡ Π»Π΅Ρ Π² 12β13, ΠΈ ΠΎΠ½ ΠΌΠ΅Π½Ρ ΠΈΠ·ΡΡΠ΄Π½ΠΎ Β«Π·Π°ΡΡΠ½ΡΠ»Β». ΠΠΎΡΠ΅ΠΌΡ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ) ΠΈ ΠΏΠΎΠ³ΠΎΠ½Ρ Π·Π° ΡΠΊΠΎΡΠΎΡΡΡΡ Π² ΡΠ΅ DOS-ΠΎΠ²ΡΠΊΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π° Π΄Π°Π»ΡΠΊΠΈΡ 90-Ρ Π³ΠΎΠ΄ΠΎΠ² Π±ΡΠ»ΠΈ ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΡΠ΅ΠΌ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠΎ-Π²ΡΠΎΡΡΡ (ΠΈ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ), Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Π―ΠΠ£, Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ Ρ Java) Π½Π΅Π»ΡΠ·Ρ, Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 2-Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π»Π΅Ρ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ) Π² ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°, Π΄Π° ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ Π·Π°Π΄Π°Ρ Π²ΠΏΠΎΠ»Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ (ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π΅ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ ΡΡΠΎ, Ρ ΠΎΡΡ Π·Π°ΠΊΠΎΠ½ ΠΠΈΡΡΠ° Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ»). Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π·Π°ΡΠ°ΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΄Π°ΠΆΠ΅ Π»ΡΡΡΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π§ΡΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π²Π΅Π΄Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π° Π½ΡΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΡΠΌΠ½ΡΠ΅ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅, Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ (Π² Ρ.Ρ. Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ)?
ΠΠΎΠ½ ΠΎΠ½ΠΎ ΡΡΠΎ!
ΠΡΠΈΠ²Π΅Π΄Ρ ΡΠ²ΠΎΠΈ Π΄ΠΎΠ²ΠΎΠ΄Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΌ ΡΠ°ΠΊ Ρ ΠΎΡΠΎΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ.
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ, ΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π΄Π°ΠΆΠ΅ C/C++). ΠΠ° Π°ΡΠΌΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ Π½Π°ΠΌ Π²Π·Π΄ΡΠΌΠ°Π΅ΡΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π±Π°ΠΉΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅ΡΡ. ΠΠ΅Π· Π»ΠΈΡΠ½Π΅Π³ΠΎ runtime-ΠΊΠΎΠ΄Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ°Π²Π΄Π°, ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΠΎΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π»ΠΈΡΡ Π² Π²Π΅ΡΡΠΌΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, Π³Π΄Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½Π° ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½Π° ΠΈ Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ.
ΠΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΠ‘Π, ΠΎΠ½ Π²ΡΠ΅ΠΌΠΎΠ³ΡΡ! ΠΡΡΠ΄ Π»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ MBR-Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° C ΠΈΠ»ΠΈ Π½Π° ΡΡΠΌ-ΡΠΎ Π΅ΡΡ. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΡΠ΅ΡΠΎΠ² Π·Π°ΡΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. ΠΠ»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ (injection, Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅Π»ΡΠΌΠΈ), ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π½ΡΠΈΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΡΠΈΡΠΌΠΎΠ² ΡΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. ΠΠ»ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π΄Π»Ρ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ. ΠΠ»Ρ C/C++ ΠΈΠΌΠ΅ΡΡΡΡ ΠΈΠ½ΡΡΠΈΠ½ΡΠΈΠΊΠΈ β ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (Π΅ΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π½Π΅ Π·Π½Π°Ρ, Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π»). ΠΠΎ ΠΈΡ ΡΠ°ΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π°Π΅Ρ ΠΊΠΎΠ΄ (Π½Π΅ ΠΏΡΠΎΡΠ΅ Π»ΠΈ ΡΠΎΠ³Π΄Π° ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅?) Π ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΊΠΎΠ΄ (ΠΏΡΠΈ ΡΡΠΎΠΌ, ΠΊ ΡΠ»ΠΎΠ²Ρ Π³ΠΎΠ²ΠΎΡΡ, Visual C/C++, GNU C/C++ ΠΈ Clang Π±ΡΠ΄ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΊΠΎΠ΄; ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ Π²ΡΠ΄Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ).
ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° Π―ΠΠ£ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π΅ΡΡΡΠΎΠΊ) ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Intel ΡΡΠ΅Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π―ΠΠ£ (Π½Π° ΡΠΎΠΌ ΠΆΠ΅ C/C++, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΠΈΠ½ΡΠΈΠΊΠΈ)? ΠΡΠ»ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΠ»ΠΎΠ²ΠΎ, Π° Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ. ΠΡΠΈΠ²Π΅Π΄Ρ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ rol, ror (ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π΅ΡΡ Π² ΡΠ°ΠΌΡΡ ΡΠ°Π½Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ i8086 Ρ ΠΊΠΎΠ½ΡΠ° 70-Ρ Π³ΠΎΠ΄ΠΎΠ²) ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ C++20 Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ bit (ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ std::rotl, std::rotr), Π° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ.
ΠΡΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΡΡΡΡΠ²Π°: Π΄Π΅ΠΌΠΎΡΡΠ΅Π½Π°. ΠΠ°ΠΏΠΈΡΠ°ΡΡ intro, ΡΠΌΠ΅ΡΡΠΈΠ² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² 256 Π±Π°ΠΉΡ [1, 2, 3, 4] (Π° ΡΠΎ ΠΈ 128, 64, 32 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΡ ΠΌΠ΅Π½ΡΡΠ΅) Π½Π° ΡΡΠΌ-ΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΌ ΠΎΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Π½Ρ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π»Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π°) Π²Ρ Π²ΡΡΠ΄ Π»ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅.
ΠΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ . Π ΠΏΡΠΈΠΌΠ΅ΡΡ, fasm ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° virtual), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ (Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ load, store). ΠΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ AES-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ΅Π· Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΏΡΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ (reverse engineering), Π° Π·Π°ΡΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π΅ΡΡΡ ΠΎΡΠΎΠ±Π°Ρ ΠΌΠ°Π³ΠΈΡ ΠΈ ΠΏΡΠΈΡΡΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ! ΠΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅Π³Π΄Π° Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ β Π·Π°Π½ΡΡΠΈΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΈΠ»ΠΈΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΠΈ (Ρ ΡΠ°ΠΌ ΡΠ΅ΠΆΠ΅ ΠΏΠΈΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ). ΠΠ΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΡΡΠΎΠ»Ρ ΡΠΆ ΠΆΡΡΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠ°ΡΡ ΡΠ°ΠΊΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΠΎΠΌ ΠΆΠ΅ C/C++ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΠΏΡΠΈΡΡΠΌ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ Π΄Π΅ΡΡΡΠΎΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ ΠΠ‘, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΏΡΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡ.
ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ (ΠΏΡΠΈΠΌΠ΅Ρ). Π§Π°ΡΡΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΡΠ°Π²ΠΎΠΊ Π² ΠΊΠΎΠ΄ Π½Π° Π―ΠΠ£ (ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ RTL-ΠΌΠΎΠ΄ΡΠ»ΠΈ Delphi, ΡΠ°ΠΌ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ° Π² ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ). ΠΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠΈΠ½ΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΠ°ΡΠ½ΠΎ) Π±Π΅Π· Π·Π½Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠΎΠ΄ΡΡΠΎΠΆΠΈΠΌβ¦
ΠΡΠ°ΠΊ, ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ², ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΡΡΡΡΠΎΠΉΡΡΠ² (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΡΠΈΡ ΠΠ, Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ), ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΄ΡΠ° ΠΠ‘.
ΠΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ, Π² Ρ.Ρ. Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ, ΠΏΠ°ΠΌΡΡΡΡ.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΡ (injection), ΠΊΠ°ΠΊ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΡΡ, ΡΠ°ΠΊ ΠΈ Ρ ΡΠ΅Π»ΡΡ Π·Π°ΡΠΈΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠΎΡΡ.
ΠΠ»ΠΎΠΊΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, Π·Π°ΡΠΈΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° (Ρ ΡΠ΅Π»ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²Π·Π»ΠΎΠΌΠ° Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ), Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ (ΡΠΌ. UPX, ASProtect ΠΈ ΠΏΡ).
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π² Ρ.Ρ. Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (SSE, AVX, FMA), ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ, Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΄Π΅ΠΌΠΎΡΡΠ΅Π½Π΅.
ΠΡΡΠ°Π²ΠΊΠΈ Π² ΡΠ·ΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π·Π°Π΄Π°ΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ° Π½Π° ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ C/C++ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ). ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠ², Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ².
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΡΠ»Π°Π΄ΠΊΠ°, Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (reverse engineering).
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅, Π½ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΠ (ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ β GUI), ΠΈΠ³Ρ, Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ π
ΠΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ?
Π’Π°ΠΊ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ? ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π΅ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ Ρ Π²Π°Ρ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ Π°ΠΌΠ±ΠΈΡΠΈΠΈ, ΡΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΆΠ΅Π»Π΅Π·Π° (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΏΠ°ΠΌΡΡΠΈ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Ρ ΠΎΡΡ Π±Ρ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ), ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΌ ΡΡΠΎΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ. ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΡΡΡ ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° Python ΠΈΠ»ΠΈ JavaScript. Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ·ΡΠΊ β C ΠΈΠ»ΠΈ C++, Ρ ΠΎΡΠΎΡΠ΅Π½ΡΠΊΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ Β«ΡΠ°ΠΊΡΠΈΠΊΠ΅Β», Π½ΠΎ ΠΈ ΠΎ Β«ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈΒ» Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ (ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ), ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π±Π΅Π· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠ΅Π±Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈ ΠΎΠΊΡΠ½ΡΡΡΡΡ Π² Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°:
ΠΡΠ±ΠΊΠΎΠ² Π‘.Π. Assembler Π΄Π»Ρ DOS, Windows ΠΈ Unix. β ΠΠΠ ΠΡΠ΅ΡΡ, 2017. β 638 c., ISBN 978β5β97060β535β6.
Π ΡΡΠ»Π°Π½ ΠΠ±Π»ΡΠ·ΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ x86β64. β ΠΠΠ ΠΡΠ΅ΡΡ, 2016. β 302 Ρ., ISBN 978β5β97060β364β2.
Π‘ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ WASMβΠ° β ΠΊΠ»Π°Π΄Π΅Π·Ρ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π½Π° ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ (ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ!)
ΠΠΎΠ²ΡΠΉ WASM (ΡΠΎΡΡΠΌ ΠΏΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ±ΠΎΡΠ½ΠΈΠΊ ΡΡΠ°ΡΠ΅ΠΉ).
ΠΠ½ΠΈΠ³ΠΈ ΠΈ ΡΡΠ°ΡΡΠΈ ΠΡΠΈΡΠ° ΠΠ°ΡΠΏΠ΅ΡΡΠΊΠΈ (ΠΌΠ½ΠΎΠ³ΠΎ).
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ AMD (ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²) [Π²ΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ, PDF].
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² x86 (ΡΡΠ°ΡΠΎΠ²Π°ΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅; ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ x87, MMX, 3DNow! ΠΈ SSE(1)).
ΠΠ°ΡΠΊ Π ΡΡΡΠΈΠ½ΠΎΠ²ΠΈΡ, ΠΡΠ²ΠΈΠ΄ Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½, ΠΠ»Π΅ΠΊΡ ΠΠΎΠ½Π΅ΡΠΊΡ. ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Microsoft Windows. β 6-Π΅ ΠΈΠ·Π΄., ΡΠ°ΡΡΡ 1. β ΠΠΈΡΠ΅Ρ, 2013. β 800 Ρ., ISBN 978β5β496β00434β3, 978β5β459β01730β4 (Π°Π½Π³Π».: 978β0735648739).
ΠΡΡΠ»ΠΎ 7-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Ρ ΠΠ°Π²Π»ΠΎΠΌ ΠΠΎΡΠΈΡΠΎΠ²ΠΈΡΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ°Π²ΡΠΎΡΠ° β ΠΠΈΡΠ΅Ρ, 2018 β 944 Ρ., ISBN 978β5β4461β0663β9 (Π°Π½Π³Π».: 978β3864905384).
ΠΠ°ΡΠΊ Π ΡΡΡΠΈΠ½ΠΎΠ²ΠΈΡ, ΠΡΠ²ΠΈΠ΄ Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½, ΠΠ»Π΅ΠΊΡ ΠΠΎΠ½Π΅ΡΠΊΡ. ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Microsoft Windows. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ‘. β 6-Π΅ ΠΈΠ·Π΄., ΡΠ°ΡΡΡ 2. β ΠΠΈΡΠ΅Ρ, 2014. β 672 Ρ., ISBN 978β5β496β00791β7 (Π°Π½Π³Π».: 978β0735665873).
7-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π΅ΡΡΡ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (ISBN 978β0135462409).
ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅Ρ. Windows Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Win32-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΡΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Windows. β 4-Π΅ ΠΈΠ·Π΄. β ΠΠΈΡΠ΅Ρ, Π ΡΡΡΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ, 2001. β 752 Ρ. (Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ½ΠΈΠ³ΠΈ 2008 Π³. Π½Π° 720 Ρ., Π½ΠΎ ΠΎΠ½Π° ΡΠΎΠΆΠ΅ 4-Π³ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡ, Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ 2000 Π³ΠΎΠ΄Π°β¦ Π² ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ°?), ISBN 5β272β00384β5, 978β5β7502β0360β4 (Π°Π½Π³Π».: 1β57231β996β8).
ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅Ρ, ΠΡΠΈΡΡΠΎΡ ΠΠ°Π·Π°Ρ. Windows via C&C++. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Visual C++ β 5-Π΅ ΠΈΠ·Π΄. β ΠΠΈΡΠ΅Ρ, 2009 β 896 Ρ., ISBN 978β5β388β00205β1, 978β5β7502β0367β3, 978β0β7356β2424β5 (Π°Π½Π³Π».: 978β0735624245).
ΠΠ°Π²Π΅Π» ΠΠΎΡΠΈΡΠΎΠ²ΠΈΡ. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΄ΡΠΎΠΌ Windows. β ΠΠΈΡΠ΅Ρ, 2021 β 400 c., ISBN 978β5β4461β1680β5 (Π°Π½Π³Π».: 978-1977593375).
Pavel Yosifovich. Windows 10 System Programming, Part 1 β 2020, ISBN 979-8634170381 [Π°Π½Π³Π»].
ΠΠΈΡ Π°ΠΈΠ» ΠΡΠΊ. ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° IBM PC. ΠΠ½ΡΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΡ. β 3-Π΅ ΠΈΠ·Π΄. β ΠΠΈΡΠ΅Ρ, 2008. β 1072 Ρ., ISBN 978β5β46901β182β8 (2001 Π³. β 816 Ρ., ISBN 5β88782β290β2).
ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΡΠ»Π°ΠΊΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ (+ Π΄ΠΈΡΠΊΠ΅ΡΠ°). β 2-Π΅ ΠΈΠ·Π΄. β ΠΠΈΡΠ΅Ρ, 2003. β 848 Ρ., ISBN 5β94723β487β4.
ΠΡΠ΅Π²ΠΎΠ»ΠΎΠ΄ ΠΠ΅ΡΠ²ΠΈΠΆΡΠΊΠΈΠΉ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π² Windows (+ CD-ROM). β 2-Π΅ ΠΈΠ·Π΄. β ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2008. β 528 Ρ., ISBN 978β5β9775β0263β4.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
MASM32 (Macro Assembler) β Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
MASM64 includes and libs β Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ MASM (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ); ΡΠ°ΠΉΠ»Ρ ml64.exe, link.exe ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΏΠΎΡΡΠΎΡ
Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈΠ· Visual Studio (ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64\).
fasm (flat assembler) β ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄ DOS, Wndows, Linux Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Intel/AMD. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ!
Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈ fasmg (flat assembler g) β ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (ΠΈΠΌΠ΅ΡΡΡΡ include-ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ AVR, i8051, x86/x64, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° JVM, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ).
NASM (Netwide Assembler) β Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Ρ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΌΠ°ΠΊΡΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Intel/AMD, ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π² Π·Π°ΡΡΠ±Π΅ΠΆΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
ΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ Linux/BSD.
NASMX β ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², includeβΠΎΠ², ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ NASM ΠΏΠΎΠ΄ Windows, Linux, BSD, Xbox; Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ°ΠΊΡΠΎΡ invoke, ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ OpenGL ΠΈ ΠΏΡ.
UASM (ΠΎΠ½ ΠΆΠ΅ HJWasm) β ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ MASM-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Intel/AMD.
TASM 5.x (Turbo Assembler) β ΡΡΠ°ΡΡΠΉ, Π½ΠΎ Π²ΡΡ Π΅ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ΄ DOS.
ALINK, GoLink β ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ΄ DOS ΠΈ Windows.
objconv β ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (COFF/OMF/ELF/Mach-O).
ResEd β Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ΅ΡΡΡΡΠΎΠ².
GoRC β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΡΡΡΡΠΎΠ² (rc β res) [Π² Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΌ NASMX Π΅ΡΡΡ ΠΈ GoLink, ΠΈ objconv, ΠΈ GoRC].
Windows 10 Software Development Kit (SDK) β Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ WinDbg) Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Windows.
Fresh IDE β Π²ΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ fasm.
SASM β ΠΏΡΠΎΡΡΠ°Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ NASM, MASM, GAS, fasm Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ (Π΄Π»Ρ NASM ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ).
OllyDbg β ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ 32-Π±ΠΈΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ (Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ 64-Π±ΠΈΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π΅ΡΡ Π½Π΅ Π²ΡΡΠ»Π°).
x64dbg β Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π΄Π»Ρ 32- ΠΈ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
IDA Pro β ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (shareware).
VMware Workstation Player β ΠΌΠΎΡΠ½ΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ (Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ).
Oracle VirtualBox β Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ.
Bochs β ΡΠΌΡΠ»ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° IBM PC.
QEMU β ΡΠΌΡΠ»ΡΡΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ (QEMU Manager).
Intel Software Development Emulator (SDE) β ΡΠΌΡΠ»ΡΡΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ) ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel.
DOSBox β ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΌΡΠ»ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ΄ DOS (ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ).
Hiew β ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠΌ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (shareware).
PE Explorer β ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ΅ΠΊΡΠΈΠΉ, ΡΠ΅ΡΡΡΡΠΎΠ² PE, Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (shareware).
Windows Sysinternals β Π½Π°Π±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ Windows (ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΠΌΠΎΠ½ΠΈΡΠΎΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅).
ReactOS β Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Windows-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
KolibriOS β ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½Π°Ρ ΠΠ‘, ΡΠΌΠ΅ΡΠ°ΡΡΠ°ΡΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅ΡΡ 1.44 Mb, Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ Π½Π° fasm.
ΠΡΠ΅ ΡΡΠΈ ΡΡΡΠ»ΠΊΠΈ (Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΠΎΡΠ»ΠΈ Π² ΡΡΡ ΡΡΠ°ΡΡΡ) Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ, ΠΊΠ»ΠΈΠΊΠ½ΡΠ² ΡΡΠ΄Π°.
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠΈΡΡ Π²Π°Ρ Π² Π½Π°Ρ ΡΡΡΠ½ΡΠΉ Β«Π»Π°ΠΌΠΏΠΎΠ²ΡΠΉΒ» ΡΠ°Π·Π΄Π΅Π» Assembler Π€ΠΎΡΡΠΌΠ° Π½Π° ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°Ρ .Π Ρ π
ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΡΡ Π΄Π΅ΠΌΠΎΡΡΠ΅Π½ΠΎΠΉ ΠΈ ΡΠ°ΠΉΠ·ΠΊΠΎΠ΄ΠΈΠ½Π³ΠΎΠΌ, welcome here.
ΠΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π² 2018 Π³ΠΎΠ΄Ρ
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ·ΡΠΊΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠΉ. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ Π―ΠΠ£, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ², ΡΠΊΡΡΠΏΡΠ»ΡΠ·Π½ΠΎ ΡΠΎΠ±ΡΠ°Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΡΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ.
1. Π―Π·ΡΠΊ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ Π―ΠΠ£
ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ (Assembly) β ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΠ°ΠΆΠ°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎ-Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. Π―Π·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° β ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΠΠ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ·ΡΠΊΠΎΠ² Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΊΡΡΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ»Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π²ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ·ΡΠΊΠ°. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ·ΡΠΊΠ°.
Π―Π·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌ, ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π―Π·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ: Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ², ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Π°Π²Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° β Β«ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΡΡΡΒ» ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π° Π³Π»Π°Π²Π½ΡΠΌ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ β ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π»ΠΊΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Ρ ΡΡΡΠ΄ΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°ΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ.
Π Ρ ΠΎΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΈΡΡΡ Π½Π° Π‘ΠΈ, Π½ΠΎ Π‘ΠΈ ΠΏΡΠΈ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°Ρ β ΡΠ·ΡΠΊ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ ΠΆΠ΅Π»Π΅Π·Π°, Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ β ΡΠ·ΡΠΊ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΠΏΡΡΠΌΠΎ ΠΎΡΡΠ°ΠΆΠ°ΡΡΠΈΠΉ Π²ΡΠ΅ ΡΡΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ.
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΡΠ°Π·Ρ ΡΡΠΈ Π²Π΅ΡΠΈ:
ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΡΡΡΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ°Π»ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ; Π΅Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ; Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ². Π ΠΈΠ΄Π΅Π°Π»Π΅ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΡΠΈΡΠ»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ².
ΠΠ° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΏΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ:
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ Ρ ΡΠ΅Π»ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΠΎΡΠΌ Π·Π°ΠΏΠΈΡΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ². Π―Π·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π² ΠΎΠ±ΡΠ΅ΠΌ, Π·Π½Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ PC-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½ΠΈΡ , ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π·Π°Π±ΠΎΡΡ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠΈΡΠΌΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
2. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
ΠΠ°ΠΊΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π»ΡΡΡΠ΅?
ΠΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° x86-x64, ΠΈΠΌΠ΅Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΡΡΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ². ΠΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ β Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ, Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Ρ Π΄ΡΡΠ³ΠΈΡ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ. ΠΠ°ΠΊΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π»ΡΡΡΠ΅?
Π£ΡΠΈΡΡΠ²Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠΎΠ² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² Π΄Π»Ρ x86-x64 ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΈΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΎΠ±Π·ΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²: MASM, TASM, NASM, FASM, GoASM, Gas, RosAsm, HLA.
ΠΠ°ΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²Ρ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
ΠΡΠΎ Π²ΠΎΠΏΡΠΎΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π‘Π°ΠΌΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΠΏΡΠΈΠ½Π΅ΡΠ΅Ρ Π²Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Windows | DOS | Linux | BSD | QNX | MacOS, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Intel/AMD | |
---|---|---|---|---|---|---|
FASM | x | x | x | x | ||
GAS | x | x | x | x | x | x |
GoAsm | x | |||||
HLA | x | x | ||||
MASM | x | x | ||||
NASM | x | x | x | x | x | x |
RosAsm | x | |||||
TASM | x | x |
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 16 Π±ΠΈΡ
ΠΡΠ»ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ DOS, ΡΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ. 16-ΡΠ°Π·ΡΡΠ΄Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π² 16-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ Ρ ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ).
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 64 Π±ΠΈΡ
ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ TASM, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΈΡΠΌΠ° Borland ΠΎΡ Π»Π°Π΄Π΅Π»Π° Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π½ΡΠ»Π΅Π²ΡΡ , ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅ Π΄Π°ΠΆΠ΅ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ x86-x64, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ Π±Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π°ΠΆΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. NASM ΠΈ FASM ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΠ‘ Π½Π° Π΄ΡΡΠ³ΡΡ Ρ Β«ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉΒ» ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°? ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΈΠ°Π»Π΅ΠΊΡ HLA. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Windows ΠΈ Linux Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ? Π₯ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΠ‘, ΡΠΎΠ³Π΄Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²Π°Ρ Π½Π΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΡΠΈΠΏΠ° IF, WHILE, FOR ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅). Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Ρ Β«Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈΒ» Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
ΠΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΡΡΡΠΊΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΈΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ.
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Π΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π£ΡΠΈΡΡΠ²Π°Ρ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°ΡΠΈΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° Π°Π²ΡΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π·Π°ΠΌΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ. ΠΠ²ΡΠΎΡΡ, ΡΠ°ΡΡΠΈΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ·ΡΠΊ, Π·Π°Π±ΡΠ²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ ΠΊ ΠΏΡΠΎΠ΄ΡΠΊΡΡ:
Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ ΠΈ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°. ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ , ΠΈΠ·ΡΡΠ°ΡΡΠΈΡ ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°), β ΡΡΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ·ΡΠΊΠ°. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ΅Π±Π½ΠΈΠΊ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΠ±ΡΡΡΠ½ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
MASM ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΡΡΠ΅Π΄ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΊΠ½ΠΈΠ³, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ , ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠΎΠΌ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ΅. ΠΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΊΠ½ΠΈΠ³, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ MASM Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ² ΠΏΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ MASM/TASM ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΎΠ±ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ MS-DOS. Π₯ΠΎΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Windows ΠΈ Linux.
3. ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ° ΠΈ Π²Π΅Π± ΡΠ΅ΡΡΡΡΡ
Beginners
Advanced
4. ΠΡΠ°ΠΊΡΠΈΠΊΠ°
ΠΡΠ°ΠΊ, Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈ Ρ ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΅Π΄ΡΡ. ΠΡ Π·Π°ΠΏΠ°ΡΠ»ΠΈΡΡ ΠΏΠ°ΡΠΎΠΉ/ΡΡΠΎΠΉΠΊΠΎΠΉ ΠΊΠ½ΠΈΠ³ ΠΈ Π²Π΅Π± ΠΌΠ°Π½ΡΠ°Π»Π°ΠΌΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌβ¦ Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ ΡΠ΅ΠΉ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π» Π½Π° MASM/FASM ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΌΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ:
ΠΠ΅Π»Π°Π΅ΠΌ Π²Π°ΠΌ, Π΄ΡΡΠ·ΡΡ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π½ΠΎΠ²ΡΡ Π·Π½Π°Π½ΠΈΠΉ Π² 2018 Π³ΠΎΠ΄Ρ!
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠΈΡ
Π°ΠΈΠ» Π‘ΠΌΠΎΠ»Π΅Π½ΡΠ΅Π² MiklIrk (ΠΡΠΊΡΡΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΏΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ),
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΡΠΈΡΠ΅Π½ΠΊΠΎ expressrus (ΠΠΎΠ½ΡΠΊΠΎΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ).
Ps1: Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠΉ, Π₯Π°Π±ΡΠ°Ρ Π°Π±Ρ! ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π²Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Intel-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ), ΡΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ!