Assembler

Assembler ( – assembler) – dasturni assembler tilidagi matndan mashina tilidagi dasturga tarjima qiluvchi dasturlash tili.

Assembler dasturlash tili odatda, maʼlum bir arxitektura, operatsion tizim va til sintaksisiga xosdir, chunki assembler maʼlum bir protsessor uchun mashina koʻrsatmalari mnemonikasi bilan ishlaydi. Shu bilan birga, assembler koʻp platformali yoki hatto universal boʻlishi mumkin, yaʼni ular turli platformalarda va operatsion tizimlarda ishlashi mumkin. Assembler orasida, shuningdek, assemblerning oʻzi ishlaydigan arxitektura yoki operatsion tizimdan tashqari arxitekturalar uchun mashina kodini va bajariladigan modullarni (fayllarni) toʻplash qobiliyatiga ega boʻlgan oʻzaro faoliyat assembler guruhini ham ajratib koʻrsatish mumkin (masalan, tarjima qilish). kompyuterda ishlaydigan assembler tomonidan mikrokontroller uchun dastur).

Koʻpgina zamonaviy assemblerchilar makroassembler ( – katta, keng), yaʼni assembler tiliga asoslangan makroprotsessorlarSlovar po kibernetike / Pod red. akademik V. S. Mixalevicha. – 2-e izd. – K.: Glavnaya redaktsiya Ukraina Sovetskoy Entsiklopediyasi imeni M. P. Bajana, 1989. – 751 s. – (S48). – 50 000 ekz. – ISBN 5-88500-008-5.. Makroassemblerlarga qoʻshimcha ravishda assemblerlar tarjima paytida boshqa koʻrsatmalarni bajaradilar, ularning toʻplami dastur tarjima qilinadigan apparat platformasiga emas, balki tarjimonning oʻziga bogʻliq.

Assambler bajariladigan dastur modulini olish yoʻlidagi birinchi yoki oxirgi qadam boʻlmasligi mumkin. Shunday qilib, yuqori darajadagi dasturlash tillaridan koʻplab kompilyatorlar natijani assembler tomonidan qayta ishlanadigan assembler tili dasturi shaklida ishlab chiqaradi. Oʻz navbatida, yigʻish natijasi bajariladigan modul boʻlishi mumkin emas, balki mashina kodining turli bloklari va dastur maʼlumotlarini oʻz ichiga olgan obyekt moduli boʻlishi mumkin, undan (yoki bir nechta obyekt modullaridan) keyinchalik bogʻlovchi (bogʻlovchi) yordamida bajariladigan faylni olish mumkin.

Yuqori darajali dasturlash tillarida dasturlarni kompilyatsiya qilishdan farqli oʻlaroq, assemblerlash koʻproq yoki kamroq aniq va teskari jarayondir, chunki assembler tilida har bir mnemonika bitta mashina koʻrsatmasiga toʻgʻri keladi, yuqori darajali tillarda esa har bir ifoda koʻp sonli tillarga aylantirilishi mumkin. turli koʻrsatmalar (operatsiya, assemblerlashning teskarisi deassemblerlash deyiladi). Assambler dasturlarini tarjima qilish baʼzan kompilyatsiya deb ham ataladi.

 Arxitekturasi x86 

 DOS uchun Assemblerlar 
DOS operatsion tizimining eng mashhur assemblerlari Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM) va Watcom Assembler (WASM) edi. Oddiy assembler A86 ham bir vaqtlar mashhur edi.

 Windows 
