Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π―Π·Ρ‹ΠΊ ассСмблСра

Π―Π·Ρ‹ΠΊ ассСмблСра (Π°Π²Ρ‚ΠΎΠΊΠΎΠ΄) β€” язык программирования Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языка ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° мнСмоничСскиС (ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅) обозначСния ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΈ этом для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° с языка ассСмблСра Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ процСссором ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ трСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, называСмая ассСмблСром.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ языка

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ языка ассСмблСра ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ процСссора, фактичСски, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи (ΠΌΠ½Π΅ΠΌΠΎΠΊΠΎΠ΄) ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, язык ассСмблСра обСспСчиваСт использованиС символичСских ΠΌΠ΅Ρ‚ΠΎΠΊ вмСсто адрСсов ячССк памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ассСмблировании Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° автоматичСски рассчитываСмыС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ адрСса, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² (ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π΅ пСрСводящихся Π² процСссорныС инструкции, Π° выполняСмых самим ассСмблСром).

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ассСмблСра ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚, Π² частности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π΄Π°Ρ‚ΡŒ ассСмблированиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π·Π°Π΄Π°Ρ‚ΡŒ значСния ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ макроопрСдСлСния с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

КаТдая модСль (ΠΈΠ»ΠΈ сСмСйство) процСссоров ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ язык ассСмблСра. НаиболСС популярныС синтаксисы: Intel-синтаксис ΠΈ AT&T-синтаксис.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π² качСствС машинного язык программирования высокого уровня (Forth, Lisp, Эль-76), фактичСски Π² Π½ΠΈΡ… ΠΎΠ½ являСтся «ассСмблСром».

Достоинства ΠΈ нСдостатки

Достоинства

НСдостатки

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ассСмблСр ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ языков программирования Π­Π’Πœ (Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). НСдостатки ассСмблСра, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π½Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… комплСксов ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ появлСнию языков Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ поколСния β€” языков программирования высокого уровня (Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, Лисп, Кобол, Паскаль, Π‘ΠΈ ΠΈ Π΄Ρ€.). ИмСнно языки программирования высокого уровня ΠΈ ΠΈΡ… наслСдники Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² настоящСС врСмя Π² индустрии ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Однако, языки ассСмблСра ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ свою Π½ΠΈΡˆΡƒ, ΠΎΠ±ΡƒΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΈΡ… ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСимущСствами Π² части эффСктивности ΠΈ возмоТности ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ использования спСцифичСских срСдств ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

На ассСмблСрС ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… критичСски Π²Π°ΠΆΠ½Ρ‹:

Π‘ использованиСм программирования Π½Π° ассСмблСрС производятся:

НСлСгальная сфСра Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС ассСмблСра Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ для Π½Π΅Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹Ρ… сфСр Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ИВ, Π² частности, с использованиСм ассСмблСра производятся:

БвязываниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ассСмблСрС часто Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ частями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы, написанными Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования.

Π­Ρ‚ΠΎ достигаСтся 2 основными способами:

Бинтаксис

Бинтаксис языка ассСмблСра опрСдСляСтся систСмой ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ процСссора.

Набор ΠΊΠΎΠΌΠ°Π½Π΄

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ языка ассСмблСра ΡΠ²Π»ΡΡŽΡ‚ΡΡ (Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Ρ‹ для Intel-синтаксиса Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86):

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записи ΠΊΠΎΠΌΠ°Π½Π΄: [ΠΌΠ΅Ρ‚ΠΊΠ°:] ΠΎΠΏΠΊΠΎΠ΄ [ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹] [;ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ]

Π³Π΄Π΅ ΠΎΠΏΠΊΠΎΠ΄ (ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) β€” нСпосрСдствСнно ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° инструкции процСссору. К Π½Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ прСфиксы (повторСния, измСнСния Ρ‚ΠΈΠΏΠ° адрСсации ΠΈ ΠΏΡ€.).

