Assembly programozás tanulása

Assembly programozás tanulása

Hozzászólások

Assembly megismerését szerintetek, hogyan érdemes elkezdeni?
Linux környezetben nasm-el, vagy commodore64 emulátorban. Ez utóbbihoz van néhány régi jól érthető könyvem. Nasm-hoz eddig nem találtam olyan leírást, amit egy kezdő megértene.
A C64 már jó régi, de számomra jól átlátható. Érdemes foglalkozni vele, vagy már annyira régi, hogy jobb eleve pc-n kezdeni, mert itt úgyis minden egészen más ??

Hi!

Szerintem a legjobb PC-n DOS alatt kezdeni. Van egy jo leiras, amit itt talalsz:
http://thot.banki.hu/doksi/prog/asmart/index.html
Sokan azt mondjak, hogy nem egeszen atlathato, de szerintem az. Olvasd egeszseggel.

TBS::Antiemes

>Assembly megismerését szerintetek, hogyan érdemes
>elkezdeni?

Nem vagyok nagy asm-es, de szerintem annak az
architekturanak a megismeresevel kene kezdeni, amit
aztan asm-ben akarsz programozni. Ez nagyon alapveto
kovetelmeny. (legalabbis nalam bevalt)

>Nasm-hoz eddig nem találtam olyan leírást, amit egy >kezdő megértene.

Szerintem ha jol ismered az adott architekturat (pl.
x86-ot), utana mar ertheto lesz az nasm-hez adott leiras is.

Mellesleg nasm szintaktikajat csak ajanlani tudom,
szerintem jol atgondolt, vilagos. Persze ez csak az en
velemenyem.

csak nekem tűnik furcsának, hogy mindenki dos-t akar tetetni szegény asm neofita gépére? vagy a dos prédiákció nem számít hittérítésnek a hupon?
szerintem nyugodtan ragadd meg a programming from ground up c könyvet (fentebb írtam honnan) és vágj neki (gas+linux).

[quote:76396dcf3d="wry"]csak nekem tűnik furcsának, hogy mindenki dos-t akar tetetni szegény asm neofita gépére? vagy a dos prédiákció nem számít hittérítésnek a hupon?
szerintem nyugodtan ragadd meg a programming from ground up c könyvet (fentebb írtam honnan) és vágj neki (gas+linux).

Szerintem ha a dos nem is unix, de mint real-time rendszer nem volt
rossz. Azt szoktam mondani, hogy az MS utolsó jó teméke a 6.22-es
dos volt. Továbbá: mivel az emberek elég jól leszoktak az asm
programozásról, sokkal több régi anyag van, mint új. Ezért könnyebb
olyan példákat találni, amelyek dos-os környezetben futottak (az én
példáim is ezért dos-osak). Ha a tanulást mások kódjainak
tanulmányozásával kezdjük (ez szerintem egy logikus 0. lépés), akkor nem lehet kivédeni azt, hogy dos környezetben futó assembly
programokat nézegessünk. Segítség ezenkívül, hogy mivel a dos nem
multitaszkos, nem kell elmélyedni olyan nehéz témákban, mint a
processzor vezérlőregisztereinek programozása.

Abban viszont teljesen egyetértek, hogy tanulni igazán így lehet:
Itt a feleadat, oldd meg!

Üdv: meditor

sok könyvet és doksit átnéztem már és szerintem erről az oldalról:
http://asm.sourceforge.net/resources.html#docs
a pc assembly language és a programming from ground up könyvek a leghasznosabbak, valamint később az IA-32Instructions.pdf az intel oldaláról.
az intel syntax értelmesebb(nek tűnik), de fontos, hogy az at&t is menjen, ugyanis mivel a gnu progik java azt használja ennek sűrűbben fogod hasznát venni (pl objdumpoláskor vagy gdb disass esetén).
természetesen mindez linux és ia32 esetén.

Dos alatt kevesebb a mágia, lehet mindent kézzel csinálni, persze a segm:offs címzéstől meg lehet tapétát kaparni, de kezdetben egyszerűbbnek tartom.
Egyezzünk ki egy dosemu-ban :)!

Van egy csomó assembly saját assembly kódom ix86-ra, HC11-re és
M68000-ra. Ha érdekel el tudom küldeni, az ezekben való böngészés
tanulásnak is megfelel.

Ha kell dobj föl egy mailt és küldöm.

Üdv: meditor

[quote:4f0b20ff6e="antiemes"]Hi!

Szerintem a legjobb PC-n DOS alatt kezdeni. Van egy jo leiras, amit itt talalsz:
http://thot.banki.hu/doksi/prog/asmart/index.html
Sokan azt mondjak, hogy nem egeszen atlathato, de szerintem az. Olvasd egeszseggel.

TBS::Antiemes

Üdv!

Ezt még annó én írtam, a helyes cím most már:

sz332 kukac hszk pont bme pont hu

és a prog.hu-n [sic] is fent van a legújabb (kb. 5 éves:))
változat:))

