На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

Как Π±Ρ‹Π» написан ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор?

Π― ΡΠ»Ρ‹ΡˆΠ°Π» ΠΎ ΠΊΡƒΡ€ΠΈΡ†Π΅, яйцС ΠΈ бутстрСпС. Π£ мСня Π΅ΡΡ‚ΡŒ нСсколько вопросов.

Π§Ρ‚ΠΎ написал ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π²ΡˆΠΈΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ инструкции?

Π‘Π±ΠΎΡ€ΠΊΠ° скомпилирована ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ инструкции?

. МнС Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ написали компилятор Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

6 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ассСмблСр для «компиляции» ассСмблСрного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски выполняСт эти поиски ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈ вычислСнии адрСсов / смСщСний для ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ Ρ‚. Π”.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ассСмблСры писались Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π—Π°Ρ‚Π΅ΠΌ эти ассСмблСры ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сборки Π±ΠΎΠ»Π΅Π΅ слоТных ассСмблСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сборки компиляторов, написанных для языков Π±ΠΎΠ»Π΅Π΅ высокого уровня, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎΡ‚ процСсс ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ написания инструмСнтов для упрощСния создания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° инструмСнтов называСтся (ΠΊΠ°ΠΊ упомянул Дэвид Π Π°Π±ΠΈΠ½ΠΎΠ²ΠΈΡ† Π² своСм ΠΎΡ‚Π²Π΅Ρ‚Π΅) Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°.

Π’ΠΎΠ· сказал Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· своих ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… выступлСний, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π», ΠΎΠ½ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС компилятор, поэтому скомпилировал Π΅Π³ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠΊΠΎΠ΅, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎΠ± условиях, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π‘ΠΈΠ»Π» ГСйтс ΠΈ Пол АллСн написали БСйсик для ΠΠ»ΡŒΡ‚Π°ΠΈΡ€ 8800.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π±Π°Ρ€ΡŒΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставляСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΌΠΈ, Π― ΠΠΠ‘Π’ΠžΠ―Π’Π•Π›Π¬ΠΠž Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ CODE Π§Π°Ρ€Π»ΡŒΠ·Π° ΠŸΠ΅Ρ‚Ρ†ΠΎΠ»ΡŒΠ΄Π° ΠΈ / ΠΈΠ»ΠΈ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм. Обладая Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ знаниями программирования, эти чудСсно доступныС ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… свСрху Π΄ΠΎΠ½ΠΈΠ·Ρƒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ нСльзя ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏ. Π½Π°ΡƒΠΊΠ° ΠΈΠ»ΠΈ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ EE послС всСго 2 ΠΊΠ½ΠΈΠ³, Π½ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ программист-самоучка, ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅: эти ΠΊΠ½ΠΈΠ³ΠΈ потрясли ΠΌΠΎΠΉ ΠΌΠΈΡ€!

Π§Ρ‚ΠΎ написал ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π²ΡˆΠΈΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ инструкции?

Π§Π΅Π»ΠΎΠ²Π΅ΠΊ сдСлал. ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎ систСмС A-0 :

Π’ 1952 Π³ΠΎΠ΄Ρƒ ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π° свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор для Sperry, извСстный ΠΊΠ°ΠΊ A-0. БистСма A-0 прСдставляла собой Π½Π°Π±ΠΎΡ€ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ матСматичСский ΠΊΠΎΠ΄ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Боздавая A-0, ΠΎΠ½Π° взяла всС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ собирала Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, ΠΈ записала ΠΈΡ… Π½Π° ΠΌΠ°Π³Π½ΠΈΡ‚Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. КаТдой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Π» присвоСн Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ машина ΠΌΠΎΠ³Π»Π° Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ Π½Π° Π»Π΅Π½Ρ‚Π΅. «ВсС, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² для Π·Π²ΠΎΠ½ΠΊΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… Π½Π° Π»Π΅Π½Ρ‚Π΅, пСрСнСсти ΠΈ внСсти дополнСния. Π­Ρ‚ΠΎ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор», ΠΊΠ°ΠΊ описываСт ГрСйс.

Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½ΠΎΠ³Π΄Π° использовались для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² для создания Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈ Π±Ρ‹Π»ΠΈ созданы языки программирования вуаля.

ИдСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ простой компилятор нСпосрСдствСнно Π² машинном ΠΊΠΎΠ΄Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для написания Π±ΠΎΠ»Π΅Π΅ слоТного компилятора, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ для создания Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ компилятор.

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

ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌ. Н. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°
Bauman National Library

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты

АссСмблСр

АссС́мблСр (ΠΎΡ‚ Π°Π½Π³Π». assembler β€” сборщик) β€” транслятор исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° языкС ассСмблСра, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° машинном языкС.

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

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

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

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

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

Π’ Ρ†Π΅Π»ΠΎΠΌ история языков программирования ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π΅Ρ‚ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚ программирования Π½Π° языкС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π΄ΠΎ манипуляции абстракциями Π²Ρ€ΠΎΠ΄Π΅ ΠŸΠΎΡΠ»Π°Ρ‚ΡŒ.ЛСсом(всСх(ΠΊΠΎΠΌΡƒ Π½Π΅ нравится эта ΡΡ‚Π°Ρ‚ΡŒΡ)) Ну ΠΈΠ»ΠΈ (ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ (лСсом (всСх (ΠΊΠΎΠΌΡƒ-Π½Π΅-нравится «ΡΡ‚Π°-ΡΡ‚Π°Ρ‚ΡŒΡ»)))) ΠΈΠ»ΠΈ

На языкС ассСмблСра этот ΠΊΠΎΠ΄ занял Π±Ρ‹ Π±ΠΎΠ»Π΅Π΅ 9000 строк. И ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» Π±Ρ‹ Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΈ ΠΊΡ€ΠΎΠΏΠΎΡ‚Π»ΠΈΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ своСму созданию.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния

АссСмблированиС ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

ДизассСмблСр

ДизассС́мблСр β€” транслятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра.

По Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ дСлятся Π½Π°

АрхитСктуры

Под ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссора ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ОБ ΠΈΠ»ΠΈ сСмСйство ОБ сущСствуСт свой АссСмблСр. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ «кросс-ассСмблСры», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… с ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ (ΠΈΠ»ΠΈ Π² срСдС ΠΎΠ΄Π½ΠΎΠΉ ОБ) Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ОБ, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ ΠΊ исполнСнию Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Π² срСдС Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ОБ.

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

Assembler β€” язык программирования Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записи ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для восприятия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.

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

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

КаТдая модСль процСссора, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ язык (ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚) ассСмблСра.

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

Бинтаксис

ΠžΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎΠ³ΠΎ стандарта для синтаксиса языков ассСмблСра Π½Π΅ сущСствуСт. Однако, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ стандарты Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ β€” Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² языков ассСмблСра. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΊΠΈΠΌΠΈ стандартами ΡΠ²Π»ΡΡŽΡ‚ΡΡ Intel-синтаксис ΠΈ AT&T-синтаксис.

ΠžΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записи инструкций ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² для ΠΎΠ±ΠΎΠΈΡ… стандартов:

`[ΠΌΠ΅Ρ‚ΠΊΠ°:] ΠΎΠΏΠΊΠΎΠ΄ [ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹] [;ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ]`

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

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

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

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

Π­Ρ‚ΠΎΠΌΡƒ языку ΡƒΠΆΠ΅ Π·Π° 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 сразу послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

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

АссСмблСр

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

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

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

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

АрхитСктура x86

АссСмблСры для DOS

НаиболСС извСстными ассСмблСрами для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы DOS являлись Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM) ΠΈ Watcom Assembler (WASM). Π’Π°ΠΊΠΆΠ΅ Π² своё врСмя Π±Ρ‹Π» популярСн простой ассСмблСр A86.

Windows

Microsoft ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ свой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Microsoft Macro Assembler. Она ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎ сСй дСнь, послСдниС вСрсии Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π½Π°Π±ΠΎΡ€Ρ‹ DDK. Но вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, направлСнная Π½Π° созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для DOS, Π½Π΅ развиваСтся. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π‘Ρ‚ΠΈΠ²Π΅Π½ Π₯атчСссон создал ΠΏΠ°ΠΊΠ΅Ρ‚ для программирования Π½Π° MASM ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«MASM32Β».