Π’ качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ константы, адрСса рСгистров, адрСса Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ ΠΏΡ€.. Различия ΠΌΠ΅ΠΆΠ΄Ρƒ стандартами Intel ΠΈ AT&T ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ, Π² основном, порядка пСрСчислСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈ ΠΈΡ… синтаксиса ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… адрСсации.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ для всСх процСссоров ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ сСмСйства Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (срСди ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстных β€” ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ процСссоров ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² x86, ARM, SPARC, PowerPC, M68k). Они ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² спСцификации процСссоров. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

НапримСр, процСссор Zilog Z80 наслСдовал систСму ΠΊΠΎΠΌΠ°Π½Π΄ Intel i8080, Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ» Π΅Π΅ ΠΈ помСнял ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ (ΠΈ обозначСния рСгистров) Π½Π° свой Π»Π°Π΄. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ Motorola Fireball наслСдовали систСму ΠΊΠΎΠΌΠ°Π½Π΄ Z80, нСсколько Π΅Ρ‘ ΡƒΡ€Π΅Π·Π°Π². ВмСстС с Ρ‚Π΅ΠΌ, Motorola ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΠ»Π°ΡΡŒ ΠΊ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°ΠΌ Intel. И Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ассСмблСров для Fireball Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с интСловскими ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°ΠΌΠΈ, Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° с ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°ΠΌΠΈ Zilog.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ассСмблСрС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹: инструкции, Π½Π΅ пСрСводящиСся нСпосрСдствСнно Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ компилятора. Набор ΠΈ синтаксис ΠΈΡ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ разнятся ΠΈ зависят Π½Π΅ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π° ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ транслятора (пороТдая Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ языков Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСмСйства Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€). Π’ качСствС Β«Π΄ΠΆΠ΅Π½Ρ‚Π΅Π»ΡŒΠΌΠ΅Π½ΡΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°Β» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Hello, world! для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ²: Π¨Π°Π±Π»ΠΎΠ½:Hider hiding

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «язык ассСмблСра»

Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ языков ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚ названия транслятора (компилятора) с этих языков β€” ассСмблСра (ΠΏΡ€ΠΈΠ²Π΅Ρ‚ β€” сборщик). НазваниС обусловлСно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «автоматичСски ΡΠΎΠ±ΠΈΡ€Π°Π»Π°ΡΡŒΒ», Π° Π½Π΅ вводилась Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎ нСпосрСдствСнно Π² ΠΊΠΎΠ΄Π°Ρ…. ΠŸΡ€ΠΈ этом Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²: ассСмблСром Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ транслятор, Π½ΠΎ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ язык программирования (Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ассСмблСрС»).

ИспользованиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «язык ассСмблСра» Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ сущСствовании Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ языка Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΈΠ»ΠΈ хотя Π±Ρ‹ стандартов Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ языки. ΠŸΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ языка ассСмблСра ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ, ассСмблСр для ΠΊΠ°ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ имССтся Π² Π²ΠΈΠ΄Ρƒ.

Π’ Π‘Π‘Π‘Π  язык ассСмблСра Ρ€Π°Π½Π΅Π΅ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ Β«Π°Π²Ρ‚ΠΎΠΊΠΎΠ΄Β».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ассСмблСрС Π² 2018 Π³ΠΎΠ΄Ρƒ

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π‘Ρ‚Π°Ρ‚ΡŒΡ посвящСна языку ассСмблСр с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠΉ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ прСимущСства ΠΈ отличия ΠΎΡ‚ Π―Π’Π£, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ нСбольшоС сравнСниС компиляторов, скрупулёзно собрано Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство Π»ΡƒΡ‡ΡˆΠ΅ΠΉ тСматичСской Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹.

1. Π―Π·Ρ‹ΠΊ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ отличия ΠΎΡ‚ Π―Π’Π£

АссСмблСр (Assembly) β€” язык программирования, понятия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ элСктронно-Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π―Π·Ρ‹ΠΊ ассСмблСра β€” символьная Ρ„ΠΎΡ€ΠΌΠ° записи машинного ΠΊΠΎΠ΄Π°, использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ написаниС ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Для ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π­Π’Πœ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ языки ассСмблСра. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков высокого уровня абстракции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² скрыты ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², язык ассСмблСра тСсно связан с систСмой ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора. Для идСального микропроцСссора, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ систСма ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‚ΠΎΡ‡Π½ΠΎ соотвСтствуСт языку программирования, ассСмблСр Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ языка. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ для Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… микропроцСссоров ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколько ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° языка.

