Assembly Language Definition

Mi az Assembly Language?

Az assembly nyelv egy olyan alacsony szintű programozási nyelv, amely közvetlenül kommunikál a számítógép hardverével.A gépi nyelvtől eltérően, amely bináris és hexadecimális karakterekből áll, az assembly nyelveket úgy tervezték, hogy az emberek is olvassák.

Az alacsony szintű programozási nyelvek, mint például az assembly nyelv, szükséges hidat képeznek a számítógép mögöttes hardverei és a magasabb szintű programozási nyelvek – például a Python vagy a JavaScript – között, amelyeken a modern szoftverprogramokat írják.

Kulcs elvitelek

  • Az assembly nyelv egy olyan programozási nyelv, amely a magas szintű nyelveket gépi nyelvre fordítja.
  • Ez egy szükséges híd a szoftverprogramok és a mögöttes hardverplatformok között.
  • Az Assembly nyelv a nyelvi szintaxisra, címkékre, operátorokra és direktívákra támaszkodik, hogy a kódot használható gépi utasításokká alakítsa.
  • Az összeállítási nyelv áthaladhat egy- vagy többmenetes assemblereken, amelyek mindegyike sajátos felhasználási területtel és előnyökkel rendelkezik.
  • Manapság az assemble nyelveket ritkán írják közvetlenül, bár még mindig használják néhány rés alkalmazásban, például amikor a teljesítményigények különösen magasak.

Hogyan működnek az Assembly Languages

Alapvetően a számítógép által végrehajtott legalapvetőbb utasítások bináris kódok, amelyek egyesekből és nullákból állnak.Ezeket a kódokat közvetlenül lefordítják a számítógép fizikai áramkörein áthaladó elektromosság „be” és „ki” állapotába.Lényegében ezek az egyszerű kódok képezik a „gépi nyelv” alapját, a programozási nyelv legalapvetőbb változatát.

Természetesen egyetlen ember sem tudna modern szoftvereket létrehozni egyesek és nullák kifejezetten programozásával.Ehelyett az emberi programozóknak az absztrakció különböző rétegeire kell támaszkodniuk, amelyek lehetővé teszik számukra, hogy parancsaikat az emberek számára intuitívabb formátumban fogalmazzák meg.

Konkrétan a modern programozók úgynevezett „magas szintű nyelveken” adnak ki parancsokat, amelyek intuitív szintaxist, például teljes angol szavakat és mondatokat, valamint logikai operátorokat, például „és”, „vagy” és „egyéb” használnak. ismerős a mindennapi használatban.

Végül azonban ezeket a magas szintű parancsokat le kell fordítani gépi nyelvre.A programozók ahelyett, hogy ezt manuálisan tennék, assembly nyelvekre támaszkodnak, amelyek célja a magas és alacsony szintű nyelvek közötti automatikus fordítás.Az első assembly nyelveket az 1940-es években fejlesztették ki, és bár a modern programozók és a modern természetes nyelvi processzorok nagyon kevés időt töltenek az assembly nyelvekkel, ennek ellenére továbbra is nélkülözhetetlenek a számítógép általános működéséhez.

A számítástechnika korai napjaiban a rendszerprogramozás és az alkalmazásprogramozás is teljes egészében assembly nyelven zajlott.Az assembly nyelvek nélkül sok modern számítógép és magasabb szintű nyelv, amelyet ma használunk, nem jöhetett volna létre.

Az Assembly Language összetevői

Szintaxis

Ha bármilyen programnyelven bármilyen kódot ír, van egy megfigyelhető, specifikus szabályrend, amelyet be kell tartani, hogy a fordító hibamentesen tudja végrehajtani a kódot.Ezek a szabályok szintaxisként vannak definiálva, és olyan kritériumokat tartalmaznak, mint a megengedett karakterek maximális száma, milyen karakterekkel kell kezdődnie a kódsoroknak, vagy mit jelentenek bizonyos szimbólumok „azaz a pontosvessző”.

Címke

A címke egy szimbólum, amely azt a címet jelöli, ahol egy utasítást vagy adatot tárolnak.Célja, hogy célként működjön, amikor egy utasításban hivatkoznak rá.A címkék bárhol használhatók, ahol egy cím használható assembly nyelven.A szimbolikus címkék egy azonosítóból, majd kettőspontból állnak, míg a numerikus címkék egyetlen digitálisból, amelyet kettőspont követ.