GNU ΠΈ GNU/Linux

Π’ состав ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы GNU Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ binutils, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя ассСмблСр gas (GNU Assembler), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ AT&T-синтаксис, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных ассСмблСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Intel-синтаксис (поддСрТиваСтся с вСрсии 2.10).

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹Π΅ ассСмблСры

Π’Π°ΠΊΠΆΠ΅ сущСствуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ассСмблСра, вСрсии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ доступны ΠΏΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для этих систСм. НазываСтся этот ассСмблСр NASM (Netwide Assembler).

Yasm β€” это пСрСписанная с нуля вСрсия NASM ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD (с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ).

flat assembler (fasm) β€” ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ ассСмблСр ΠΏΠΎΠ΄ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для Π·Π°ΠΏΡ€Π΅Ρ‚Π° пСрСлицСнзирования (Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ΄ GNU GPL) BSD-Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ. Π•ΡΡ‚ΡŒ вСрсии для KolibriOS, Linux, DOS ΠΈ Windows; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Intel-синтаксис ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инструкции x86-64.

АрхитСктуры RISC

MCS-51

MCS-51 (Intel 8051) β€” классичСская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Для Π½Π΅Ρ‘ сущСствуСт кросс-ассСмблСр ASM51, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠ΅ΠΉ MetaLink.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ IAR ΠΈΠ»ΠΈ Keil, прСдставили свои Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ассСмблСров. Π’ рядС случаСв ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этих ассСмблСров оказываСтся Π±ΠΎΠ»Π΅Π΅ эффСктивным благодаря ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ срСды программирования, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅ΠΉ Π² сСбС ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ассСмблСр ΠΈ язык программирования Π‘ΠΈ, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ 3 компилятора производства Atmel (AVRStudio 3, AVRStudio 4, AVRStudio 5 ΠΈ AVRStudio 6).

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° AVR-GCC (ΠΎΠ½ ΠΆΠ΅ WinAVR) сущСствуСт компилятор avr-as (это ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ AVR ассСмблСр GNU as ΠΈΠ· GCC).

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Assembler для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° PIC16F628A:

AVR32

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

MSP430

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Assembler для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° MSP430G2231 (Π² срСдС Code Composer Studio):

PowerPC

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ The PowerPC Software Development Toolset ΠΎΡ‚ IBM Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ассСмблСр для PowerPC.

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

АрхитСктуры MISC

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра

SeaForth

ΠœΠ°ΠΊΡ€ΠΎΠ°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€

ΠœΠ°ΠΊΡ€ΠΎΠ°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€ (ΠΎΡ‚ Π³Ρ€Π΅Ρ‡. μάκρος β€” большой, ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ) β€” макропроцСссор, Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся язык ассСмблСра. [2]

АссСмблированиС ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

Бсылки

RadASM β€’ WinAsm β€’ ASMedit β€’ Easy Code β€’ Fresh β€’ GSS Visual Assembler