Π―Π·Ρ‹ΠΊ ассСмблСра обСспСчиваСт доступ ΠΊ рСгистрам, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² адрСсации ΠΈ описаниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ процСссора. Π―Π·Ρ‹ΠΊ ассСмблСра ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ срСдства Π±ΠΎΠ»Π΅Π΅ высокого уровня абстракции: встроСнныС ΠΈ опрСдСляСмыС ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ нСскольким ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, автоматичСский Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², срСдства описания структур Π΄Π°Π½Π½Ρ‹Ρ…. Π“Π»Π°Π²Π½ΠΎΠ΅ достоинство языка ассСмблСра β€” Β«ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΒ» ΠΊ процСссору, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся основой ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ программистом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° Π³Π»Π°Π²Π½Ρ‹ΠΌ нСудобством β€” слишком ΠΌΠ΅Π»ΠΊΠΎΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ воспринимаСтся с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ. Однако язык ассСмблСра Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большСй стСпСни ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ само Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Π΅ΠΌ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ языки.

И хотя Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы сСйчас ΠΏΠΈΡˆΡƒΡ‚ Π½Π° Π‘ΠΈ, Π½ΠΎ Π‘ΠΈ ΠΏΡ€ΠΈ всСх Π΅Π³ΠΎ достоинствах β€” язык высокого уровня абстракции, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ программиста Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тонкости ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ ΠΆΠ΅Π»Π΅Π·Π°, Π° ассСмблСр β€” язык Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня абстракции, прямо ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ всС эти тонкости ΠΈ Π½ΡŽΠ°Π½ΡΡ‹.

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ использования ассСмблСра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ сразу Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ:

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΠΎ возмоТности быстро ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ°Π»Ρ‹ΠΉ объСм памяти. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅Π΅ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ; Π΅Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ; Π΅Π΅ созданиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… расходов. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ язык ассСмблСра Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ характСристик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹ позволяли ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ числу пСрСчислСнных качСств.

На языкС ассСмблСра ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° критичСски Π²Π°ΠΆΠ½Ρ‹:

Π―Π·Ρ‹ΠΊΠΈ программирования высокого уровня абстракции Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ с Ρ†Π΅Π»ΡŒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ большСго приблиТСния способа записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ записи, Π² частности матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… спСцифичСскиС тСхничСскиС особСнности ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π―Π·Ρ‹ΠΊ ассСмблСра разрабатываСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ спСцифики процСссора, поэтому для Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ³ΠΎ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра трСбуСтся, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Π·Π½Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Однако, имСя Π² Π²ΠΈΠ΄Ρƒ прСимущСствСнноС распространСниС PC-совмСстимых ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Π½ΠΈΡ…, ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π·Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Ρ€ΡƒΡ‚ Π½Π° сСбя Ρ„ΠΈΡ€ΠΌΡ‹-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ спСциализированного ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

2. О компиляторах

Какой ассСмблСр Π»ΡƒΡ‡ΡˆΠ΅?

Для процСссора x86-x64, имССтся Π±ΠΎΠ»Π΅Π΅ дСсятка Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ассСмблСр компиляторов. Они ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ синтаксисом. НСкоторыС компиляторы большС подходят для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ― для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов. НСкоторыС компиляторы достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляторов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ мноТСством ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² программирования. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ассСмблСров написаны ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся синтаксис, Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ. Какой ассСмблСр Π»ΡƒΡ‡ΡˆΠ΅?

Учитывая мноТСство Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ² ассСмблСров для x86-x64 ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΈΡ… изучСния, ограничимся ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… компиляторов: MASM, TASM, NASM, FASM, GoASM, Gas, RosAsm, HLA.