Üzemeltetők

A parancsoknak is nevezett operátorok logikai kifejezések, amelyek a címkemező után fordulnak elő.Ezenkívül legalább egy szóköz karakternek kell előtte lennie.Az operátorok lehetnek műveleti kódok vagy direktívák.Az opkódok közvetlenül a gépi utasításoknak felelnek meg, és a műveleti kód tartalmaz minden, az utasításhoz társított regiszternevet.Alternatív megoldásként az irányelv műveleti kódjai az assembler által ismert utasítások.

Irányelv

Az irányelvek az összeszerelőnek szóló utasítások, amelyek megmondják, milyen műveleteket kell végrehajtani az összeszerelési folyamat során.Az irányelvek fontosak a változók deklarálása vagy memória fenntartása; ezek a változók később a folyamatokban előhívhatók, hogy dinamikusabb funkciókat hajtsanak végre.Az irányelvek a programok különböző szakaszokra bontására is szolgálnak.

Makró

Az assembly nyelvi makró egy sablon cipőformátum, amely utasítások sorozatát vagy mintáját mutatja be.Az assembly nyelvi utasítások ezen sorozata több különböző programban is közös lehet.A makrólehetőséget a makródefiníciók értelmezésére használják, míg a makróhívást beillesztik a forráskódba, ahol a "normál" összeállítási kód került volna a makró utasításkészlete helyett.

Emlékezeterősítő

A mnemonika egy művelet rövidítése.Minden egyes assemble program utasításhoz egy emlékeztető kerül be a műveleti kódba, hogy megadjon egy rövidített "opcode"-ot, amely egy nagyobb, teljes kódkészletet képvisel.Például a „szorozd meg kettővel” egy teljes kódkészlettel rendelkezik, amely végrehajtja a mnemonikát.

Nagyfrekvenciás kereskedés

Manapság az assembly nyelvek továbbra is a számítástechnikai hallgatók tanulmányi tárgyai, hogy segítsenek nekik megérteni, hogyan viszonyulnak a modern szoftverek a mögöttes hardverplatformokhoz.Egyes esetekben a programozóknak továbbra is assembly nyelveken kell írniuk, például amikor a teljesítményre vonatkozó követelmények különösen magasak, vagy ha a kérdéses hardver nem kompatibilis a jelenlegi magas szintű nyelvekkel.

Az egyik ilyen, a finanszírozás szempontjából releváns példa az egyes pénzügyi cégek által használt nagyfrekvenciás kereskedési (HFT) platformok.Ezen a piacon a tranzakciók gyorsasága és pontossága kiemelkedően fontos ahhoz, hogy a HFT kereskedési stratégiák nyereségesnek bizonyuljanak.Ezért, hogy versenytársaikkal szemben előnyhöz jussanak, egyes HFT-cégek közvetlenül assembly nyelveken írták meg kereskedési szoftvereiket, így szükségtelenné vált arra várni, hogy egy magasabb szintű nyelv parancsait gépi nyelvre fordítsák.

Sokan úgy vélik, hogy az assembly nyelvek tanulási görbéi a legmeredekebbek, és ezek a legnehezebben megtanulható számítástechnikai nyelvek.

Előnyök és hátrányok

Az összeállítási nyelv általában gyorsabban végrehajtható, mint a magas szintű nyelvek.Az assembly nyelvi kód törlési összetevőinek beillesztése viszonylag egyszerű, és az assembly nyelvnek általában kevesebb utasításra van szüksége a feladat végrehajtásához, összehasonlítva más típusú nyelvekkel.

Az összeállítási nyelveket gyakran használják a programozók is, akik nagyobb ellenőrzést szeretnének elérni számítógépeik felett, mivel az assembly nyelvek lehetővé teszik a hardver közvetlen kezelését.Gyorsasága és fontossága miatt egyes programok kifejezetten assembly nyelven vannak megírva, mivel a kód általában kisebb lehet.

