Mi az alapvető különbség az assembly nyelven magas szintű programozási nyelvek, amely
assembly - programozási nyelv „alacsony szintű”. Ezzel szemben a nyelv gépi kód lehetővé teszi, hogy sokkal kényelmesebb az emberi emlékezet (karakter) kijelölése parancsokat. Ebben az esetben lefordítani assembly nyelvű gépi kódra érteni a processzort igényel speciális programot is nevezik assembler.
Szerelő - az anyanyelv a számítógép. Azt mondhatjuk, hogy a számítógép „gondolkodik” assembly nyelven. Ezért írt programok más nyelveken, mint a C, akkor először le kell fordítani az assembler, hogy megértsék a számítógép, és képes volt teljesíteni.
Amikor arról beszélünk, egy számítógépes program futtatása, akkor először is azt jelenti, szíve - a processzor - egy chip, amely végrehajtja a parancsokat, gyakran nevezik utasításokat, és tárolja az eredményeket munkájuk speciális regiszterek. Például, a kivitelezés processzor utasítások
vezet az a tény, hogy az EAX regiszter száma 5. Az első utasítás mov eax, 2 küld egy regiszter EAX szám 2. A második útmutató add eax, 3, végre az első, hozzáadja a regiszterben EAX 3-as szám.
Bájtkód vagy bájtkódot (. Engl byte-kód), néha is használják pszeudokód távon - a gép-független, alacsony szintű kód a fordító által generált és értelmező végrehajtható. A legtöbb bytecode utasítások egyenértékű egy vagy több assembler parancsokat. Broadcast byte-kód foglal köztes helyzetben a válogatás natív kód és értelmezése.
Ugyanakkor lehetséges, hogy hozzon létre a feldolgozók, amelyek a byte kód gépi kód közvetlenül (például processzorok léteznek, mint például a Java és a Forth).
4. Adjon példákat futtatható fájl formátumokat, és röviden írja le azokat. Részletek ELF formátumot.
futtatható fájl formátum:
· .COM.
Bővítése .COM fájlok (. Angol parancs) használtak valamilyen számítógépes operációs rendszerek különböző tselyah.V DOS rendszerekben, illetve a 8-bites CP / M, COM fájl - egy egyszerű futtatható fájl típusát, amely nem haladhatja meg a 64 KB-256 byte ( 65.280 = 216-28 bájt).
· .EXE
.EXE (futtatható rövidítve angolul - .. Program) - kiterjesztése a futtatható fájl használt rendszerek DOS, Windows, Symbian, OS / 2, és mások. Amellett, hogy a tárgyi kód tartalmazhat különböző metaadatokat (ikon, digitális aláírás).
· a.out
Az a.out (az angol assembler kimenet.) - a méret a futtatható fájlokat néhány (régi) Unix változatok. A méret a végrehajtható a.out fájlt főleg a Linux. Racshirennaya változata a formátumot használják a.outb csoport BSD-kompatibilis operációs rendszerek (NetBSD, FreeBSD és OpenBSD). NASM fordító tudja generálni a fájlokat mindkét formátumot, ha megadja -f aout billentyűvel Linux vagy -f aoutb BSD. alapértelmezett GCC termel a a.out fájlt, hacsak nem használja az -o opció.
o táblázat Program fejléc, amely leírja nulla vagy több szegmens
o táblázat Szakaszfejléc leíró nulla vagy több részre
o Az adatok a nyilvántartásban utalni az említett táblák
A szegmensek tartalmazzák a szükséges adatokat a végrehajtás a fájlt, és a szakaszok tartalmazzák információk összekapcsolására és áthelyezése folyamatban. Minden byte a fájl nem lehet alkalmazni egynél több szakaszban.
· MZ (méret)
MZ - normál méret 16 bites futtatható fájlok exe kiterjesztésű fájl DOS. .EXE és .DLL fájlok a Windows kezdődő MZ csonk olyan formában, hogy az, amikor megpróbál futtatni egy fájlt a DOS üzenetet jeleníti meg Ez a program nem futtatható DOS módban. ( „Ez a program nem futtatható DOS módban”).
· Hordozható Végrehajtható
Hordozható Végrehajtható - (PE) - a méret végrehajtható fájlokat tárgykód és dinamikus könyvtárakat használt 32 bites és 64 bites Microsoft Windows operációs rendszer. PE formátum egy adatstruktúra, amely tartalmazza az összes szükséges információt, hogy a projekt PE rakodó fájl memóriába.
5. Mik a fokozatok létrehozását egy végrehajtható program forráskódját? Írja le saját lényegét. Olyan nyelvek C ++, Java és Python, sorolja fel a lépéseit programok létrehozása zajlanak a valóságban, és jelzik, hogy megtörténhet, hogy milyen idő. A program lehet létrehozni bármilyen végrehajtási környezetet?
Az első szakaszban - amely módosítja a forráskódját előtt összeállítása szerint elpárologtató parancsokat tartalmazza a programban. Összhangban a csapatok végre az egyszerű szöveges helyettesítést. A második - a tényleges fordító, amely feldolgozza a forráskódot, és átalakítja azt kód assembly nyelven. Harmadik szakasz - szerelő generáló tárgykód. És végül, a negyedik szakaszban - a kapcsoló, amely összegyűjti a futtatható fájlt a tárgykód fájlok.
Az eredeti program elkészítésre SI szöveges fájl, a feldolgozás halad 3 szakaszból áll:
1) konvertáló előfeldolgozó a szöveg;
3) egy elrendezés (vagy összeszerelés szerkesztés hivatkozások).
Java programok lefordítják bytecode által végrehajtott Java virtuális gép (JVM) - egy program, amely feldolgozza a byte-kódot, és továbbítja utasításokat a hardver, mint tolmács. Sugárzott a byte-kód végrehajtásának sebességét növeli és csökkenti a méretét a Java programokat.
Az előnye ennek a módszernek a műsorterjesztés - a teljes függetlenségét bájtkódot az operációs rendszer és a hardver, amely lehetővé teszi a Java-alapú alkalmazások bármilyen eszköz, amely áll egy megfelelő virtuális gép. Egy másik fontos jellemzője a Java technológia rugalmas biztonsági rendszer annak a ténynek köszönhető, hogy a végrehajtás a program teljes mértékben szabályozható a virtuális gépet. Bármilyen művelet, amely hatáskört meghaladja a meghatározott program (például egy illetéktelen hozzáférési kísérleteket az adatokat, vagy kapcsolatban áll egy másik számítógépen) okoznak azonnali megszakítást.
Gyakran az a hátránya, a virtuális gép koncepció között az a tény, hogy a végrehajtás a bytecode virtuális gép teljesítménye csökkenthető programok és algoritmusok Java. Ez az állítás igaz volt az első változatban a Java virtuális gép, de az utóbbi években már szinte elvesztette relevanciáját. Ezt segíti elő számos fejlesztést:
§ alkalmazása műsorszórási technológia bytecode gépi kódra futási időben programot (JIT-technológia) tárolja változat egy osztály gépi kód,
§ széles körben alkalmazza a platform-orientált kódot (natív-kód) a standard könyvtár,
§ hardveres gyorsított feldolgozó bytecode (például Jazelle technológia által támogatott néhány cég ARM processzor).