ΠšΠ°ΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Π²Ρ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π­Ρ‚ΠΎ вопрос, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π‘Π°ΠΌΡ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ассСмблСр Π½Π΅ принСсСт Π²Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·Ρ‹, Ссли ΠΎΠ½ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ Ρ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

WindowsDOSLinuxBSDQNXMacOS, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π°
процСссорС Intel/AMD
FASMxxxx
GASxxxxxx
GoAsmx
HLAxx
MASMxx
NASMxxxxxx
RosAsmx
TASMxx

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 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-синтаксис), это пригодится для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… статСй!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Достоинства ΠΈ нСдостаток asm-a

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ ΡƒΡ‡Π΅Π½ΠΈΠΊ спросил Ρƒ ΠœΠ°ΡΡ‚Π΅Ρ€Π°:
β€” Π”ΠΎΠ»Π³ΠΎ Π»ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ΠΌΡƒ?
β€” Если ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΄ΠΎΠ»Π³ΠΎ! β€” ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» ΠœΠ°ΡΡ‚Π΅Ρ€.
Об Π°Π²Ρ‚ΠΎΡ€Π΅ Π›Π΅ΠΊΡ†ΠΈΠΈ БП Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ БП ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ занятия БП ΠšΡƒΡ€ΡΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€. БП

Достоинства ΠΈ (ΠΎΠ΄ΠΈΠ½!) нСдостаток АссСмблСра

Достоинства:

2. На сСгодняшний дСнь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° языкС АссСмблСр ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ (ΠΎΠ½ для этого ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ «старыС» 16-, 32-разрядныС, Ρ‚Π°ΠΊ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ 64-разрядныС рСгистры ΠΏΠΎΠ΄ ОБ Ρ…64. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° программистов занимаСтся усилСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° x64Dbg для исслСдования ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ассСмблСрС. Π―Π΄Ρ€ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° x64Dbg Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Ρ„ΠΈΡ€ΠΌΠΎΠΉ TitanEngine Community Edition. Π’Ρ‹Π²ΠΎΠ΄: Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ ΠΈΠΌ Π½Π΅Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π½ΡΡ‚ΡŒΡΡ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ассСмблСром…

3. Волько язык АссСмблСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‚.ΠΊ. элСмСнтами Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ (см. ΠΊΠ½.: ΠŸΡ€Π΅ΡΠ½ΡƒΡ…ΠΈΠ½ Π›.Н. АрхитСктура ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎ-Π­Π’Πœ. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов): β€” Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ срСдства ΠΈΡ… прСдставлСния;
β€” структуры ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄);
β€” структуры памяти ΠΈ срСдства ΠΈΡ… адрСсации;
β€” структуры микропроцСссоров (МП) ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Из пСрСчислСнных элСмСнтов ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π½Π° 100%, Π° послСдниС Π΄Π²Π° – Π½Π° 50% ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ примСняя АссСмблСр.
Π’Ρ‹Π²ΠΎΠ΄: АссСмблСр Π±Π»ΠΈΠΆΠ΅ всСх ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ ΠΊ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всС связи Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ систСмы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, использованиС ассСмблСра ΠΏΡ€ΠΈ рассмотрСнии Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ являСтся ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ условиСм (Π° ΠΈΠ½Π°Ρ‡Π΅ β€” ΠΊΠ°ΠΊ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС рСгистры ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ?!). АссСмблСр β€” самый основной ΠΈ эффСктивный язык систСмного программирования.