Windows operatsion tizimining paydo boʻlishi bilan TASM 5+ (neonovd' laqabli shaxs tomonidan yaratilgan norasmiy paket) nomli TASM kengaytmasi paydo boʻldi, bu esa Windows muhitida ishlash uchun dasturlar yaratish imkonini berdi. TASMning eng soʻnggi maʼlum boʻlgan versiyasi MMX koʻrsatmalarini qoʻllab-quvvatlaydigan 5.3 versiyasi boʻlib, hozirda Turbo C++ Explorer ga kiritilgan. Ammo rasmiy ravishda dasturni ishlab chiqish butunlay toʻxtatildi. Kompilyator oʻzining eng soʻnggi ishlanmalarini TASM Visual zamonaviy rivojlanish muhiti tufayli oldi. Atrof-muhit norasmiy, ammo uning yordami bilan kompilyator bilan ishlash ancha soddalashtirilgan.

Microsoft oʻzining Microsoft Macro Assembler deb nomlangan mahsulotini saqlaydi. U hozirgi kunga qadar ishlab chiqishda davom etmoqda, eng soʻnggi versiyalari DDK larga kiritilgan. Ammo dasturning DOS uchun dasturlar yaratishga qaratilgan versiyasi ishlab chiqilmayapti. Bundan tashqari, Stiven Xatchesson „MASM32“ nomli MASM dasturlash paketini yaratdi.

 GNU va Linux 
GNU operatsion tizimi Intel sintaksisidan foydalanadigan boshqa mashhur assemblerlardan farqli oʻlaroq, AT&amp;T-sintaksisidan foydalanadigan GAS assemblerni (GNU Assembler) oʻz ichiga olgan binutils paketini oʻz ichiga oladi (2.10-versiyasidan beri qoʻllab-quvvatlanadi).

 Portativ assemblerlar 
Bundan tashqari, ochiq manbali assembler loyihasi mavjud boʻlib, uning versiyalari turli xil operatsion tizimlar uchun mavjud va bu tizimlar uchun obyekt fayllarini olish imkonini beradi. Ushbu assembler NASM (Netwide Assembler) deb ataladi.

Yasm – bu BSD litsenziyasi ostida NASMning qayta yozilgan versiyasi (baʼzi istisnolardan tashqari).

flat assembler (fasm) – qayta litsenziyalashni taqiqlash uchun oʻzgartirilgan BSD litsenziyasi ostidagi yosh assembler (shu jumladan GNU GPL boʻyicha). KolibriOS, Linux, DOS va Windows uchun versiyalari mavjud; Intel sintaksisidan foydalanadi va x86-64 koʻrsatmalarini qoʻllab-quvvatlaydi.

 RISC arxitekturalari 

 MCS-51 
MCS-51 (Intel 8051) klassik mikrokontroller arxitekturasidir. Uning uchun MetaLink korporatsiyasi tomonidan chiqarilgan ASM51 oʻzaro faoliyat assembler mavjud.

Bundan tashqari, IAR yoki Keil kabi koʻplab dasturiy taʼminot ishlab chiqaruvchi firmalar assemblerlarning oʻz versiyalarini taqdim etdilar. Baʼzi hollarda ushbu assemblerlardan foydalanish qulay direktivalar toʻplami va professional assembler va C dasturlash tilini, tuzatuvchi va dasturiy taʼminot loyihasi menejerini birlashtirgan dasturlash muhitining mavjudligi tufayli samaraliroq boʻladi.

 AVR 
Ayni paytda Atmel tomonidan ishlab chiqarilgan AVR uchun 4 ta kompilyator mavjud (AVRStudio 3, AVRStudio 4, AVRStudio 5 va AVRStudio 6, AVRStudio 7).

AVR-GCC loyihasining (aka WinAVR) bir qismi sifatida avr-as kompilyatori mavjud (bu GCC- dan AVR-ga koʻchirilgan assembler sifatida GNU).

AvraSourceForge.net saytidagi Assembler loyihasi deb nomlangan bepul minimalist kompilyator ham mavjud.

Pullik kompilyatorlar: IAR (EWAVR), CodeVisionAVR, Imagecraft. Ushbu kompilyatorlar Assembler va C tillarini qoʻllab-quvvatlaydi va IAR ham C++ ni qoʻllab-quvvatlaydi.

BASIC tili uchun kompilyator mavjud – BASCOM, shuningdek, pullik.

 ARM 
ARM protsessorlari uchun kompilyatorlarning juda keng tanlovi mavjud boʻlib, ularning ichki amalga oshirilishi bevosita ARM protsessorlari ishlab chiqaruvchisiga yoki ARM protsessorlari bilan ishlash uchun IDE ishlab chiqaruvchisiga bogʻliq. Toʻgʻridan-toʻgʻri ARM kompaniyasidan rasmiy ARM kompilyatori ARM Compiler 6 boʻlib, u IDE DS-5 Development Studio dasturiga kiritilgan va C va C++ tillarida dasturlarni kompilyatsiya qilishni qoʻllab-quvvatlaydi.

ARM protsessor yetkazib beruvchilari va ARM asboblar zanjiri ishlab chiquvchilari kompilyatorlari:
IDE provayderi Kompilyator Qoʻllab-quvvatlanadigan tillar Foydalanish shartlari Keil mVision MDK-ARM  C / C++ / Assembler Shareware (32 kb dan oshmasligi kerak) IAR oʻrnatilgan ishchi dastgohi  ENU.pdf IAR kompilyatori C / C++ / Assembler Tijorat COID GCC kompilyatori. C / C++ / Assembler. Bepul/tijorat Haqiqiy studiya Oldindan kompilyatsiya qilingan GCC kompilyatori. C / C++ / Assembler Bepul/tijorat

 PIC 
PIC oilasining mikrokontrollerlari uchun dasturlarni yaratish, tahrirlash va disk raskadrovka qilish uchun Microchip Technology tomonidan ishlab chiqarilgan ishlab chiqish muhiti MPLAB hisoblanadi. Atrof-muhit PIC mikrokontrollerlarining turli oilalari uchun MPASM va ASM30 assembly tili tarjimonlarini oʻz ichiga oladi. MPLAB X IDE muhitining zamonaviy versiyalari koʻp platformali boʻlib, turli xil kompyuter operatsion tizimlari ostida ishlaydi. Atrof-muhit bepul tarqatiladi.

 AVR32 

 MSP430 

 PowerPC 
IBMning PowerPC dasturiy taʼminotni ishlab chiqish asboblar toʻplami PowerPC uchun assemblerni oʻz ichiga oladi.

 MIPS 

 Virtual mashina arxitekturasini yigʻish 

 fasmg assembler (CALM koʻrsatmalar arxitekturasi) 
U shunga oʻxshash sintaksisga ega assembler flat assembler (fasm) ning vorisi, lekin fasmdan farqli oʻlaroq, u hech qanday protsessor arxitekturasiga bogʻliq emas. Uning paradigmasi makrolardan foydalangan holda har qanday protsessor arxitekturasi uchun har qanday formatdagi va mashina kodi bilan chiqish fayllarini yaratishdir. Makroslarga qoʻshimcha ravishda fasmg deb ataladigan narsalarni oʻz ichiga oladi. CALM koʻrsatmalari („kompilyatsiya qilingan assembler koʻrsatmalari, makroassemblerlar kabi“) tarjimon tomonidan bayt kodga aylantiriladigan makroassemblerlarga ekvivalent boʻlgan assembler virtual mashinasining oʻz koʻrsatmalari. Ushbu CALM koʻrsatmalarining arxitekturasini fasmg assemblerning „mahalliy“ arxitekturasi deb hisoblash mumkin. Toʻplam x86, x64, 8052, AVR arxitektura koʻrsatmalarini qoʻllab-quvvatlashga taqlid qilish uchun CALM koʻrsatmalari toʻplamini oʻz ichiga oladi; ishlab chiquvchi har qanday boshqa arxitekturani qoʻllab-quvvatlash va har qanday chiqish fayl formatlarini qoʻllab-quvvatlash uchun CALM koʻrsatmalari toʻplamini tavsiflashi mumkin. Mac OS, Linux va Windows uchun tarjimonning oʻzgarishlari mavjud.

 Eslatmalar 

 Havolalar 

 Vostrikova Z. P. Programmirovanie na yazike assemblera YeS EVM. M.: Nauka, 1985.




 Magda Yu. S. Assembler. Razrabotka i optimizatsiya Windows-prilojeniy. SPb.: BXV-Peterburg, 2003.
 Norton P., Souxe D. Yazik assemblera dlya IBM PC. M.: Kompyuter, 1992.


 Skenlon L. Personalnie EVM IBM PC i XT. Programmirovanie na yazike assemblera. M.: Radio i svyaz, 1989.

Turkum:Assembler
Turkum:Programming languages
Turkum:Development
Turkum:Pages with unreviewed translations