Melyik asm?

'Napot! Szeretnék assemblyzni (valamiért egyre nélkülönezhetettlenebbnek tünik).
Nos, linux alatt szeretnék. Halottam, hogy van nasm, masm, meg sok más asm. Ti melyiket ajánlanátok?
(Szempont: sok jo szájbarágos tutor van hozzá a neten, meg van linuxon is)
Előre is köszönöm :)
Meg anno igy minden info nélkül nem sikerült jo tutort találnom a neten :(
Azért is kéne mert jo lenne amugy is beleásnom magamat egy csöppet,hogy mi hogy müködik a felszin alatt.

Jo tudom, gugli a barátom. De szeretnék huppos tanácsot :D
Igen, tudom hogy nem tudok irno/fogalmazni, a helyesirással köszönő viszonyban se vagyok stbstb. szoval nyelvtan csicskák inkább ne szoljanak be :P

Hozzászólások

nasm-mal jatszogattam regebben, az teljesen jonak tunt. egyszeruen osszerakhato belole futtathato allomany is, egy modul irasa pedig meg egyszerubb, mintha a csak a regi szep idokben 386-oson assemblyznenk, dos alatt, kb ;)
pl:

add.asm (ezt hivjuk):


section .text
global  myadd
myadd:
        push    ebp
        mov     ebp,esp
        mov     eax,[ebp+8]
        add     eax,[ebp+12]
        pop     ebp
        ret

add.c (ez hivja):


#include <stdio.h>

int myadd(int x,int y);

int main()
{
 fprintf(stdout,"myadd()=%d\n",myadd(42,137));
 return(0);
}

Makefile (forditas):


SHELL=/bin/sh
AS=nasm
AFLAGS=-f elf
CC=gcc 
CFLAGS=-Wall -pedantic -ansi -O3
LD=ld

all: add

.PHONY: all clean

add.o: add.asm
        $(AS) $(AFLAGS) -o add.o add.asm

add: add.c add.o
        $(CC) $(CFLAGS) -o add add.c add.o

clean:
        rm -f *.o add

nasm/yasm eleg olvashato (Intel stilusu).
GNU as , ezt tolja ki a gcc es hasonlot eszik, a binutils resze, AT&T stilusu.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

+1

egyébként intel32 esetén javallt olvasni/megcsinálni, hogy képet kapj a világról:
- K.I.S.S-féle kétoldalas 32bi intel összefoglalót (legális puskaként engedélyezni szoktam)
- a teensy tinyelf átolvasását
- ld és make parancsok man-jait, howtojait, főleg az ld-t. Bőséges példákat guglizz neten!
- szerkeszteni valami template-et, amiben assembly rutinokat hívogathatsz gcc-ből (és fordítva)
- makró assemblerben valami primitív basic-et összedobni (nem is olyan nehéz)
- és valamilyen interpreterben összedobni egy egyszerű, közvetlen binárist létrehozó kétmenetes assembler fordítót, pl. perlben. Nem is olyan nehéz, de beadandókban már nem merem kérni jópár éve. (Igen, és a mai programozó(palántá)knak már nemi életük is van :)
- tanulmányozd a 256byte- és régi 4k intrók forrásait
- less bele a MenuetOS forráskódjába, vagy bármely más kisebb, áttekinthető méretű assemblyben tákolt opergányolós rendszer forrásába
- stb. játssz sokat, amíg teheted, mert jön az asszony, a négybetűs élet, a nyolcnapos munkahét és a child process(ek:)

http://nocirc.org/

Ez a könyv NASM-on és gcc-n alapul, a példák forrásai letölthetőek Linuxra is.

PS.: Nyelvtan csicskák? Nem csak a helyesírással vagy gondban.

Hát persze...C-ül tudok mádzsárul alig...és elolvasni is élvezet lehet. :)

Szóval el kéne dönteni, hogy ez a diszgráfia most betegség-e - mert akkor a C mondatokat sem tudja leírni, nem csak a magyart - avagy nem, mert akkor meg mindkettőt le kell tudnia írni. Ez a baj ezzel a "betegséggel". Mondjuk nekem az is elég, ha bevallja a zsenánt kóder, hogy magyarból kegyelemkettesekkel ment át, mert a csajok csöcse jobban érdekelte, mint a magyar....csak akkor nem kell mentegetőzni, fel kell vállalni a kapanyelet. ;)

a diszgrafia jelenleg inkabb jarvany. legalabbis az elmult 4 evben jelentosen feltunt. koszonet valamelyik politikusnak

de az allitasomat fenntartom: nagyon sok ember kepes kiemelkedo tudasra. lehet, hogy nem tudja kommunikalni, de igenis, tisztelem a tudasukat

---
Egy jól megállapított probléma félig megoldott probléma.
- Charles Kettering

Ha nem tud kommunikálni sem szóban, sem írásban, elárulnád, hogy hogyan derült ki a zsenialitása az illetőnek ? Átható tekintettel és enyhén szomorú arccal ült és ettől olyan értelmiségi lett a lénye ? :D A falusi kocsmákban látni ilyeneket...a baj az, hogy néha megszólalnak.