4. Π Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (рСвСрсноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° АссСмблСрС (Ρ‚.Π΅. Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ извСстСн исходный ΠΊΠΎΠ΄). АссСмблСр позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² исполняСмом (Π΅Ρ…Π΅) Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹! (Π£Π²ΠΈΠ΄ΠΈΠΌ это Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ Π»Π΅ΠΊΡ†ΠΈΠΈ). А это ΠΈ Π²Π·Π»ΠΎΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π² цСлях Π·Π°Ρ‰ΠΈΡ‚Ρ‹ государства ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
5. ВнСсСниС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΠ΄Π° с Π°Π½Ρ‚ΠΈΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° АссСмблСрС.
6. ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ BIOS написаны всС Π΅Ρ‰Π΅ Π½Π° АссСмблСрС (хотя настойчивыС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ). Но Π° Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ хотя Π±Ρ‹ ΠΏΠΎΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ: ΠΊΠ°ΠΊ устроСн BIOS, … Ρ‚ΠΎ здСсь снова Ρ‚ΠΎΠ»ΡŒΠΊΠΎ АссСмблСр.

8. БСзопасноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ассСмблСрной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ jmp) – для случая с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ; подсчСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для этого ассСмблСрной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ Π΄Ρ€.) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° АссСмблСрС.

И извСстныС достоинства…
9. ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ Π² любом ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠΊΠΎΠ΄Π°. На языках высокого уровня ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ машинного ΠΊΠΎΠ΄Π° ΠΈ, ΠΊΠ°ΠΊ слСдствиС β€” ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ задСйствованной памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΠΎΠ΄ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ), Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠΈ снова β€” Π½Π° языкС АссСмблСра. И Π½Π΅ Π²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π΅Π΄ΠΎΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ программистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ твСрдят, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π‘++ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ MessageBox ΠΈ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ассСмблСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НавСрноС Π±ΡƒΠ΄Π΅Ρ‚!, Ссли программист Π½Π° ассСмблСрС Ρ‚ΠΎΠΆΠ΅ Π½Π΅Π΄ΠΎΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компиляции. А ΠΏΡ€ΠΈ Π½ΠΈΡ… такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² 4 Ρ€Π°Π·Π° мСньшС. И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π΄ΠΎΠ±ΠΈΡ‚ΡŒΒ» программистов Π½Π° Π‘++ Π½Π°ΠΏΠΈΡˆΡƒ: Π½Π° ассСмблСрС Ρ‚Π°ΠΊΡƒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Β«Π½ΡƒΠ»Π΅Π²ΠΎΠΉΒ» Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‚.Π΅. Π² Ρ€Π°Π·ΠΌΠ΅Ρ€ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. (Π² свободныС поля Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°). Π­Ρ‚ΠΎ β€” фокус! Π”Π°, Π½Π° ассСмблСрС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ фокусы.
10. Быстрота выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
АргумСнт 1. Π£ мСня Π±Ρ‹Π» студСнт КИВ-28 ΠšΡƒΡ‚Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ посчитал Ρ†ΠΈΠΊΠ»Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² для ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠ² Π΄ΠΎ 10-ΠΉ стСпСни с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ коэффициСнтов, для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ поля Ρ‚Ρ€ΠΎΠΉΠΊΠΈ, Π½Π° языкС Java. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считала эти Ρ†ΠΈΠΊΠ»Ρ‹ большС суток Π±Π΅Π· Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°. А Π½Π° АссСмблСрС этот счСт Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ дСсяток ΠΌΠΈΠ½ΡƒΡ‚.
…АргумСнт послСдний. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ быстродСйствиС Π‘++ ΠΈ ассСмблСра для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массива чисСл. Но ΠΏΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ассСмблСра для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами выпуска 1979 Π³ΠΎΠ΄Π°! Ну Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΎΠ½ΠΈ ассСмблСра, Π·Π½Π°Π½ΠΈΠΉ Π½Π΅Ρ‚. Π’Π΅Π΄ΡŒ для этих Ρ†Π΅Π»Π΅ΠΉ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ старыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ММΠ₯ (1997 Π³.), ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ AVX (2008 Π³.). Π’ послСднСм случаС это сравнСниС моськи со слоном. А Ссли ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с AVX-512 (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅ Π·Π° 2013 Π³.) для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π² 512 Π±ΠΈΡ‚ (это 64 Π±Π°ΠΉΡ‚Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ). НС впСчатляСт?

