Assembler (az angol assembler - assembler szóból) - programfordító assembly nyelvű szövegről gépi nyelvű programra .
Magához a nyelvhez hasonlóan az assemblerek is jellemzőek egy adott architektúrára , operációs rendszerre és a nyelv szintaktikai változatára, mivel egy adott processzor gépi utasítás-emlékezetével működnek. Ugyanakkor az assemblerek lehetnek többplatformosak vagy teljesen univerzálisak, azaz különböző platformokon és operációs rendszereken dolgozhatnak. Az assemblerek között megkülönböztethető a cross assemblerek egy csoportja is , amelyek képesek gépi kódot és végrehajtható modulokat (fájlokat) összeállítani olyan architektúrákhoz, amelyek nem az az architektúra és/vagy operációs rendszer, amelyben maga az assembler működik (például egy számítógépen futó assembler program mikrokontrollerhez ).
Sok modern assembler makró assembler (a görög μάκρος szóból - nagy, kiterjedt), vagyis assembly nyelven alapuló makroprocesszor [1] . A makrók mellett az assemblerek más direktívákat is végrehajtanak a fordítás során , amelyek halmaza nem attól a hardverplatformtól függ, amelyre a programot lefordítják, hanem magától a fordítótól.
Előfordulhat, hogy az összeszerelés nem az első vagy az utolsó lépés a végrehajtható programmodul megszerzéséhez vezető úton. Tehát sok magas szintű programozási nyelv fordítója egy assembly nyelvi program formájában állítja elő az eredményt, amelyet az assembler tovább dolgoz fel. Az assembly eredménye viszont nem is végrehajtható, hanem különálló gépi kód- és programadat-blokkokat tartalmazó objektummodul , amelyből (vagy több objektummodulból) a későbbiekben egy linker (linker) segítségével futtatható fájl nyerhető .
Ellentétben a programok magas szintű nyelveken történő fordításával , az assembly többé-kevésbé egyértelmű és visszafordítható folyamat, mivel az assembly nyelvben minden mnemonika egy gépi utasításnak felel meg, míg a magas szintű nyelvekben minden kifejezés nagyszámú különböző utasítások (működés, az összeszerelés fordítottját szétszerelésnek nevezzük ). Az összeállítási programok fordítását néha fordításnak is nevezik.
A DOS operációs rendszer legismertebb összeszerelői a Borland Turbo Assembler ( TASM ), a Microsoft Macro Assembler ( MASM ) és a Watcom Assembler (WASM) voltak. Egy időben az egyszerű A86 összeszerelő is népszerű volt.
A Windows operációs rendszer megjelenésével megjelent a TASM 5+ nevű TASM bővítmény (nem hivatalos csomag, amelyet egy neonovd' becenévvel rendelkező személy hozott létre), amely lehetővé tette a Windows környezetben futtatható programok készítését. A TASM legújabb ismert verziója az 5.3, amely támogatja az MMX utasításokat, és jelenleg a Turbo C++ Explorerben található . De hivatalosan a program fejlesztése teljesen leállt. A fordítóprogram legújabb fejlesztését a modern TASM Visual fejlesztőkörnyezetnek köszönhetően kapta meg. A környezet nem hivatalos, de segítségével a fordítóval való munka jelentősen leegyszerűsödik.
A Microsoft fenntartja a Microsoft Macro Assembler nevű termékét . A mai napig folyamatosan fejlődik, és a legújabb verziókat a DDK -k tartalmazzák . De a program DOS-hoz való programok létrehozását célzó verzióját nem fejlesztik. Ezenkívül Stephen Hutchesson készített egy MASM programozási csomagot "MASM32" néven.
A GNU operációs rendszer tartalmazza a binutils csomagot , amely az AT&T szintaxist használó GAS assemblert (GNU Assembler) tartalmazza , ellentétben a legtöbb népszerű összeszerelővel, amely Intel szintaxist használ (a 2.10-es verzió óta támogatott).
Létezik egy nyílt assembler projekt is, amelynek különböző operációs rendszerekhez elérhető verziói vannak, és amely lehetővé teszi objektumfájlok beszerzését ezekhez a rendszerekhez. Ennek az assemblernek a neve NASM (Netwide Assembler).
A Yasm a NASM újraírt változata, amelyet a semmiből licencelnek a BSD licenc alatt (néhány kivételtől eltekintve).
flat assembler (fasm) egy fiatal assembler BSD licenc alatt, amelyet az újralicencelés tiltására módosítottak (a GNU GPL alatt is). Vannak KolibriOS , Linux , DOS és Windows verziók ; Intel szintaxist használ , és támogatja az x86-64 utasításokat .
Az MCS-51 ( Intel 8051 ) egy klasszikus mikrovezérlő architektúra. Ehhez létezik egy keresztösszeszerelő ASM51, amelyet a MetaLink Corporation adott ki .
Emellett számos szoftvercég, mint például az IAR vagy a Keil, benyújtotta assembler verzióit. Egyes esetekben ezeknek az assemblereknek a használata hatékonyabb a kényelmes direktívakészletnek és a professzionális assemblert és a C programozási nyelvet ötvöző programozási környezetnek, egy hibakeresőnek és egy szoftver projektmenedzsernek köszönhetően.
Jelenleg 4 Atmel fordító létezik az AVR -hez ( AVRStudio 3, AVRStudio 4, AVRStudio 5 és AVRStudio 6, AVRStudio 7).
Az AVR-GCC projekt (más néven WinAVR ) keretein belül létezik egy avr-as fordító (ez a GNU as assembler, amelyet AVR-hez portoltak a GCC -ből ).
Van egy ingyenes minimalista fordító is, az avra [2] .
Fizetett fordítók: IAR (EWAVR), CodeVisionAVR, Imagecraft. Ezek a fordítók támogatják az Assemblert és a C-t, az IAR pedig a C++-t is.
Van egy fordító a BASIC nyelvből - BASCOM, szintén fizetős.
Az ARM processzorok esetében meglehetősen széles a fordítóprogramok választéka, amelyek belső megvalósítása közvetlenül függ az adott ARM processzor gyártójától vagy az ARM processzorokkal való munkavégzéshez szükséges IDE fejlesztőjétől. A hivatalos ARM fordító, közvetlenül az ARM cégtől , az ARM Compiler 6 , amely a DS-5 Development Studio IDE -ben található , és támogatja a C és C++ programok fordítását .
Az ARM processzorgyártók és az ARM eszközlánc-fejlesztők fordítói:
IDE szolgáltató | Fordítóprogram | Támogatott nyelvek | Használati feltételek |
---|---|---|---|
Keil mVision | MDK-ARM | C / C++ /Assembler | Shareware (legfeljebb 32 kb) |
IAR Embedded Workbench | IAR fordító | C / C++ /Assembler | kereskedelmi |
COIDE | gcc fordító. | C / C++ /Assembler. | Ingyenes/Kereskedelmi |
igazi stúdió | Előre lefordított GCC fordító. | C / C++ /Assembler | Ingyenes/Kereskedelmi |
A Microchip Technology által kiadott fejlesztői környezet a PIC család mikrovezérlőinek programjainak létrehozására, szerkesztésére és hibakeresésére az MPLAB . A környezet MPASM és ASM30 assembly nyelvű fordítókat tartalmaz a PIC mikrovezérlők különböző családjaihoz. Az MPLAB X IDE modern verziói többplatformosak, és különféle számítógépes operációs rendszereken működnek. A médium terjesztése ingyenes.
Az IBM PowerPC szoftverfejlesztő eszközkészlete tartalmaz egy összeszerelőt a PowerPC számára .
A flat assembler (fasm) assembler utódja, hasonló szintaxissal, de a fasm-mal ellentétben nem kötődik semmilyen processzorarchitektúrához. Paradigmája bármilyen formátumú és gépi kóddal rendelkező kimeneti fájlok létrehozása makrók segítségével bármilyen processzorarchitektúrához. A fasmg a makrók mellett az ún. A CALM utasítások (szó szerint "makrószerű összeállítási utasítások") natív assembler virtuális gép utasítások, amelyek egyenértékűek a makróval, amelyeket a fordító bájtkóddá alakít át. Ezen CALM utasítások architektúrája a fasmg assembler "natív" architektúrájának tekinthető. A készlet tartalmaz CALM utasításokat az x86, x64, 8052, AVR architektúra utasítások emulálásához; a fejlesztő leírhatja a CALM utasításkészleteket bármely más architektúra támogatásához, és bármilyen kimeneti fájlformátumot támogat. Fordítói változatok érhetők el Mac OS , Linux és Windows rendszerekhez [3] [4] [5] .
Assembly nyelv | |
---|---|
IDE | |
Fordítók | |
Szintaxis formátumok |
Mikrokontrollerek | ||||||||
---|---|---|---|---|---|---|---|---|
Építészet |
| |||||||
Gyártók |
| |||||||
Alkatrészek | ||||||||
Periféria | ||||||||
Interfészek | ||||||||
OS | ||||||||
Programozás |
|
Programozási nyelvek | |
---|---|
|