Szerelő

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.

x86 architektúra

Assemblers for DOS

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.

Windows

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.

GNU és Linux

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

Hordozható összeszerelők

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 .

RISC architektúrák

MCS-51

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.

AVR

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.

ARM

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

PIC

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.

AVR32

MSP430

PowerPC

Az IBM PowerPC szoftverfejlesztő eszközkészlete tartalmaz egy összeszerelőt a PowerPC számára .

MIPS

Az Assembler virtuális gép architektúrája

fasmg assembler (CALM utasítás architektú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] .

Lásd még

Jegyzetek

  1. Kibernetikai szótár / Szerk. V. S. Mihalevics akadémikus . - 2. kiadás - K . : M. P. Bazhanról elnevezett Ukrán Szovjet Enciklopédia főkiadása, 1989. - 751 p. - (C48). — 50.000 példány.  - ISBN 5-88500-008-5 .
  2. Assembler projekt a SourceForge.net webhelyen
  3. Mi az a lapos szerelő g? . Letöltve: 2020. október 5. Az eredetiből archiválva : 2020. október 8..
  4. lapos szerelő g. Felhasználói kézikönyv . Letöltve: 2020. október 5. Az eredetiből archiválva : 2020. augusztus 27.
  5. lapos szerelő g verzió információ . Letöltve: 2020. október 5. Az eredetiből archiválva : 2020. október 8..

Irodalom