Az az igazság, hogy eddig nem sok magyar nyelvű assembly tutorialt láttam, ami igazán használható lett volna, ezért elhatároztam, hogy én is irok egyet, amit megpróbálok a lehető legérthetőbben elkövetni !

IRC-en már több olyan emberrel beszélgettem, akik csak azért nem tudnak assemblyben programozni, mert hiányosak az ismereteik. Számukra készült ez a cikk . A cikk nem a hagyományos elvet követi, azaz nem irok le mindent részletesen, hanem csak annyit, amennyi a megértéshez feltétlenül szükséges, s ahogy haladunk, úgy közlök egyre több info-t, mert tudom, hogy nagyon unalmas, ha folyamatosan kell egy kevésbé érdekes részt olvasni. E cikk azt a célt tűzte, hogy egy általános tudást biztosítson az assembly programozással kapcsolatban, aki ezt a sorozatot végigolvassa, s megoldja a feladatokat, az egy demót is írhat már, esetleg valamilyen kereskedelmi programot! De nem túl bonyolult az assembly programozás ?

Első hallásra talán annak tűnik, de gyakorlatilag NEM, mert a géped teljesítményét 'teljesen' ki tudod használni, és a sok magas szintű programnyelvnek általában nagyon sok kötöttsége van. Azért javasolom, hogy mindenki tanuljon meg legalább egy magasszintű nyelvet a doksi olvasása előtt, (Pascal-t, C-t) mert így talán egy kicsit érthetőbb lesz. Sokan arra is panaszkodnak, hogy milyen bonyolult egy file- kezelés megoldása is. Szerintem egyáltalán nem, és úgyis csak egyszer kell megírni. Ráadásul assemblyben nincsenek azok a változónak nevezett szörnyűségek sem, tehát nem kell ilyenekkel szívni, hogy :
- Most miért nem olvas ebből a fileból, és miért nem tud seekelni, és miért nem ugrik a file elejére...
- Na, akkor beolvasom ezt a byteot... De nekem char kell.. akkor konvertáljunk... De miért nem megy ? :)
- Hova került ez a változó? Ja, hogy a fordító leoptimalizálta.
Kösz... [Akik pascalban tanulnak]

Hehe... És egy csomó dolog megoldásához ígyis kell az asm, merthát a magasszintű nyelvek nem a sebességükről híresek. Többen reklamáltak, hogy kevés a gyakorlati rész. Ezek kedvéért külön feladatokat és megoldásokat csináltam, mely a doit.txt-ben vannak.

Az assembly programozásnak két hátránya van: nem lesz platformfüggetlen a program, és a RISC-es procikon már nem lesz értelme assemblyben programozni, mert kb. 60 regisztere van egy normális RISC-es procinak, amire egy C fordító sokkal jobban optimalizál. Azért nem kell megijedni, mert a PC-k nem mostanában fognak kihalni.

A doksi és a cikk megnevezés elég gyakran keveredik, mivel egy cikknek indult, akkor volt kb. 30kb, de most már egy kicsivel nagyobb :)

A doksiban elég sok olyan részt találsz, ami nincs befejezve. Nem kell csodálkozni, mert amint már írtam, a doksi állandóan fejlődik, és amikor sikerül bejutnom inetezni, akkor az éppen aktuális/legújabb asmart-ot küldözgetem nektek...

A félreértések elkerülése végett:
1, Ez nem lexikon, úgyhogy nem találsz meg benne mindent
2, Nem HARDWARE kézikönyv, úgyhogy ha valamilyen hardwares rész jobban érdekel, akkor [de utálom ezt a mondatot] "A megfelelő könyvek már rendelkezésre állnak magyar nyelven ... ":)

Gondolom, sokan nem tudtátok, hogy például a RECOGNITA magyar fejlesztésű karakterfelismerő programot is full assembly-ben írták! Tehát nem kell megijedni attól, hogy általában csak kis rutinokat irogatnak az emberek asm-ban, lehet egész programokat is!

Mi is az assembly nyelv?

Az assembly egy alacsony szintű programozási nyelv, amiben közvetlen utasításokat adsz a processzornak, így nagyon kicsi és nagyon gyors programokat lehet írni.
Mi kell az elsajátításhoz?
Az assembly nyelv elsajátításához nem árt egy assembler és egy linker. Mivel manapság mindenki FREE lázban ég, ezért az eredeti leiráson egy "kicsit" módosítottam, így most már egy GNU fordítót, a NASM-ot tekintem az alapnak. Egy valamire nagyon kell figyelni: a nasm "case sensitive", azaz figyelj a kis és nagybetükre!

A doksi alján megtalálhatod azokat az INET címeket, ahonnan az ingyenes programokat le lehet tölteni.