Az összeállítási nyelveknek több hátránya is van.Az assembly nyelven írt hosszú programok általában nagyobb számítási teljesítményt igényelnek, és nem futtathatók kis számítógépeken.Vannak, akiknek nehezebb megjegyezni az assembly nyelv szintaxisát, és tovább tarthat az assembly nyelvű kódolás, mivel az összetettebb.Ezenkívül az assembly nyelv általában nem hordozható a különböző számítógép-márkák között; hasonlóan ahhoz, ahogy a munkavállalói juttatások elvesznek cégváltáskor, a nyelveket nem lehet zökkenőmentesen lefordítani különböző számítógépekre.

Profik
  • A végrehajtás más nyelvekhez képest egyszerűbb lehet

  • A végrehajtás általában gyorsabb más nyelvekhez képest

  • Lehetővé teszi a hardver közvetlen vezérlését

  • A kód kisebb maradhat más nyelvekhez képest

Hátrányok
  • A programozás nagyobb kihívást jelenthet a magas szintű nyelvekhez képest

  • Az assembly nyelvek szintaxisa nehéz

  • Nem hordozható gépek között

Az összeszerelők típusai

Az assembler nyelvet gépi nyelvre kell fordítani assembler segítségével.Az összeszerelőknek két fő típusa van.

Az egymenetes assembler egyszer átvizsgál egy programot, és egy ezzel egyenértékű bináris programot készít.Ez a fajta assembler úgy érvényesíti az assembly nyelvi kódot, hogy megkeresi a kódot egy mnemonikus kódtáblázatban.Az egylépéses assembler gyakran gyorsabb, mint a többlépéses assembler, és általában nincs szükség közbenső kód létrehozására.

A többmenetes összeszerelő azt jelenti, hogy az összeszerelő egynél több menetet használ.A többlépéses összeállítók létrehoznak egy táblázatot minden szimbólummal és minden egyes értékkel az első lépésben, majd a táblát használják a következő lépésekben az új kód létrehozásához.Minden külön bérlet általában más-más feladatot lát el.Bár általában lassabbak, a moduláris felépítésű többmenetes összeszerelők gyakran újra felhasználhatók különböző gépekhez.

Példa az Assembly Language Code-ra

Az alábbiakban egy példa látható a Netwide Assembler (NASM) assembly nyelvi kódjára.

Példa az Assembly Language Code-ra.

Loyola Marymount Egyetem

Ebben a példában a SYSCALL utasítás a kód vége felé aktiválja a memória azon részét, ahol az operációs rendszer szolgáltatásai vannak tárolva.Ezután a RAX kódot használják a kód megírására, majd az RDI kilépésre.A SYSCALL funkciót kétszer használják az operációs rendszer meghívására, valamint jelzik a rendszernek, ha a kód befejeződött, és eljött a kilépés ideje.

Mi a példa az Assembly nyelvre?

A leggyakrabban használt assembly nyelvek közé tartozik az ARM, a MIPS és az x86.

A C++ egy Assembly nyelv?

A C++ nem összeállítási kódból áll.A C++ számítási nyelv C++ kódból áll, amelyet a fordító végrehajtható gépi kóddá fordít le.

A Python összeállító nyelv?

A Python fejlettebb, mint az assembly nyelvek.Az összeállítási nyelvek alacsony szintű nyelvnek minősülnek, míg a magas szintű nyelvek, például a C, a Java vagy a Python, 0-t és 1-est használnak számok, szimbólumok és rövidítések helyett.

Hogyan használják ma az összeállítási nyelveket?

Bár a fejlettebb nyelvekhez képest alacsonyabb szintű nyelveknek tekintik, továbbra is használják az assembly nyelveket.Az összeállítási nyelv a hardver közvetlen manipulálására, a speciális processzorutasítások elérésére vagy a kritikus teljesítményproblémák értékelésére szolgál.Ezeket a nyelveket arra is használják, hogy kihasználják sebességbeli előnyüket a magas szintű nyelvekkel szemben olyan időérzékeny tevékenységeknél, mint például a nagyfrekvenciás kereskedés.

Alsó vonal

Az összeállítási nyelv egy alacsony szintű kód, amely erős kapcsolatra támaszkodik a kódolási nyelv használatával bevitt utasítások és a gép által a kódutasítások értelmezése között.A kódot végrehajtható műveletekké alakítja egy assembler segítségével, amely a bemenetet a gép számára felismerhető utasításokká alakítja.Bár a számítástechnika korai napjaiban elterjedt, sok nagyobb rendszer magasabb szintű nyelveket használ.