ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π³Ρ€Π° Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (ОБ) ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠžΠ‘. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠžΠ‘ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΏΠΈΡˆΡƒΡ‚ Π½Π° Π‘ΠΈ — языкС высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» создан для написания ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий UNIX. НСбольшиС кусочки ОБ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ОБ, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстрагирования ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния (hardware abstraction layer) ΠΈ ΡΠ΄Ρ€ΠΎ, часто ΠΏΠΈΡˆΡƒΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π³Ρ€Π° Β«Π—ΠΌΠ΅ΠΉΠΊΠ°Β» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

АссСммблСр (ΠΎΡ‚ Π°Π½Π³Π». assembler — сборщик) — ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, компилятор исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ языкС.

Как ΠΈ ΡΠ°ΠΌ язык (ассСмблСр), ассСмблСры, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, спСцифичны ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ синтаксиса языка. ВмСстС с Ρ‚Π΅ΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ вовсС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ (Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ-ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня нСльзя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) ассСмблСры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Π‘Ρ€Π΅Π΄ΠΈ послСдних ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ кросс-ассСмблСров, способных ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρ„Π°ΠΉΠ»Ρ‹) для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ ΠžΠ‘.

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

1. Π―Π·Ρ‹ΠΌΠΊ ассСммблСра Π―Π·Ρ‹ΠΌΠΊ ассСммблСра — язык программирования Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, мнСмоничСскиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ (Π·Π° Ρ€Π΅Π΄ΠΊΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ инструкциям процСссора Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы. Врансляция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ производится ассСмблСром (ΠΎΡ‚ Π°Π½Π³Π». assembler — сборщик) — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ-транслятором, которая ΠΈ Π΄Π°Π»Π° языку ассСмблСра Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

1.1 Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ языка ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ языка ассСмблСра ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ процСссора. ЀактичСски, ΠΎΠ½ΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи — ΠΌΠ½Π΅ΠΌΠΎΠΊΠΎΠ΄Ρ‹ — ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ языка ассСмблСра ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ процСссора.

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

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

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

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

1.2 Достоинства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ

Достоинства

Π―Π·Ρ‹ΠΊ ассСмблСра позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ самый быстрый ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСссора.

Если ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ достаточно большой, — Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ся Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ… процСссора, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ находятся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‚ΠΎ ΠΈΡΠΊΡƒΡΠ½Ρ‹ΠΉ программист, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, способСн Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚ранслятором с ΡΠ·Ρ‹ΠΊΠ° высокого уровня ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ нСскольким ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ:

Β· ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — Π·Π° ΡΡ‡Ρ‘Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ/ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ обращСния ΠΊ ΠžΠŸ, пСрСраспрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…;

Β· ΠΎΠ±ΡŠΡ‘ΠΌ ΠΊΠΎΠ΄Π° (Π² Ρ‚ΠΎΠΌ числС Π·Π° ΡΡ‡Ρ‘Ρ‚ эффСктивного использования ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²). (Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ объСма ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.)

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ максимального использования спСцифичСских возмоТностСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, — Π² Ρ‚ΠΎΠΌ числС ΠΌΠ΅Π½Π΅Π΅ рСсурсоСмкиС.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ нСпосрСдствСнный доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅, ΠΈ, Π² Ρ‡Π°ΡΡ‚ности:

Β· ΠΏΠΎΡ€Ρ‚Π°ΠΌ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°,

Β· рСгистрам процСссора ΠΈ Π΄Ρ€.

Π―Π·Ρ‹ΠΊ ассСмблСра часто примСняСтся для создания Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² оборудования ΠΈ ΡΠ΄Ρ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹Ρ… подсистСм ядра ОБ).

Π―Π·Ρ‹ΠΊ ассСмблСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания «ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ» BIOS.

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

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дизассСмблСра позволяСт ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ отсутствии исходного ΠΊΠΎΠ΄Π°.

НСдостатки

Π‘Π»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС — Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ слоТности, — Ρ‡Π΅ΠΌ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня.

Π’ ΡΠΈΠ»Ρƒ машинной ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ — «Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ» уровня — языка ассСмблСра Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ слоТнСС Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π½Ρ‘ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня. А ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ассСмблСрный ΠΊΠΎΠ΄ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большой, — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра состоит ΠΈΠ· ΡΠ»ΠΈΡˆΠΊΠΎΠΌ «ΠΌΠ΅Π»ΠΊΠΈΡ…» элСмСнтов — ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. БоотвСтствСнно, ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, растёт Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠ° Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ошибок.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠ°ΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходных ΠΊΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ с ΡΠ·Ρ‹ΠΊΠ°ΠΌΠΈ ассСмблСра ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

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

На ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра ΠΏΠΈΡˆΡƒΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² Π½Π°ΡΡ‚оящСС врСмя довольно Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ), для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… критичСски Π²Π°ΠΆΠ½Ρ‹:

Β· быстродСйствиС (Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹);

Β· объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти (Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ сСкторы, встраиваСмоС (Π°Π½Π³Π». embedded) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠ² с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами, вирусы, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹).

Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра производятся:

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΊ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° ΡΠ·Ρ‹ΠΊΠ°Ρ… высокого уровня, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C++ ΠΈΠ»ΠΈ Pascal. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… приставок, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈ Π΄Π»Ρ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°-ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стрСмятся Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ рСсурсоёмкими ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрыми ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ популярными.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (ОБ) ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠžΠ‘. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠžΠ‘ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΏΠΈΡˆΡƒΡ‚ Π½Π° Π‘ΠΈ — языкС высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» создан для написания ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий UNIX. НСбольшиС кусочки ОБ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ОБ, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстрагирования ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния (hardware abstraction layer) ΠΈ ΡΠ΄Ρ€ΠΎ, часто ΠΏΠΈΡˆΡƒΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ассСмблСрных вставок ΠΈΠ»ΠΈ ассСмблСрных ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ЀактичСски, ассСмблСрного ΠΊΠΎΠ΄Π° Π² ΡΠ΄Ρ€Π°Ρ… Windows ΠΈΠ»ΠΈ Linux совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€Ρ‹ стрСмятся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ Ρ‚Π°ΠΌ присутствуСт. НСкоторыС Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ОБ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MenuetOS, Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ написаны Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра. ΠŸΡ€ΠΈ этом MenuetOS помСщаСтся Π½Π° Π΄ΠΈΡΠΊΠ΅Ρ‚Ρƒ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ графичСский ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс. ΠŸΡ€ΠΈ этом ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ слоТности написания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅ Π½Π° MenuetOS Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ высокой энтропии Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π΅Π»ΠΈΠΊΠ°, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния написанного Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² (МК) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… встраиваСмых процСссоров. По ΠΌΠ½Π΅Π½ΠΈΡŽ профСссора Π’Π°Π½Π΅Π½Π±Π°ΡƒΠΌΠ°, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠœΠš повторяСт историчСскоС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² новСйшСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь для программирования ΠœΠš вСсьма часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ ΡƒΠΆΠ΅ Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ языки высокого уровня. Π’ ΠœΠš приходится ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΈ Π±ΠΈΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ячСйками памяти. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ МК вСсьма Π²Π°ΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡŽ Π’Π°Π½Π΅Π½Π±Π°ΡƒΠΌΠ°, Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ ΠΈ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π΅ соврСмСнного Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΡΡ€Π΅Π΄Π½Π΅ΠΌ содСрТится 50 ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². НСкоторыС участки Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра. Π₯отя Π² Ρ†Π΅Π»ΠΎΠΌ Π² Π½Π°ΡΡ‚оящСС врСмя Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ°Ρ… высокого уровня Π² ΡΠ²ΡΠ·ΠΈ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ трСбованиями ΠΊ Π½Π°Π΄Ρ‘Тности ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ соврСмСнных процСссоров ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠΌ компиляторов с ΡΠ·Ρ‹ΠΊΠΎΠ² выского уровня. ΠΠ°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΡΠΎΠ±ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Windows NT ΠΈ UNIX (Π² Ρ‚ΠΎΠΌ числС Π² Linux) Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра. Одна ошибка Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΡ€Π°Ρ…Ρƒ всСй систСмы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ антивирусов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

НаписаниС трансляторов языков программирования.

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

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

На Ρ„Π°Π·Π΅ трансляции — вставка Π² Ρ‚Скст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня ассСмблСрных Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² (Π°Π½Π³Π». inline assembler) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² языка. Π’ Ρ‡Π°ΡΡ‚ности, Π΄Π°Π½Π½Ρ‹ΠΉ способ поддСрТиваСтся языками программирования Π‘ΠΈ ΠΈ Delphi), Π² Ρ‚ΠΎΠΌ числС написаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра. Бпособ ΡƒΠ΄ΠΎΠ±Π΅Π½ для нСслоТных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ассСмблСрного ΠΊΠΎΠ΄Π°, с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ со ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… языком высокого уровня, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

