Assembler
Ассемблер (инглизча: ассемблер – ассемблер) – дастурни ассемблер тилидаги матндан машина тилидаги дастурга таржима қилувчи дастурлаш тили.
Ассемблер дастурлаш тили одатда, маълум бир архитектура, операцион тизим ва тил синтаксисига хосдир, чунки ассемблер маълум бир процессор учун машина кўрсатмалари мнемоникаси билан ишлайди. Шу билан бирга, ассемблер кўп платформали ёки ҳатто универсал бўлиши мумкин, яъни улар турли платформаларда ва операцион тизимларда ишлаши мумкин. Ассемблер орасида, шунингдек, ассемблернинг ўзи ишлайдиган архитектура ёки операцион тизимдан ташқари архитектуралар учун машина кодини ва бажариладиган модулларни (файлларни) тўплаш қобилиятига эга бўлган ўзаро фаолият ассемблер гуруҳини ҳам ажратиб кўрсатиш мумкин (масалан, таржима қилиш). компютерда ишлайдиган ассемблер томонидан микроконтроллер учун дастур).
Кўпгина замонавий ассемблерчилар макроассемблер (юнонча: μάκρος – катта, кенг), яъни ассемблер тилига асосланган макропроцессорлар[1]. Макроассемблерларга қўшимча равишда ассемблерлар таржима пайтида бошқа кўрсатмаларни бажарадилар, уларнинг тўплами дастур таржима қилинадиган аппарат платформасига эмас, балки таржимоннинг ўзига боғлиқ.
Ассамблер бажариладиган дастур модулини олиш йўлидаги биринчи ёки охирги қадам бўлмаслиги мумкин. Шундай қилиб, юқори даражадаги дастурлаш тилларидан кўплаб компиляторлар натижани ассемблер томонидан қайта ишланадиган ассемблер тили дастури шаклида ишлаб чиқаради. Ўз навбатида, йиғиш натижаси бажариладиган модул бўлиши мумкин эмас, балки машина кодининг турли блоклари ва дастур маълумотларини ўз ичига олган обект модули бўлиши мумкин, ундан (ёки бир нечта обект модулларидан) кейинчалик боғловчи (боғловчи) ёрдамида бажариладиган файлни олиш мумкин.
Юқори даражали дастурлаш тилларида дастурларни компиляция қилишдан фарқли ўлароқ, ассемблерлаш кўпроқ ёки камроқ аниқ ва тескари жараёндир, чунки ассемблер тилида ҳар бир мнемоника битта машина кўрсатмасига тўғри келади, юқори даражали тилларда эса ҳар бир ифода кўп сонли тилларга айлантирилиши мумкин. турли кўрсатмалар (операция, ассемблерлашнинг тескариси деассемблерлаш дейилади). Ассамблер дастурларини таржима қилиш баъзан компиляция деб ҳам аталади.
Архитектураси х86
ДОС учун Ассемблерлар
ДОС операцион тизимининг энг машҳур ассемблерлари Борланд Турбо Ассемблер (ТАСМ), Миcрософт Маcро Ассемблер (МАСМ) ва Wатcом Ассемблер (WАСМ) эди. Оддий ассемблер А86 ҳам бир вақтлар машҳур эди.
Wиндоwс
Wиндоwс операцион тизимининг пайдо бўлиши билан ТАСМ 5+ (неоновд' лақабли шахс томонидан яратилган норасмий пакет) номли ТАСМ кенгайтмаси пайдо бўлди, бу эса Wиндоwс муҳитида ишлаш учун дастурлар яратиш имконини берди. ТАСМнинг энг сўнгги маълум бўлган версияси ММХ кўрсатмаларини қўллаб-қувватлайдиган 5.3 версияси бўлиб, ҳозир Турбо C++ Эхплорер га киритилган. Аммо расмий равишда дастурни ишлаб чиқиш бутунлай тўхтатилди. Компилятор ўзининг энг сўнгги ишланмаларини ТАСМ Висуал замонавий ривожланиш муҳити туфайли олди. Атроф-муҳит норасмий, аммо унинг ёрдами билан компилятор билан ишлаш анча соддалаштирилган.
Миcрософт ўзининг Миcрософт Маcро Ассемблер деб номланган маҳсулотини сақлайди. У ҳозирги кунга қадар ишлаб чиқишда давом этмоқда, энг сўнгги версиялари ДДК ларга киритилган. Аммо дастурнинг ДОС учун дастурлар яратишга қаратилган версияси ишлаб чиқилмаяпти. Бундан ташқари, Стивен Хатчессон „МАСМ32“ номли МАСМ дастурлаш пакетини яратди.
ГНУ ва Линух
ГНУ операцион тизими Интел синтаксисидан фойдаланадиган бошқа машҳур ассемблерлардан фарқли ўлароқ, АТ&амп;Т-синтаксисидан фойдаланадиган ГАС ассемблерни (ГНУ Ассемблер) ўз ичига олган бинутилс пакетини ўз ичига олади (2.10-версиясидан бери қўллаб-қувватланади).
Портатив ассемблерлар
Бундан ташқари, очиқ манбали ассемблер лойиҳаси мавжуд бўлиб, унинг версиялари турли хил операцион тизимлар учун мавжуд ва бу тизимлар учун обект файлларини олиш имконини беради. Ушбу ассемблер НАСМ (Нетwиде Ассемблер) деб аталади.
Ясм – бу БСД лицензияси остида НАСМнинг қайта ёзилган версияси (баъзи истиснолардан ташқари).
флат ассемблер (фасм) – қайта лицензиялашни тақиқлаш учун ўзгартирилган БСД лицензияси остидаги ёш ассемблер (шу жумладан ГНУ ГПЛ бўйича). КолибриОС, Линух, ДОС ва Wиндоwс учун версиялари мавжуд; Интел синтаксисидан фойдаланади ва х86-64 кўрсатмаларини қўллаб-қувватлайди.
РИСC архитектуралари
МCС-51
МCС-51 (Интел 8051) классик микроконтроллер архитектурасидир. Унинг учун МетаЛинк корпорацияси томонидан чиқарилган АСМ51 ўзаро фаолият ассемблер мавжуд.
Бундан ташқари, ИАР ёки Кеил каби кўплаб дастурий таъминот ишлаб чиқарувчи фирмалар ассемблерларнинг ўз версияларини тақдим этдилар. Баъзи ҳолларда ушбу ассемблерлардан фойдаланиш қулай директивалар тўплами ва профессионал ассемблер ва C дастурлаш тилини, тузатувчи ва дастурий таъминот лойиҳаси менежерини бирлаштирган дастурлаш муҳитининг мавжудлиги туфайли самаралироқ бўлади.
АВР
Айни пайтда Атмел томонидан ишлаб чиқарилган АВР учун 4 та компилятор мавжуд (АВРСтудио 3, АВРСтудио 4, АВРСтудио 5 ва АВРСтудио 6, АВРСтудио 7).
АВР-ГCC лойиҳасининг (ака WинАВР) бир қисми сифатида авр-ас компилятори мавжуд (бу ГCC- дан АВР-га кўчирилган ассемблер сифатида ГНУ).
Авра[2] деб номланган бепул минималист компилятор ҳам мавжуд.
Пуллик компиляторлар: ИАР (ЭWАВР), CодеВисионАВР, Имагеcрафт. Ушбу компиляторлар Ассемблер ва C тилларини қўллаб-қувватлайди ва ИАР ҳам C++ ни қўллаб-қувватлайди.
БАСИC тили учун компилятор мавжуд – БАСCОМ, шунингдек, пуллик.
АРМ
АРМ процессорлари учун компиляторларнинг жуда кенг танлови мавжуд бўлиб, уларнинг ички амалга оширилиши бевосита АРМ процессорлари ишлаб чиқарувчисига ёки АРМ процессорлари билан ишлаш учун ИДЕ ишлаб чиқарувчисига боғлиқ. Тўғридан-тўғри АРМ компаниясидан расмий АРМ компилятори АРМ Cомпилер 6 бўлиб, у ИДЕ ДС-5 Девелопмент Студио дастурига киритилган ва C ва C++ тилларида дастурларни компиляция қилишни қўллаб-қувватлайди.
АРМ процессор етказиб берувчилари ва АРМ асбоблар занжири ишлаб чиқувчилари компиляторлари:
| ИДЕ провайдери | Компилятор | Қўллаб-қувватланадиган тиллар | Фойдаланиш шартлари |
|---|---|---|---|
| Кеил мВисион | МДК-АРМ (Wайбаcк Мачине сайтида 2020-10-21 санасида архивланган) | C / C++ / Ассемблер | Шареwаре (32 кб дан ошмаслиги керак) |
| ИАР ўрнатилган ишчи дастгоҳи (Wайбаcк Мачине сайтида 2021-03-04 санасида архивланган) | ЭНУ.пдф ИАР компилятори[сайт ишламайди] | C / C++ / Ассемблер | Тижорат |
| CОИД | ГCC компилятори. | C / C++ / Ассемблер. | Бепул/тижорат |
| Ҳақиқий студия | Олдиндан компиляция қилинган ГCC компилятори. | C / C++ / Ассемблер | Бепул/тижорат |
ПИC
ПИC оиласининг микроконтроллерлари учун дастурларни яратиш, таҳрирлаш ва диск раскадровка қилиш учун Миcрочип Течнологй томонидан ишлаб чиқарилган ишлаб чиқиш муҳити МПЛАБ ҳисобланади. Атроф-муҳит ПИC микроконтроллерларининг турли оилалари учун МПАСМ ва АСМ30 ассемблй тили таржимонларини ўз ичига олади. МПЛАБ Х ИДЕ муҳитининг замонавий версиялари кўп платформали бўлиб, турли хил компютер операцион тизимлари остида ишлайди. Атроф-муҳит бепул тарқатилади.
АВР32
МСП430
ПоwерПC
ИБМнинг ПоwерПC дастурий таъминотни ишлаб чиқиш асбоблар тўплами ПоwерПC учун ассемблерни ўз ичига олади.
МИПС
Виртуал машина архитектурасини йиғиш
фасмг ассемблер (CАЛМ кўрсатмалар архитектураси)
У шунга ўхшаш синтаксисга эга ассемблер флат ассемблер (фасм) нинг вориси, лекин фасмдан фарқли ўлароқ, у ҳеч қандай процессор архитектурасига боғлиқ эмас. Унинг парадигмаси макролардан фойдаланган ҳолда ҳар қандай процессор архитектураси учун ҳар қандай форматдаги ва машина коди билан чиқиш файлларини яратишдир. Макросларга қўшимча равишда фасмг деб аталадиган нарсаларни ўз ичига олади. CАЛМ кўрсатмалари („компиляция қилинган ассемблер кўрсатмалари, макроассемблерлар каби“) таржимон томонидан байт кодга айлантириладиган макроассемблерларга эквивалент бўлган ассемблер виртуал машинасининг ўз кўрсатмалари. Ушбу CАЛМ кўрсатмаларининг архитектурасини фасмг ассемблернинг „маҳаллий“ архитектураси деб ҳисоблаш мумкин. Тўплам х86, х64, 8052, АВР архитектура кўрсатмаларини қўллаб-қувватлашга тақлид қилиш учун CАЛМ кўрсатмалари тўпламини ўз ичига олади; ишлаб чиқувчи ҳар қандай бошқа архитектурани қўллаб-қувватлаш ва ҳар қандай чиқиш файл форматларини қўллаб-қувватлаш учун CАЛМ кўрсатмалари тўпламини тавсифлаши мумкин. Маc ОС, Линух ва Wиндоwс учун таржимоннинг ўзгаришлари мавжуд[3][4][5].
Эслатмалар
- ↑ Словар по кибернетике / Под ред. академик В. С. Михалевича. – 2-э изд. – К.: Главная редакция Украина Совецкой Энциклопедияси имени М. П. Бажана, 1989. – 751 с. – (С48). – 50 000 экз. – ИСБН 5-88500-008-5.
- ↑ СоурcеФорге.нет сайтидаги Ассемблер лойиҳаси
- ↑ „Wҳат ис флат ассемблер г?“. 2020-йил 8-октябрда асл нусхадан архивланган. Қаралди: 2020-йил 5-октябр.
- ↑ „флат ассемблер г. Усер Мануал“. 2020-йил 27-августда асл нусхадан архивланган. Қаралди: 2020-йил 5-октябр.
- ↑ „Информация о версии флат ассемблер г“. 2020-йил 8-октябрда асл нусхадан архивланган. Қаралди: 2020-йил 5-октябр.
Ҳаволалар
- Вострикова З. П. Программированиэ на язике ассемблера ЕС ЭВМ. М.: Наука, 1985.
- Ассемблер для Wин 32. Самоучитель, 2007.
- Ассемблер для ДОС, Wиндоwс и УНИХ, 2006.
- Язык ассемблера для процессоров Интел, 2005.
- Ассемблер? Это просто! Учимся программировать, 2011.
- Магда Ю. С. Ассемблер. Разработка и оптимизация Wиндоwс-приложений. СПб.: БХВ-Петербург, 2003.
- Нортон П., Соухе Д. Язик ассемблера для ИБМ ПC. М.: Компютер, 1992.
- Ассемблер для Wиндоwс, 2002.
- Ассемблер и дизассемблирование, 2006.
- Скенлон Л. Персоналниэ ЭВМ ИБМ ПC и ХТ. Программированиэ на язике ассемблера. М.: Радио и связ, 1989.
- Ассемблер: учебный курс, 2000.