На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ Π±Ρ‹Π» написан компилятор ассСмблСра ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹
АрхитСктура
8-Π±ΠΈΡ‚MCS-51 β€’ MCS-48 β€’ PIC β€’ AVR β€’ Z8 β€’ H8 β€’ COP8 β€’ 68HC08 β€’ 68HC11
16-Π±ΠΈΡ‚MSP430 β€’ MCS-96 β€’ MCS-296 β€’ PIC24 β€’ MAXQ β€’ Nios β€’ 68HC12 β€’ 68HC16
32-Π±ΠΈΡ‚ARM β€’ MIPS β€’ AVR32 β€’ PIC32 β€’ 683XX β€’ M32R β€’ SuperH β€’ Nios II β€’ Am29000 β€’ LatticeMico32 β€’ MPC5xx β€’ PowerQUICC β€’ Parallax Propeller
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈAnalog Devices β€’ Atmel β€’ Silabs β€’ Freescale β€’ Fujitsu β€’ Holtek β€’ Hynix β€’ Infineon β€’ Intel β€’ Microchip β€’ Maxim β€’ Parallax β€’ NXP Semiconductors β€’ Renesas β€’ Texas Instruments β€’ Toshiba β€’ Ubicom β€’ Zilog β€’ Cypress
ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹Π Π΅Π³ΠΈΡΡ‚Ρ€ β€’ ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ β€’ SRAM β€’ EEPROM β€’ ЀлСш-ΠΏΠ°ΠΌΡΡ‚ΡŒ β€’ ΠšΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ β€’ ΠšΠ²Π°Ρ€Ρ†Π΅Π²Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ β€’ RC-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ β€’ ΠšΠΎΡ€ΠΏΡƒΡ
ΠŸΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΡΠ’Π°ΠΉΠΌΠ΅Ρ€ β€’ АЦП β€’ ЦАП β€’ ΠšΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ β€’ ШИМ-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ β€’ Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ β€’ LCD β€’ Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ β€’ Watchdog Timer
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹CAN β€’ UART β€’ USB β€’ SPI β€’ IΒ²C β€’ Ethernet β€’ 1-Wire
ОБFreeRTOS β€’ ΞΌClinux β€’ BeRTOS β€’ ChibiOS/RT β€’ eCos β€’ RTEMS β€’ Unison β€’ MicroC/OS-II β€’ Nucleus
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅JTAG β€’ C2 β€’ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ β€’ АссСмблСр β€’ ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ β€’ MPLAB β€’ AVR Studio β€’ MCStudio

ПолСзноС

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€» Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… словарях:

ΠΠ‘Π‘Π•ΠœΠ‘Π›Π•Π  β€” [Π°Π½Π³Π». assembler Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ иностранных слов русского языка

АссСмблСр β€” транслятор с языка ассСмблСра Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅: Врансляторы Π―Π·Ρ‹ΠΊΠΈ ассСмблСра Ѐинансовый ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π€ΠΈΠ½Π°ΠΌ … Ѐинансовый ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

ассСмблСр β€” сущ., ΠΊΠΎΠ» Π²ΠΎ синонимов: 4 β€’ микроассСмблСр (1) β€’ ΠΌΠΈΠ½ΠΈ ассСмблСр (1) β€’ наноассСмблСр … Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ синонимов

ассСмблСр β€” ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ тСхничСскоС срСдство, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ ассСмблированиС. [Π“ΠžΠ‘Π’ 19781 90] ассСмблСр машинно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰Π°Ρ исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° АссСмблСрС Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ нСпосрСдствСнно в… … Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ тСхничСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

ΠΠ‘Π‘Π•ΠœΠ‘Π›Π•Π  β€” (Π°Π½Π³Π». assembler ΠΎΡ‚ assemble ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ), Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² составС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для автоматичСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° исходной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π½Π° Π­Π’Πœ, Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Один ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² транслятора … Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ЭнциклопСдичСский ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

ΠΠ‘Π‘Π•ΠœΠ‘Π›Π•Π  β€” (assembler) ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Π²ΠΈΠ΄Π΅ сокращСнных записСй, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… языком ассСмблСра (assembly language) ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΡƒ, Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. БизнСс. Π’ΠΎΠ»ΠΊΠΎΠ²Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. М … Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ бизнСс-Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²

ассСмблСр β€” [сэ], Π°; ΠΌ. [Π°Π½Π³Π». assembly program (routine)]. Π˜Π½Ρ„ΠΎΡ€ΠΌ. Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС для автоматичСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π°Π²Ρ‚ΠΎΠΊΠΎΠ΄Π° Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. * * * ассСмблСр (Π°Π½Π³Π». assembler, ΠΎΡ‚ assemble ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ),… … ЭнциклопСдичСский ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

ассСмблСр β€” asembleris statusas T sritis automatika atitikmenys: angl. assembler vok. Assembler, m; Assemblierer, m rus. ассСмблСр, m pranc. programme d assemblage, m … Automatikos terminΕ³ ΕΎodynas

АссСмблСр β€” 41. АссСмблСр Assembler ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ тСхничСскоС срСдство, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ ассСмблированиС Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Π“ΠžΠ‘Π’ 19781 90: ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ систСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅. Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ опрСдСлСния … Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ-справочник Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎ-тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

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

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

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