На ΡΡ‚Π°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ трансляции. Для взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΈΡ… модулях ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ соглашСния Π²Ρ‹Π·ΠΎΠ²Π° (Π°Π½Π³Π». calling conventions) ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, примСняСмыС Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ языкС высокого уровня, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ основного срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Написаны ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра.

2. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ двиТущихся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. На Ρ‡Π΅Ρ€Π½ΠΎΠΌ экранС двиТСтся бСлая полоска «Π·ΠΌΠ΅ΠΉΠΊΠ°», которая управляСтся клавишами «Π²Π²Π΅Ρ€Ρ…», «Π²Π½ΠΈΠ·», «Π²ΠΏΡ€Π°Π²ΠΎ» ΠΈ ΡΠΎΠΎΡ‚вСтствСнно «Π²Π»Π΅Π²ΠΎ». ЦСль ΠΈΠ³Ρ€Ρ‹ состоит Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ «ΠΏΠΎΠ΅Π΄Π°Ρ‚ΡŒ», Ρ‚. Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… клавиш Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ «Π·ΠΌΠ΅ΠΉΠΊΡƒ» Π½Π° Π±Π΅Π»Ρ‹ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΡΡ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ присутствуСт Π½Π° ΡΠΊΡ€Π°Π½Π΅. ПослС этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π΄Π»ΠΈΠ½Ρƒ «Π·ΠΌΠ΅ΠΉΠΊΠΈ» Π½Π° Π΄Π»ΠΈΠ½Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° «ΡΡŠΠ΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ» Сю. Π‘Π΅Π»Ρ‹Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ для ΠΈΠ³Ρ€Ρ‹ области. Π˜Π³Ρ€Π° продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ «Esc» ΠΈΠ»ΠΈ «Π·ΠΌΠ΅ΠΉΠΊΠ°» Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Ρ‚ сама сСбя, Ρ‚ΠΎΠ³Π΄Π° наступит ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ³Ρ€Ρ‹. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Ρ‡Ρ‚ΠΎ Ссли «Π·ΠΌΠ΅ΠΉΠΊΠ° приблиТаСтся ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ окошка Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠΊΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ сСанс ΠΈΠ³Ρ€Ρ‹.

Моя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Flat assembler (FASM) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся свободно распространяСмым ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΌ компилятором языка ассСмблСр.

Π’ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·ΠΌΠ΅ΠΉΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ посСрСдинС Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ ΠΎΠΊΠ½Π° (Рис.1).

ПослС Π½Π΅ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΈ «ΡΡŠΠ΅Π²» нСсколько Π±Π΅Π»Ρ‹Ρ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² (Рис. 2).

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Π₯ΠΎΡ‚ΡŒ ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€ ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… извСстных Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языков программирования, ΠΎΠ½ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ вострСбован ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ возмоТностСй для создания ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ прилоТСния, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΡΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

org 100h

mov al, 3

int 16

mov cx,-1

push 0B800h

pop es

mov ax, 255

rep stosw

mov [gs:1Ch*4+2], ds

mov word[gs:1Ch*4], main

push ds

pop fs

push es

pop gs

a:

jmp a

quit:

xor ax, ax

int 21h

main: mov si, snake

mov bp,[fs:snakelen]

mov ax,[fs:bx+snake]

add ax,[fs:step]

mov di,[fs:snake+bp]

mov byte[gs:di], 255

xchg ax, di

cmp ax, di

jne next

add di,[fs:step]

random:rdtsc

and ax, 4094

cmp ax, 3998

ja random

inc ax

mov [fs:snake+bp+2], ax

add [fs:snakelen], 2

next:

xor cx, cx

mov ax, 4000

add di, ax

cmp di, ax

cmovl ax, cx

sub di, ax

cmp di, ax

cmovl ax, cx

sub di, ax

inc bx

inc bx

cmp bx, bp

cmove bx, cx

xor byte[gs:di], 255

je quit

xchg di,[fs:bx+snake]

mov [gs:di], cx

in al, 60h

cbw

mov cx, ax

shld bp, ax, 17

mov dx,[fs:move+bp-144]

sub bp, 144

sub cx, 81

xor cx, bp

cmovnl dx,[fs:step]

mov [fs:step], dx

dec ax

je quit

iret

step dw 2

move dw -160,0,0,-2,0,2,0,0,160

snakelen dw 6

snake dw 2005,2001,2003,2007

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