Π₯очСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ: люди! Π‘ΠΏΠ΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅, соврСмСнныС измСнСния Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ примСняйтС Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ‚ΠΎ-Ρ‚ΠΎ 20 Π»Π΅Ρ‚ ΠΆΠ΄Π°Π» (ММΠ₯ β€” 1997 Π³.) β€” ΠΊΠΎΠ³Π΄Π° это Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² языках высокого уровня. НС доТдался. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ АссСмблСр самый соврСмСнный, Π±Ρ‹ΡΡ‚Ρ€ΠΎΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ язык программирования. Π£Ρ‡ΠΈΡ‚Π΅ АссСмблСр!

Π .S. Π§Π°Ρ‰Π΅ всСго язык ассСмблСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для нСпосрСдствСнного управлСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ для прямого доступа ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅. На ассСмблСрС ΠΏΠΈΡˆΡƒΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΈ нСбольшиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ BIOS, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΈ ядра ОБ, β€œΠ΄Π²ΠΈΠΆΠΊΠΈβ€ ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ, вирусы, компиляторы ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. АссСмблСр слуТит инструмСнтом для связи с Π½Π΅Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ внСшними устройствами. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ критичСских Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΈΡ… быстродСйствия.

ΠΠ΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ нСдостаток! Π­Ρ‚ΠΎ β€” Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ усвоСния. Ну Π° Ссли Π²Π°ΠΌ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ β€” это ΡƒΠΆΠ΅ мСдицинская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

Π’Π«Π’ΠžΠ”. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ систСмный программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ АссСмблСром ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΈΠ½Π²Π°Π»ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ ΠΏΠΎΠ΄ систСму. Π’ΠΎΠ³Π΄Π° это программист, Π½ΠΎ Π½Π΅ систСмный ΠΈ Π½Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ассСмблСр ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ

Π­Ρ‚ΠΎΠΌΡƒ языку ΡƒΠΆΠ΅ Π·Π° 70, Π½ΠΎ Π½Π° пСнсию ΠΎΠ½ ΠΏΠΎΠΊΠ° Π½Π΅ собираСтся.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Полина Π‘ΡƒΠ²ΠΎΡ€ΠΎΠ²Π° для Skillbox Media

Π•ΡΡ‚ΡŒ традиция Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ программирования с Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран строки Β«Hello world!Β». На языкС Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, это всСго ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Всё просто, понятно ΠΈ красиво! Но Π΅ΡΡ‚ΡŒ язык программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ солидный кусок ΠΊΠΎΠ΄Π°:

Π­Ρ‚ΠΎ ассСмблСр. Волько Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ»ΠΎΡ…. ΠŸΡ€ΠΎΡΡ‚ΠΎ Python β€” это язык высокого уровня, Π° ассСмблСр β€” Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ. Одна ΠΊΠΎΠΌΠ°Π½Π΄Π° Python ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сразу нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ процСссора, Π° каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° ассСмблСра β€” всСго ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

Π‘Π»ΠΎΠΆΠ½ΠΎ? Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚, ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, спСциалист ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π›Π΅Π³ΠΊΠΎ ΠΈ доступно рассказываСт ΠΎ слоТных Π²Π΅Ρ‰Π°Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅.

НСмного ΠΎ процСссорах ΠΈ машинном языкС

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ язык ассСмблСра, Π½Π°Ρ‡Π½Ρ‘ΠΌ с Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ процСссор ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС с Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Β«Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒΒ».

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ β€” это элСктронноС устройство (сСйчас ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Π°Ρ микросхСма, Π° Ρ€Π°Π½ΡŒΡˆΠ΅ процСссоры Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ Ρ†Π΅Π»Ρ‹Π΅ Π·Π°Π»Ρ‹), Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ слов ΠΈ Ρ†ΠΈΡ„Ρ€. Он Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΄Π²Π° уровня напряТСния: высокий β€” Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, Π½ΠΈΠ·ΠΊΠΈΠΉ β€” ноль. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ каТдая процСссорная ΠΊΠΎΠΌΠ°Π½Π΄Π° β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†: 1 β€” Π΅ΡΡ‚ΡŒ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ, 0 β€” Π½Π΅Ρ‚.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с процСссором ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Он состоит ΠΈΠ· инструкций, записанных Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. КаТдая инструкция опрСдСляСт ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ: Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½Π°Π΄ числами, Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ (ΠΏΠΎΡ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ), Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