Hát őszinténszólva a fogalmazás sose volt erősségem, de ez sose gátolt meg abban, hogy c++-t vagy php-t gyakoroljak. (Szeintem nyelvek fogalma disztjunk a programozási nyelvekkel)
De ezért mondtam, amit mondtam a végén, hogy ne ez legyen belőle. Mindenki máskép működik, máskép tud.
Egyébként kösz XD

Először is: Nem disztjunk, hanem diszjunkt, másrészt ez nem igaz. A programozási nyelveknek is van nyelvtana bizony. Most arról ne beszéljünk, hogy más attribúzumaik is közösek - azon kívül, hogy nyelvnek hívjuk őket - és nem mindegy az alaki megjelenése a tartalomnak, amit az adott nyelvben kifejezünk. :)

Jó'vanna ezt is elírtam :)
A lényeg akkor is az, hogy nem szeretem ezt a skatulyázást, hogy (nem tud rendesen anyanyelvül => nem lehet belőle jó programozó)
Másrészt azt se szeretem, ha valaki valakinek olyat mond, hogy "klönyörgök te inkább ne programozz!", mer az ilyenekkel durván belelehet tiporni az emberbe érzelmileg. (etika, ebből legalább van nekem egy alap "ráérzésem")

Megkért mindenkit az elején, akkor most minek kell piszkálni vele?
Én speciel tisztelem érte, hogy tisztában van a hiányosságaival, ezeket felvállalja, s mindezek mellett van benne tudásvágy, tanulni-akarás.
Mi lett volna, ha ugyanígy álltak volna Einstein-hez, aki köztudottan diszlexiás volt...

De Einstein nem is volt programozó :P
Ez most csak egy gúnyos megjegyzés volt. Imho van közös halmaza az emberi és a programozási nyelveknek, érthetően írni / beszélni megtanulni feltétlenül előnyös, de valóban nem feltétel. Csak, ha valaki nem tud beszélni, lehet akármilyen jó coder, ha nincs szerencséje az elhelyezkedéssel, könnyen eltűnhet a süllyesztőben.
--
- Jó estét - zökkent le nehézkesen a tomporára. - Én vagyok a konyhamester ajánlata. Felajánlhatom önöknek a testrészeimet?

Ezt értem, de vegyük azt (példánál maradva), hogy Einstein diszlexiás volt, mégis kitalált, majd _leírt_ egy rakat zseniális elméletet, törvényt. Mindezek után még elő is adta a katedrán (érdekes lehetne, keresni egy archív felvételt, ahol beszél, meghallgatni, hogyan tette). Hozzáteszem, a történelmi írások szerint nagyon erős diszlexiája volt az öregnek.
De mint látjuk, fentebb a kolléga igen érdeklődő, szeretne tanulni, így szerintem ezzel nem lesz gondja, meg fogja tanulni a kommunikáció azon formáját is, amivel el tudja majd adni magát :)

Félre ne érts: nem én mondom, hogy a beszéd / íráskészség nélkül nem érdekel, ki milyen programozó. Én csak azt tapasztaltam, hogy ez világszerte fontos dolog, figyelembe veszik a HR -esek, stb. Miattuk érdemes ezt is megtanulni, nem azért hogy jobb coder legyen valaki. És igen, kitartással kompenzálhatóak a hiányosságok. Illetve behozhatóak is.
Amúgy a topicnyitó helyesírása annyira nem is borzalmas, a mondatai érthetőek... És nem szólna a topic 2/3 része offban a helyesírásról, ha nem hívja fel rá a figyelmet :P
--
- Jó estét - zökkent le nehézkesen a tomporára. - Én vagyok a konyhamester ajánlata. Felajánlhatom önöknek a testrészeimet?

Off:
Csak hogy mindenkinek igaza legyen:
A diszlexia gyarkran jár diszgráfiával is. A diszgráfia egyik tünete lehet, hogy íráskor egy szón belül felcserél betűket az illető. Ez azért elég kínos programozás közben. De ha a diszgráfiásnak nincs ilyen tűnete, egyszerűen csak nagyon rondán ír, akkor máris lehet kíváló programozó.
Még mondja azt valaki, hogy nem a lehetőségek földjén élünk :-)

-----
Innen most töltsünk tiszta vizet a nyílt kártyákba: ...

"A diszgráfia egyik tünete lehet, hogy íráskor egy szón belül felcserél betűket az illető. Ez azért elég kínos programozás közben"

Azt pár éve tudjuk, hogy élő nyelvben a betűcsere nem vagy alig hátráltatja a megértést - programozás közben meg akkor se használjon deklaráció nélküli szimbólumokat zabáló nyelvet az ember, és/vagy ne használjon betűcserével egymással keverhető szimbólumokat, ha éppe nem diszgráf.

Amúgy volt egy német kollégám, aki annyira súlyos eset volt, hogy papírra úgy írt, hogy olykor meg kellett állnia elgondolkodni, hogyan néz ki a következő betű - billentyűzeten viszont perfekt volt.

