Megmagyaráznátok mi az az assembly nyelv?
Elég fos is az a leírás ami a wikin van.
Az assembly egy nagyjából 1-1 megfeleltetés a gépi kód és a párbetűs mnemonikok között. Tehát vannak a processzor utasítások, amiket a processzor közvetlenül megeszik, és ezeket elnevezték ilyen rövid nevekkel. Az assembly ezek írását jelenti, +adatok is vannak benne persze.
Ez a lehető legalacsonyabb szintű programozási nyelv, a legtöbb nyelv ami natív kódot készít előbb assemblyre fordít, és az megy bináris kódba.
A számítógép csak számokkal tud dolgozni. Az elemi utasítások is számok. Tehát pl. két szám összeadását is úgy kellene megadni, hogy egy számot adsz meg (az összeadás kódját), majd további számokat, hogy honnan vegye az összeadandókat (ezek persze megintcsak számok). Az egész program tehát egyszerűen számsorozat. Ezt rettenetesen nehéz áttekinteni. Ezért az elemi műveletekre kitaláltak emlékeztető rövid szavakat (pl az összeadás ADD). Ez a nyelv az "Assembly". Ezt sokkal könnyebb fejben tartani, ráadásul sokkal áttekinthetőbb is a program. Igen ám, de ezt a számítógép nem érti. Erre írtak egy programot (ez az Assembler), ami számsorozatokra fordítja az utasításokat. Néha az "assembly" és "assembler" szavakat gyakorlott programozók és kicsit keverik.
Az assembly nyelv egy utasítása a gépnek is általában egy utasítás. Az úgynevezett magas szintű nyelvek (C, Pascal, Prolog, stb) egyetlen utasítása több (néha akár több száz vagy ezer) elemi utasításra fordítódik le a számítógépben. Ilyenkor már a leggyakorlottabb programozó sem pontosan tudja, mit csinál a gép (illetve nem is törődik vele).
Az assembly tehát olyan nyelv, amivel egy az egyben tudod irányítani a gépet- lépésről lépésre azt fogja csinálni, amit mondasz neki. A magas szintű nyelveknél egyre inkább elvész ez a közvetlenség. Cserébe sokkal bonyolultabb programokat lehet írni sokkal gyorsabban.
"Az úgynevezett magas szintű nyelvek egyetlen utasítása több elemi utasításra fordítódik le a számítógépben."
Ez a több azért jónéhány esetben 1. Lásd FORTRAN, ott az arány valahol 1 és kettő között van, tehát sok utasítás csak 1-re fordul le.
Illetve rengeteg nyelv van (a legtöbb ilyen), ahol nem igazán utasítások vannak, hanem valami más, emiatt nem is lehet ilyen megfeleltetést tenni. Például egy C-s
x = 2;
kód valószínűleg egy assembly sor lesz, de ez nem utasítás, hanem kifejezés, és része lehet egy nagyobb kifejezésnek, például:
y = x = 2;
És akkor ez még csak a C, ami egy elég egyszerű nyelv, és közel áll a géphez. Megnézel egy LISP-et, és teljesen más az alap hozzállás, és ez a második programozási nyelv volt a történelem során.
Egyszerűen:
A gyárban kiadnak egy procit, ez lehet mikroprogram vezérelt, vagy áramkörös, ez inkább a sebességét határozza meg. A prociknak van jó sok lábuk, és meg lehet nekik mondani, ha az egyik lábon ez jön, akkor a másikon ez menjen és ezeket lehet a végtelenségig kombinálni, úgy, hogy az előző álapotokat, szervizeket és megszakításokat is figyelembe kell venni. Minden eredmény az aluba képződik le, és a registerekbe lehet pakolászni, ugrálni. A proci azt éri meg, hogy 10011011 meg ilyenek, de az okos emberek kitalálták, hogy ez legyen mov, és egy fordító ezt visszafordítja számokká, mert ezt az embernek jkönnyebb megjegyezni. Ez az úgynevezett mnemonic. Az e felé írt nyelv, ami tartalmaz már néhány utasítást is na az az asembly.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!