НапримСр, для Intel 8088 инструкция 0000001111000011B β€” это опСрация слоТСния Π΄Π²ΡƒΡ… чисСл, Π° 0010101111000011B β€” вычитания.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° машинном языкС Π½Π΅Π»Π΅Π³ΠΊΠΎ β€” приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½ΡƒΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†. Π’Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° ΡƒΠΆ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‡ΡƒΠΆΠΎΠΌ ΠΊΠΎΠ΄Π΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π±Ρ‹Π» создан язык ассСмблСра, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΈ сокращСниями английских слов, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… ΡΡƒΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° mov ax, 6 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Β«ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ число 6 Π² ячСйку памяти AXΒ».

Когда ΠΈ ΠΊΠ°ΠΊ Π±Ρ‹Π» создан ассСмблСр?

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π΅Ρ‰Ρ‘ Π² сороковых Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°. АссСмблСр Π±Ρ‹Π» создан для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π­Π’Πœ Π½Π° элСктронных Π»Π°ΠΌΠΏΠ°Ρ…, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… писали Π½Π° машинном языкС. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ памяти Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π±Ρ‹Π»ΠΎ ΠΌΠ°Π»ΠΎ, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΡƒΠΌΠ±Π»Π΅Ρ€Ρ‹ ΠΈ наТимая ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π”Π°ΠΆΠ΅ нСслоТныС вычислСния Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, ΠΊΠΎΠ³Π΄Π° Π­Π’Πœ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² памяти. Π£ΠΆΠ΅ Π² 1950 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-транслятор, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° понятном Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ языкС. Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-сборщиком, Π° язык β€” языком ассСмблСра (ΠΎΡ‚ Π°Π½Π³Π». assembler β€” сборщик).

ПоявлСниС ассСмблСра сильно ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ»ΠΎ Тизнь программистов. Они смогли вмСсто Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, состоящиС ΠΈΠ· Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ языку условных ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ассСмблСр ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” для машин Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ это Π±Ρ‹Π»ΠΎ Π²Π°ΠΆΠ½ΠΎ.

Как устроСн язык ассСмблСра?

АссСмблСр ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ языком Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния, Ссли Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСпосрСдствСнно с процСссором, ΠΈ каТдая Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° β€” это инструкция процСссора, Π° Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ языка ассСмблСра Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ называСтся ассСмблированиСм.

ΠšΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² языкС ассСмблСра мнСмоничСскиС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для запоминания:

РСгистрам ΠΈ ячСйкам памяти ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ символичСскиС ΠΈΠΌΠ΅Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

EAX, EBX, AX, AH β€” ΠΈΠΌΠ΅Π½Π° для рСгистров;

meml β€” имя для ячСйки памяти.

НапримСр, Ρ‚Π°ΠΊ выглядит ΠΊΠΎΠΌΠ°Π½Π΄Π° слоТСния чисСл ΠΈΠ· рСгистров AX ΠΈ BX:

А это ΠΊΠΎΠΌΠ°Π½Π΄Π° вычитания чисСл ΠΈΠ· рСгистров AX ΠΈ BX:

ΠšΡ€ΠΎΠΌΠ΅ инструкций, Π² языкС ассСмблСра Π΅ΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния компилятором, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-ассСмблСром.

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

НС Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ассСмблСр β€” всСго лишь Π½Π°Π±ΠΎΡ€ инструкций процСссора с ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для программиста записью. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ язык программирования, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹, условныС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄, Π½Π° ассСмблСрС, выводящий Π½Π° экран Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΡ‚ 1 Π΄ΠΎ 10:

Π—Π΄Π΅ΡΡŒ дСйствиС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ β€” ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for ΠΈΠ»ΠΈ do while Π² языках высокого уровня.