Még programozás során is előfordulhat, hogy másokkal kell kommunikálnod (csapatban dolgozol, vagy tanácsot kérsz egy fórumon), és az élet nem csak informatikából áll. Ezért nem mindegy, hogy fejezed ki magad. Ahogy beszélsz, írsz, az nagy mértékben formálja a rólad alkotott képet. Hidd el, érdemes ezen a területen is fejlődni.

Sajnos ez mostanában elég általános jelenség. Hallottam egyetemi oktatókat arról panaszkodni, hogy a felvett embereket először meg kell tanítani normálisan írni, olvasni, értelmesen megnyilvánulni.

Amúgy nem szoktam helyesírás miatt kötekedni. Az zavart, hogy Te ezt normálisnak tekinted, sőt lekezelően nyelvtan csicskának nevezed azokat, akik szóvá tennék a hibáidat. Valaki itt fordítva üli meg a lovat.

"Az zavart, hogy Te ezt normálisnak tekinted, sőt lekezelően nyelvtan csicskának nevezed azokat, akik szóvá tennék a hibáidat. "
Ez most nem éppen rád illik. Nyelvtan csicskákkal azokra akartam utalni, akik hibát keresnek a szövegedben majd gúnyosan, rombolójelleggel megjegyzik.

De te épitőjellegűen megszoltad a magyaromat, és még válaszoltál is. :)

Szóval ezt az inget ne vedd magadra.

na most ha asm -ezni akarsz, de azért akarod, hogy a lehetőségekhez mérten könnyű dolgod legyen,akkor masm.

http://www.masm32.com/board/index.php?PHPSESSID=53aecbe211be5de8f74c54b…

Ez pl. egy masm kód:

.if par1 == num
code
code
.elseif par2 == num
code
code
.else
code
code
.endif

Lap kb. felétől is:
http://www.movsd.com/masm.htm
Ez is:
http://kisj.blog.prog.hu/archives/10-MASM.html

Szóval teljesen jó, hogy sok mindent elintéz helyetted, meg tudsz makrókat írni.
Azt mondjuk nem tudom, hogy a masm mennyire támogatja a linuxot.

Ez itt elég off, de: a saját adatoknál tudod követni azokat a témákat, amikhez hozzászóltál. Ha csak olvasod a témát, nem jelenik meg ebben a listában, tehát nem látod, hogy frissült e azóta, hogy utoljára ránéztél. Ezért valamit hozzászólsz a témához, hogy a listán megjelenjen: subscribe...
--
http://www.naszta.hu

Helló!

Szerintem kizárólag fasm. Én kb 1-2 éve váltottam nasm-ról, és azóta kisimultak a ráncaim.
Érvek:
1. SOKKAL jobb makrók
2. képes önmagát lefordítani, ezért jól portolható
3. elérhető Winfos, MacOSX, BSD, Linux és még ki tudja mi minden alatt

http://www.flatassembler.net

Csak kíváncsiság!
Mit írnak még assemblyben x86 -ra. Csak tippelgetni tudok, driverek?

* Én egy indián vagyok. Minden indián hazudik.

Sajnos nagyon kevés dolgot, ezért van az, hogy a fostalicska windows {n} előtt ülő user ugyanolyan gyorsnak érzi a 3,2 GHz-es, 8 Gb RAM-mal szerelt gépét, amiben 500 Gb-os gyors diszk van, mint egy öreg ember, aki win 3.1-et futtat a 386 SX masináján, 20 MHz-es processzoron, 16 Mb RAM-mal és 120 Gb-os merevlemezzel. Ugyanolyan kínosan homokórázik minden szoftver, csak nagyobb tömegtároló igénye van, több RAM-ot eszik, 220.000.000 kódsorral többet tartalmaz a forrsákódja, de mégis gyerekes senezhetőségek vannak benne. Igaz, színesebb, szagosabb és aero a felület.

Félreértés ne essék, én még kézi kódolással is dolgoztam, azaz saját kicsi kezemmel fordítottam az assemblyt gépi kódba (hex). De ezek a "hős idők" elmúltak. Manapság az egychipes cuccokat is C -ben írogatják. Ami pedig a windows hibáit illeti, az assemblernek van benne a legkisebb szerepe. Ráadásul, el nem tudom képzelni, hogyan tudnál optimalizálni, egy multimagos agyon cachelt processzorra. Egy GUI felületű oprendszert évszázadok alatt sem írnának meg, nemhogy néhány év (kilenc anya nem szül egy hónap alatt gyereket).
A szépreményű kollégának pedig inkább javasolnék egy assembly átmeneti kódolású C compilert (a C++ szerintem már túl bonyolult lenne ehhez a gyakorlathoz) - írja meg a programját C -ben majd nézze meg a közbülső assembly kódot - hangolja addig a C forrást amíg az nem kezd arra hasonlítani amit assemblyben kellene írnia. Sokkal tanulságosabb, anno a régebbi C compilerrel így írtam megszakítás kezelő rutint - addig hangoltam, amíg azt nem láttam, hogy a rutin szinte olyan mintha én írtam volna assembly -ben (ez még a 486 -os világban volt).

* Én egy indián vagyok. Minden indián hazudik.