Összeszerelési nyelv: Hogyan lehet megtanulni az összeszerelés kódolását ma

Közzététel: Támogatása segít fenntartani a webhely működését! Az ezen az oldalon javasolt szolgáltatások némelyikén referenciadíjat keresünk.


Az összeszerelési nyelv egy rendkívül alacsony szintű programozási nyelv, amelynek 1: 1 megfelelése van a gépi kóddal – olyan bináris utasítások sorozata, amelyek az értékeket a CPU (vagy más mikroprocesszor) nyilvántartásaiba és azokból eltávolítják..

Bevezetés

A mikroprocesszor egy mechanikus számológép. Számos elnevezett regiszter rendelkezik, amelyek olyanok, mint a tollak tárolása a számokhoz. Gépi kód formájában kap utasításokat, amelyeket bináris bit sorozat képvisel (1s és 0s). Például itt van egy sor gépi kód:

10110000 01100001

Az első néhány bit (10110) egy utasítás, hogy egy értéket egy regiszterbe másoljon. A következő három számjegy (000) azt a nyilvántartást jelöli, amelybe az értéket másolja. A fennmaradó rész (01100001) az az érték, amelyet lemásolni kell.

A 10110 természetesen értelmetlen, és a számítógép nem „tudja”, hogy azt jelenti: „az érték másolása”. A processzort úgy tervezték, hogy a 10110 által képviselt elektromos impulzusok sorozata (on-off-on-on-off) a kívánt eredményt adja. Ez része annak, amit a „mechanikus” alatt értünk.

Most, ha programozni fog a processzort a végrehajtáshoz, elképzelheti, hogy az 1-es és a 0-os sorok ezreinek írása unalmas és hibás. A megoldás a szerelési nyelv. Az összeszerelési nyelv az ember számára érthető helyettesítéseket biztosít a bináris kód hosszú karakterláncainak.

Példa

Például, ha a 10110 azt jelenti, hogy „mozgatja az értéket”, akkor rövidíthetjük a MOV paranccsal.

Azt is megadhatnánk a 000 regiszter számára, hogy könnyebben megjegyezhető név legyen (ebben az esetben a regiszter neve AL).

Végül az értéket más számozási rendszerben is megjeleníthetjük, például tizedes (91) vagy hexidimális (61). Ez a sor akkor a MOV AL, 61 lenne. Miután egy egész program így meg lett írva, az összeszerelő könnyen lefordíthat minden sort a megfelelő bináris ábrázolásba.

A számítógépek működnek (számításokat végeznek, adatokat mozgatnak, adatokat átalakítanak), ezeknek az apró utasításoknak milliárd másodpercenkénti feldolgozásával.

Nagyon egyszerű utasítások (áthelyezni ezt az értéket, átmásolni, hozzáadni ezt a két értéket, és ott megmenteni az értéket) összekapcsolva olyan összetett műveleteket képezhetnek, amelyek magasabb és magasabb szinteken egyesítik azokat a dolgokat, amelyeket valójában lényegesnek tartanak..

Közgyűlés nyelvi forrásai

Online források

Oktatóanyagok és alapvető útmutatók

  • Szerelési programozási oktatóprogram az oktató pontról

  • X86 Assembly Language Programming, a FreeBSD Developers Handbook fejezete, amely segít az összeszerelési nyelv írását az operációs rendszer fejlesztésének összefüggésében helyezni.

  • Mondj üdvözlet az X64 Assembly-hez, amely egy meglehetősen szelíd bevezetés az összeszereléshez, a Code as Art blogból

  • X86 Assembly Language Programming, egy másik oktatóprogram, amely jól illeszti az összeszerelési nyelvet az operációs rendszer programozási környezetébe, ez hivatkozás a Linuxra, a Windowsra, sőt egy kicsit a Mac OS X-re

  • PC Assembly Language, ez a 32 bites PC-kre összpontosít, amelyek Linuxot, Windowsot vagy FreeBSD-t futtatnak

  • X86 szerelési útmutató, a Virginiai Egyetem Számítástudományi Tanszékéből

  • Webster: magának a számlálásnak az a helyét az interneten szereti, ahol a közgyűlés nyelve megtanulható. ”Ezt a webhelyet (látszólag) a The Art of Assembly Language szerzője és a HLA feltalálója üzemelteti.

  • Linux összeszerelési útmutató

  • Easy X86-64

  • X86 összeszerelés

  • Windows összeszerelési programozási útmutató (pdf)

Video oktatóanyagok

  • Az összeszerelési nyelv programozási útmutatója, egy nagyon alapos 55 videósorozat az összeszerelésről, Kip Irvine könyve Az összeállítás nyelve az x86 processzorokhoz (6. kiadás) után (ha nem követed a videókat, akkor valószínűleg a legfrissebb kiadást szeretnéd)

  • Az Assembly Language Programming videó tanfolyam, egy 70 részes video sorozat, Arthur Griffith tanítja, aki nagyon népbűvös

  • A Assembly Language Intro osztálytermi előadása a Cornellnél, amely bemutatja az összeállítási nyelvet

  • Összeállítás nyelvi programozása, egy órás bevezetés az összeszerelésbe, és nagyszerű formátum, ha igazán tetszett az algebrai példák követése egy fejpéldányon, amikor középiskolás voltál (ez egy nagyobb mikroprocesszorok és mikrovezérlők sorozatának része).

Referencia

  • X86 utasítások listája, az x86 architektúrákhoz tartozó összes utasítás teljes listája, megjegyzésekkel az egyes hozzáadásakor

  • X86 opód és utasítás

  • Intel X86 Assembly Language Cheat Sheet (pdf).

Eszközök

Összeszerelők – nagyon sok összeszerelő elérhető – itt van néhány a legnépszerűbb ingyenes és nyílt forráskódú összeszerelők közül:

  • NASM

  • FASM

  • YASM

  • GASM.

IDE-k (integrált fejlesztési környezetek):

  • SASM, egyszerű crossplatform IDE NASM, MASM, GAS, FASM összeszerelési nyelvekhez

  • Friss IDE, vizuális összeszerelési nyelvű IDE beépített FASM összeszerelővel

  • WinAsm Studio, egy ingyenes IDE, amely 32 bites Windows és 16 bites DOS programok fejlesztésére szolgál az Assembler segítségével

  • Visual MASM.

Közösségi és folyamatos tanulás

  • Közgyűlési fórum a Dream.In.Code oldalán

  • A MASM fórum

  • Szerelési nyelv és gépi kód a Hack fórumokon

Könyvek

  • Az Art Assembly of Language (online kiadás) az egyik legnépszerűbb könyv az összeszerelési nyelvről, a mindig olvasható No Starch Press kiadványból; ezek ugyanabból a szerzőből is érdeklődhetnek: Írja be a nagy kódot: 1. kötet: A gép megértése és a nagy kód írása, 2. kötet: Alacsony szintű gondolkodás, magas szintű írás

  • Az összeszerelési nyelv lépésről lépésre: Programozás Linux alatt

  • Professzionális összeszerelési nyelv

  • Összeszerelési nyelv az x86 processzorokhoz

  • Modern X86 összeszerelési nyelv programozás: 32-bites, 64-bites, SSE és AVX

  • bevezetés a 64 bites összeszerelési programozáshoz Linux és OS X esetén: Harmadik kiadás – Linux és OS X esetén

  • Bevezetés a 80X86 összeszerelési nyelvéhez és a számítógépes architektúrához

  • Összeszerelési nyelv programozása: PC-khez és laptopokhoz.

Ha elsajátítja az összeszerelési nyelvet?

Az, hogy megtanulja-e az összeszerelési nyelvet, attól függ, hogy mi a célja. A legtöbb fejlesztő esetében a válasz nem.

Két elsődleges ok van a szerelési nyelv megtanulására: azért, mert közvetlenül használni akarjuk, vagy azért, mert alapvető szinten akarjuk megérteni a számítógépeket.

Gyakorlati szempontból a világ mérnökei és számítógépes tudósai közül csak viszonylag kevés ténylegesen használják az összeszerelési nyelvet.

A szoftverfejlesztés túlnyomó többsége, beleértve a gyakorlatilag bármilyen alkalmazásfejlesztést is, magas szintű programozási nyelveket használ, és nem az összeszerelési kódot. Néhány speciális terület, ahol az összeszerelési nyelv használatos:

  • Operációs rendszer

  • Firmware

  • Eszközmeghajtók

  • Nyelvtervezés

  • A fordító tervezése

  • Beágyazott rendszerek

  • Hardver tervezés

  • Fejlett kriptográfia

  • Elméleti informatika

Az összeszerelési nyelv megtanulásának másik oka az, hogy jobban megértsük, mi történik valójában egy számítógép belsejében. (Ez az oka annak, hogy gyakorlatilag minden számítástechnikai nagyvállalatnak meg kell tanulnia a szerelési nyelvet.)

Természetesen, ha olyan ember vagy, akit ez igazán érdekel, érdemes gondolkodni egy alacsony szintű rendszerek fejlesztésében dolgozó karriertől..

Egyéb dolgok

Vannak olyan nyelvek, ahol ha csak egy keveset tudsz, akkor sokat tehetsz. A Python és a Ruby ilyenek – annyit tanulhat egy hétvégén, hogy valami érdekeset elkészítsen. A közgyűlés nyelve nem ilyen.

Az összeszerelési nyelvet soha nem használják vákuumban. Az a mérnök típus, akinek tudnia kell az összeszerelést, valószínűleg azon a területen dolgozik, ahol a hatékonyság érdekében maroknyi más készség ismerete szükséges. Ezek valószínűleg a következők:

  • Hardvernyelvek, például a VHDL és a Verilog, valamint a mikroprocesszorok és az elektrotechnika jó megértése

  • Alacsony szintű operációs rendszerek nyelvei, például C és származékai: C ++, C # és D

  • Örökölt nyelvek, például Fortran és Cobol

  • Platform nyelvek, például a Java és az Objective-C

  • algoritmusok

  • Fordító, tolmács és nyelvtervezés.

További olvasmányok és források

Sokkal több információ van az ilyen fajta dolgokról, Programozás: Nyelvek, Idővonal & útmutatók.

Milyen kódot kell megtanulnia?

Zavaros abban, hogy milyen programozási nyelvet kell megtanulnia a kódoláshoz? Nézze meg az Infographic című cikket, Milyen kódot kell megtanulnia?

Nemcsak a nyelvek különféle aspektusait tárgyalja, hanem olyan fontos kérdéseket is megválaszol, mint például: “Mennyit fogok pénzt keresni a Java megélhetéséhez?”

Milyen kódot kell megtanulnia?
Milyen kódot kell megtanulnia?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map