Kontent qismiga oʻtish

Assembler

Vikipediya, ochiq ensiklopediya
(Assembler dasturlash tilidan yoʻnaltirildi)

 

Assembler (inglizcha: 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 (grekcha: μάκρος – katta, keng), yaʼni assembler tiliga asoslangan makroprotsessorlar [1]. 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 ob’ekt moduli boʻlishi mumkin, undan (yoki bir nechta ob’ekt 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

[tahrir | manbasini tahrirlash]

DOS uchun Assemblerlar

[tahrir | manbasini tahrirlash]

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 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 operatsion tizimi Intel sintaksisidan foydalanadigan boshqa mashhur assemblerlardan farqli oʻlaroq, AT&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

[tahrir | manbasini tahrirlash]

Bundan tashqari, ochiq manbali assembler loyihasi mavjud boʻlib, uning versiyalari turli xil operatsion tizimlar uchun mavjud va bu tizimlar uchun ob’ekt 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

[tahrir | manbasini tahrirlash]

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.

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).

Avra [2] 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 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 (Wayback Machine saytida 2020-10-21 sanasida arxivlangan) C / C++ / Assembler Shareware (32 kb dan oshmasligi kerak)
IAR oʻrnatilgan ishchi dastgohi (Wayback Machine saytida 2021-03-04 sanasida arxivlangan) ENU.pdf IAR kompilyatori[sayt ishlamaydi] 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 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.

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

Virtual mashina arxitekturasini yigʻish

[tahrir | manbasini tahrirlash]

fasmg assembler (CALM koʻrsatmalar arxitekturasi)

[tahrir | manbasini tahrirlash]

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 [3][4][5].

  1. Slovar 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.
  2. SourceForge.net saytidagi Assembler loyihasi
  3. „What is flat assembler g?“. 2020-yil 8-oktyabrda asl nusxadan arxivlangan. Qaraldi: 2020-yil 5-oktyabr.
  4. „flat assembler g. User Manual“. 2020-yil 27-avgustda asl nusxadan arxivlangan. Qaraldi: 2020-yil 5-oktyabr.
  5. „Информация о версии flat assembler g“. 2020-yil 8-oktyabrda asl nusxadan arxivlangan. Qaraldi: 2020-yil 5-oktyabr.
  • Vostrikova Z. P. Programmirovanie na yazike assemblera YeS EVM. M.: Nauka, 1985.
  • Ассемблер для Win 32. Самоучитель, 2007. 
  • Ассемблер для DOS, Windows и UNIX, 2006. 
  • Язык ассемблера для процессоров Intel, 2005. 
  • Ассемблер? Это просто! Учимся программировать, 2011. 
  • 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.
  • Ассемблер для Windows, 2002. 
  • Ассемблер и дизассемблирование, 2006. 
  • Skenlon L. Personalnie EVM IBM PC i XT. Programmirovanie na yazike assemblera. M.: Radio i svyaz, 1989.
  • Assembler: учебный курс, 2000.