Мова асэмблера

Мова асэмблера
Дата заснавання / стварэння 1949
Выява
Вытворная праца GNU assembler[d]
Парадыгма праграмавання неструктураванае праграмаванне[d]
Пашырэнне файла .asm або .s[1]
Лагатып Вікісховішча Медыяфайлы на Вікісховішчы

Мова асэмблера (скарочана ASM або asm) — гэта мова праграмавання нізкага ўзроўню, у якой інструкцыі, зразумелыя чалавеку, адпавядаюць інструкцыям машыннага кода ў пэўнай архітэктуры камп’ютара. Мова асэмблера звычайна мае адзін аператар на машынную інструкцыю, але таксама падтрымлівае канстанты, каментарыі, меткі адрасоў у памяці і іншы дапаможны функцыянал.

Паколькі мова асэмблера залежыць ад інструкцый машыннага кода, для кожнай канкрэтнай архітэктуры камп’ютара існуе ўласная мова асэмблера. Часам існуе некалькі моў асэмблера для адной і той жа архітэктуры, а часам мова асэмблера спецыфічная для аперацыйнай сістэмы або пэўных аперацыйных сістэм. Большасць моў асэмблера можа ўніверсальна выкарыстоўвацца з любой аперацыйнай сістэмай, бо мова дае доступ да ўсіх рэальных магчымасцей працэсара без неабходнасці выкарыстання сістэмных выклікаў. У адрозненне ад праграм на мовах асэмблера, большасць праграм на мовах праграмавання высокага ўзроўню можна перанесці на розныя архітэктуры, але для гэтага патрэбна рэалізаваць інтэрпрэтатар або кампілятар на ўзроўні аперацыйнай сістэмы.

У першыя дзесяцігоддзі стварэння камп’ютарных праграм і сістэмныя, і прыкладныя праграмы звычайна былі напісаны цалкам на мове асэмблера. На цяперашні час мовы асэмблера незаменныя для некаторых мэт, аднак большасць праграм пішуцца на мовах высокага ўзроўню. У кнізе «No Silver Bullet» Фрэд Брукс рэзюмаваў наступствы адыходу ад праграмавання на мовах асэмблера: «Безумоўна, самым моцным штуршком для прадукцыйнасці, надзейнасці і прастаты праграмнага забеспячэння стала прагрэсіўнае выкарыстанне моў высокага ўзроўню для праграмавання. Большасць назіральнікаў звязваюць яго з прынамсі 5-кратным ростам прадукцыйнасці і адначасовым ростам надзейнасці, прастаты і зразумеласці».

Сёння невялікая колькасць кода асэмблера выкарыстоўваецца ў вялікіх сістэмах, рэалізаваных на мове больш высокага ўзроўню, для павелічэння прадукцыйнасці або для непасрэднага ўзаемадзеяння з камп’ютарным абсталяваннем, якое немагчыма на мове больш высокага ўзроўню. Напрыклад, у зыходным кодзе ядра Linux версіі 4.9 мова асэмблера займае крыху менш за 2 %; больш за 97 % напісана на C[2].

Зноскі

  1. https://cs.lmu.edu/~ray/notes/x86assembly/
  2. linux kernel mainline 4.9 sloccount.txt (англ.). Gist. Праверана 5 студзеня 2023.