[quote:661b46d28a="Anonymous"]
A C64 már jó régi, de számomra jól átlátható. Érdemes foglalkozni vele, vagy már annyira régi, hogy jobb eleve pc-n kezdeni, mert itt úgyis minden egészen más ??

Szia!
Nekem Z80-ról elég nehéz volt az áttérés 8086-ra.
Jobban jársz, ha egyből a 80386-osra koncentrálsz.

Kitettem az ftp-re egy assembly kód-tömeget.

ftp -p meditor.hu
login: public
password: [enter]
cd ./dos_asm
get ./dos_asm.tar.gz

A program egy komplett modemező progi, grafikus felülettel.
Nem hiszem hogy gyakorlati jelentősege van még, viszont
assembly kódokat nézegetni, tanulni belőle biztosan lehet.

Igényelt környezet: i86 + dos

A kód szabad felhasználásához ezennel minden jogot megadok (-::

Ps.: Hány ilyet írtam a sok év során, te jó ég! Ma már nem lenne
hozzá türelmem. De az akkori erőforráshiányos világban ezek
fontos dolgok voltak. Vagy legalábbis azt hittem.

Dos-t tudnám javasolni, vagy a borlandos turbo asm-mel, vagy masm-mal, könyvnek meg Peter Norton-tól a "Az IBM PC programozása assembly nyelven" címűt (assembly mint nyelv, proci, lépésről-lépésre példák), plusz szintén Nortontól a "Az IBM PC programozása" címűt (nem ugyanaz,mint az előző! dos és bios megszakítások listája) valamint Abonyi Zsolttól a "PC hardver kézikönyv"-et (a vas, néminemű bios, egy kevés dos).
Ja, és ne keseredj el, ha egy képenyőnyinél hosszabb assembly példaprogramot nem látsz át elsőre, az assembly is a write-only nyelvek halmazába tartozik :) !!!

Nekem az Agardy Gabor fele Gyakorlati Assembly is bejott. Persze, ha megelegszel a DOSsal es a 8086-os utasitaskeszlettel.

[quote:7eeffe5094="gsimon"]Dos-t tudnám javasolni, vagy a borlandos turbo asm-mel, vagy masm-mal, könyvnek meg Peter Norton-tól a "Az IBM PC programozása assembly nyelven" címűt (assembly mint nyelv, proci, lépésről-lépésre példák), plusz szintén Nortontól a "Az IBM PC programozása" címűt (nem ugyanaz,mint az előző! dos és bios megszakítások listája) valamint Abonyi Zsolttól a "PC hardver kézikönyv"-et (a vas, néminemű bios, egy kevés dos).
Ja, és ne keseredj el, ha egy képenyőnyinél hosszabb assembly példaprogramot nem látsz át elsőre, az assembly is a write-only nyelvek halmazába tartozik :) !!!

Az általam kirakott anyaghoz csatoltam a borland tasm és tlink
programját is.

Inotai Lászlónak van egy háromkötetes könyve, föleg a dos és
az assembly programozással foglalkozik. A címe most nem ugrik
be, de szép citromsárga a borítója.

A Peter Norton könyv is jó!

Ezen kívül Pető Ádámnak is van témába vága könyve, főleg
a BIOS-sal kapcsolatban.

Van egy 3 kötetes DOS referenciakönyv (asszem a 3.3-ról),
ez is nagyon jó!

Külön könyv jelent meg a 386-os prociról, vékonyka, igaz, csak
a 386-os specialitásokkal foglalkozik. Egy nő írta, nem ugrik
be a neve.

[quote:d3b7c6a5d5="Anonymous"]Assembly megismerését szerintetek, hogyan érdemes elkezdeni?
Linux környezetben nasm-el, vagy commodore64 emulátorban. Ez utóbbihoz van néhány régi jól érthető könyvem. Nasm-hoz eddig nem találtam olyan leírást, amit egy kezdő megértene.
A C64 már jó régi, de számomra jól átlátható. Érdemes foglalkozni vele, vagy már annyira régi, hogy jobb eleve pc-n kezdeni, mert itt úgyis minden egészen más ??

Udv.

Esetleg nezd meg ezt az oldalt: http://www.linuxassembly.org/

Udv
-krix-

[quote:507050796f="meditor"]Külön könyv jelent meg a 386-os prociról, vékonyka, igaz, csak
a 386-os specialitásokkal foglalkozik. Egy nő írta, nem ugrik
be a neve.

Kovács Magda. Az illető az LSI kiadó igazgatónője volt akkortájt, úgyhogy én csak annyit mernék mondani, hogy az ő neve alatt jelent meg a könyv. Egyébként kétkötetes volt ha jól emlékszem. Az irodalomjegyzékben úgy kb. 5-6. helyen szerepelt egy könyv:
Ross P. Nelson: 386/486 Programming
Na a fenti KM-féle könyv ennek a _tükörfordítása_, csak a fejezetek vannak más sorrendben és pár hiba csúszott be a fordítás során (pl. a 'ret' a leírásuk szerint ' pop ip, pop sp', a page table entry az 'laptábla bemenet' meg pár hasonló nyalánkság), de az eredetijét tudom ajánlani :).