Π•Π΄ΠΈΠ½ΠΎΠ³ΠΎ стандарта для языков ассСмблСра Π½Π΅Ρ‚. Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ с процСссорами Intel Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π²ΡƒΡ… синтаксисов: Intel ΠΈ AT&T. Ни Ρƒ Ρ‚ΠΎΠ³ΠΎ Π½ΠΈ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π΅Ρ‚ особых прСимущСств: AT&T β€” стандартный синтаксис Π² Linux, Π° Intel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠΈΡ€Π΅ Microsoft.

Одна ΠΈ Ρ‚Π° ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Π½ΠΈΡ… выглядит ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

НапримСр, Π² синтаксисС Intel:

mov eax, ebx β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· рСгистра eax Π² рСгистр ebx.

Π’ синтаксисС AT&T эта ΠΊΠΎΠΌΠ°Π½Π΄Π° выглядит Ρ‚Π°ΠΊ:

ΠŸΠΎΡ‡Π΅ΠΌΡƒ для Ρ€Π°Π·Π½Ρ‹Ρ… сСмСйств процСссоров Π½ΡƒΠΆΠ΅Π½ свой ассСмблСр?

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСссора Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ характСристик β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π­Ρ‚ΠΎ Π΅Π³ΠΎ конструкция ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ рСгистры, адрСсация памяти ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄. Если Ρƒ процСссоров одинаковая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Ρ‚ΠΎ говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСмСйства.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ процСссоров ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблСрС, написанныС для ΠΎΠ΄Π½ΠΈΡ… сСмСйств, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° процСссорах ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… сСмСйств. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ассСмблСр Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком.

ΠšΠΎΠΌΡƒ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ язык ассСмблСра?

Π”Π°ΠΆΠ΅ ΠΈΠ· нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Β«Hello, World!Β» Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ассСмблСр Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΊΠ°ΠΊ языки высокого уровня. Π‘ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° этом языкС сСйчас Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ области, Π³Π΄Π΅ ΠΎΠ½ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ микропроцСссоры ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ‚ΡŒ рСвСрс-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ смысл ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ Π·Π°Π½ΡΡ‚ΡŒΡΡ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ языка ассСмблСра.

ВострСбованы Π»ΠΈ программисты Π½Π° ассСмблСрС сСгодня?

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ. Π₯отя Π½Π° сайтах ΠΏΠΎ поиску Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Ρ‹ вряд Π»ΠΈ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ заявки ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ: «НуТСн программист Π½Π° ассСмблСрС», Π·Π°Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΈΡ…, Π³Π΄Π΅ трСбуСтся Π·Π½Π°Π½ΠΈΠ΅ ассСмблСра Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ языкам высокого уровня: C, C++ ΠΈΠ»ΠΈ Python. Π­Ρ‚ΠΎ вакансии рСвСрс-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², спСциалистов ΠΏΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ бСзопасности, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²/микропроцСссоров, систСмных программистов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠ°Ρ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° β€” обычная Π² сфСрС IT: 80–300 тысяч Ρ€ΡƒΠ±Π»Π΅ΠΉ Π² зависимости ΠΎΡ‚ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΡ‹Ρ‚Π°. Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вакансия рСвСрс-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° Π½Π° HeadHunter, Π³Π΄Π΅ трСбуСтся Π·Π½Π°Π½ΠΈΠ΅ ассСмблСра:

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки. Π€ΠΎΡ‚ΠΎ Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ языки ассСмблСра Π² Ρ‡Π΅ΠΌ ΠΈΡ… нСдостатки

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ программирования с языка ассСмблСра?

НСт, Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Для этого Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π·Π°Π½ΡΡ‚ΡŒΡΡ профСссиСй, связанной с ассСмблСром, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ программирования Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с языка высокого уровня. А ΡƒΠΆ ассСмблСр послС Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ нСслоТно.

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel Π² 1979 Π³ΠΎΠ΄Ρƒ. Использовался Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… IBM PC.

Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ β€” грамматичСской конструкциСй языка программирования, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ доступ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ процСссорному Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, памяти, внСшним устройствам.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая обСспСчиваСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ самой OC сразу послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *