Assembly nyelv
Főnév
Assembly nyelv (tsz. Assembly nyelvs)
- (informatika) Az assembly nyelv egy alacsony szintű programozási nyelv, amely közvetlen kapcsolatban áll a számítógép hardverével. Az assembly nyelv a gépi nyelv (gépi kód) szimbolikus reprezentációja, vagyis egyfajta közvetítő réteg a magas szintű programozási nyelvek és a gépi kód között. Az assembly nyelv lehetőséget ad a programozónak arra, hogy közvetlenül manipulálja a hardvert, beleértve a CPU-t, a memóriát és az egyéb perifériákat.
Jellemzői
- Alacsony szintű nyelv: Az assembly nyelv egy alacsony szintű programozási nyelv, ami azt jelenti, hogy nagyon közel áll a gépi kódhoz. A programozónak ismernie kell a célplatform specifikus architektúráját, például a regisztereket, a memória címzés módját és az utasításkészletet.
- Processzor-specifikus: Minden processzor családnak (például Intel x86, ARM, MIPS) megvan a saját assembly nyelve, mivel az utasításkészletek (instruction set architecture, ISA) eltérőek lehetnek. Ez azt jelenti, hogy egy adott processzorhoz írt assembly kód nem lesz közvetlenül futtatható egy másik processzoron.
- Opciók (mnemonikok): Az assembly nyelv parancsai, úgynevezett mnemonikok, egyszerű szavak, amelyek egy-egy utasítást jelölnek, például:
- MOV: Adatok átvitele egyik regiszterből a másikba vagy memóriába.
- ADD: Összeadás.
- SUB: Kivonás.
- JMP: Ugrás egy másik utasításra a programban (vezérlés átadása).
- Regiszterek használata: Az assembly programok gyakran manipulálnak regisztereket, amelyek a processzor belső tárhelyei. Ezek a regiszterek sokkal gyorsabbak, mint a külső memória, és ideiglenes adatok tárolására szolgálnak.
Assembly program felépítése
Egy assembly program általában a következő részekből áll:
Utasítások: Ezek határozzák meg, hogy a CPU milyen műveleteket hajtson végre. Például adatokat másolhat egyik helyről a másikra, matematikai műveleteket végezhet, vagy ugrásokat végezhet a program különböző részei között.
Példa egy egyszerű assembly programra (x86 architektúrához):
section .data message db "Hello, World!", 0 section .text global _start _start: mov edx, 13 ; Üzenet hossza mov ecx, message ; Az üzenet címe mov ebx, 1 ; File-descriptor (stdout) mov eax, 4 ; write() rendszerhívás int 0x80 ; Kernel hívása mov eax, 1 ; exit() rendszerhívás int 0x80 ; Kernel hívása
Címzési módok: Az assembly nyelvben többféle címzési mód áll rendelkezésre. Az utasításokban szereplő operandusok lehetnek regiszterek, memóriacímen tárolt adatok vagy közvetlen értékek. Például:
- Közvetlen címzés: Egy adott memóriahelyen lévő adatot használ.
- Regiszter címzés: Az adatot egy regiszterből olvassa ki.
- Közvetlen érték: Az utasítás maga tartalmazza az értéket.
Makrók és címkék: Az assembly nyelvek lehetőséget biztosítanak makrók és címkék használatára. Ezek segítenek a program struktúrájának áttekinthetőbbé tételében, és csökkentik a bonyolult kód ismétlését.
Az assembly használatának előnyei és hátrányai
Előnyök:
- Maximális teljesítmény: Az assembly nyelv használata lehetővé teszi a programozónak, hogy a hardvert a lehető leghatékonyabban használja ki. Ez különösen fontos a beágyazott rendszerekben és a valós idejű alkalmazásokban, ahol a teljesítménykritikus műveletek fontosak.
- Közvetlen hardverhozzáférés: Az assembly nyelv lehetővé teszi a programozónak, hogy közvetlenül kezelje a hardvereszközöket, például portokat, regisztereket és memóriacímeket.
- Kis méretű programok: Az assembly nyelven írt programok általában kisebbek, mint a magas szintű nyelveken készült programok, mivel nincs szükség extra rétegekre vagy könyvtárakra.
Hátrányok:
- Nehéz olvashatóság: Az assembly nyelv kódjai nehezebben olvashatók és karbantarthatók, mint a magas szintű nyelvek, például a C vagy a Python kódjai, mivel nagyon részletesek és hardver-specifikusak.
- Platformfüggőség: Mivel az assembly nyelv processzor-specifikus, egy adott platformra írt assembly kód nem használható más platformokon.
- Időigényes fejlesztés: Az assembly nyelven történő fejlesztés általában hosszabb időt vesz igénybe, mint a magasabb szintű nyelvekkel történő programozás, mivel minden apró részletet kézzel kell megvalósítani.
Assembly nyelv használata ma
Bár az assembly nyelvet ma már ritkán használják általános célú szoftverfejlesztéshez, a beágyazott rendszerek, az operációs rendszerek magjainak (kernel) fejlesztésénél és a teljesítménykritikus alkalmazásoknál még mindig fontos szerepet játszik. Az alacsony szintű programozás és a processzor architektúrák mély megértése révén a fejlesztők optimalizálhatják a rendszereiket és közvetlen hozzáférést nyerhetnek a hardverekhez, amit magasabb szintű nyelvekkel nehezebb lenne elérni.
- Assembly nyelv - Szótár.net (en-hu)
- Assembly nyelv - Sztaki (en-hu)
- Assembly nyelv - Merriam–Webster
- Assembly nyelv - Cambridge
- Assembly nyelv - WordNet
- Assembly nyelv - Яндекс (en-ru)
- Assembly nyelv - Google (en-hu)
- Assembly nyelv - Wikidata
- Assembly nyelv - Wikipédia (angol)