Programování v assembleru

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Programování v assembleru
« kdy: 25. 07. 2013, 13:44:44 »
Ahoj,

chtel bych se naucit programovat v assembleru a co nejlepe pochopit "jak to vlastne funguje". Nasel by se nekdo, kdo by byl ochoten treba online pomoci, natuknout, nasmerovat, pripadne doporicili byste nejake dobre zdroje ktere je mozne pouzit?
Online materialu je vsude ranec, nicmene nenasel jsem zadny, ktery by mi vyhovoval a pomohl v zacatku. Ocenil bych klidne nekoho z Prahy nebo okoli, kdo by byl ochoten se sejit na par hodin a intenzivne ukazal, vysvetlil predvedl v praxi. Jsem ochoten i zaplatit, ale nehledam nekoho kdo dal dohromady nejaky stredoskolsky projekt a dal se tim nezabyva. Spise nekoho, kdo by byl schopen vysvetlit nuance v praxi mezi jednotlivyma architekturama, strojovym kodovanim na UNIX, unix-like i windows, vyhody nevyhody, pouziti v praxi etc.

Diky predem
« Poslední změna: 02. 08. 2013, 23:43:51 od Petr Krčmář »


punkatux

Re:Programovani v assembleru
« Odpověď #1 kdy: 25. 07. 2013, 14:43:03 »
Ahoj, z Prahy nejsem, ani z okoli, moc casu neni, ale online bych pomoci mohl. Jde ti o programovani x86 architektury? Na to moc odbornik nejsem, programuju procesory AVR a AVR32, ale osobne si myslim, ze principy programovani v ASM se daji naucit na jakemkoliv procesoru. Ono to spise chce pochopit procesor jako takovy, neni to moc o uceni se jazyka, jako spis veci okolo. Jak uz jsi tu lehce nadhodil ednianita, prostredi operacniho systemu, reprezentace dat v pameti atd... Mas treba zkusenosti s jinym jazykem? Treba C? Dost jsem se naucil divanim se na zkompilovany kod, ale take si pamatuju, ze nez jsem se naucil na co se presne divat, kod generovany kompilatorem byl pro mne dost nepruhledny. Az dnes vim proc to dela tak, jak to dela.

RDa

  • *****
  • 2 789
    • Zobrazit profil
    • E-mail
Re:Programovani v assembleru
« Odpověď #2 kdy: 25. 07. 2013, 14:44:40 »
A co je tvym cilem? K programovani v assembleru se musis naucit instrukcni sadu dane architektury - tak bys mel aspon uvest co te zajima. Zda jsou to bezne programy na 8bit mikrokontrolerech, nebo na druhe strane 64bit cpu, kde potrebujes assemblerem vyuzit MMX/SSE.

IDDQD

Re:Programovani v assembleru
« Odpověď #3 kdy: 25. 07. 2013, 14:47:57 »
Milý hochu ;D, než se zeptám, tak se kouknu a něco se dozvím, není assembler jako assembler. (Blba kárající smajlík!)

Jen pro PC je několik dialektů assembleru
https://en.wikipedia.org/wiki/X86_assembly_language
Intel a Motorola kupříkladu, pak pro různé režimy cpu, pro různá prostředí a architektury.
http://en.wikipedia.org/wiki/Comparison_of_assemblers

Jestli chceš psát kusy kódu propojené s C v GCC nebo Visual C se rozhodni jako první.

Vození dementa pěkně za ručičku je jen pro otrlé povahy.
Tak si o tom něco přečti, abys dokázal, že máš vůli, že to, že ti někdo bude věnovat svůj čas, za to stojí a že se na to po týdnu nevysereš a pak se ozvi znovu.

Po nějakém tutoriálu můžeš začít tady:
http://www.root.cz/clanky/programujeme-assembler-linux/

and

Re:Programovani v assembleru
« Odpověď #4 kdy: 25. 07. 2013, 15:06:02 »
Kdyz se vratim me mysli do do doby pred 25ti lety, tak bych z dnesniho pohledu doporucil:

http://mts.speccy.cz/doc/bity_do_bytu.pdf
a nejaky simulator z80.

Na pochopeni zakladnich veci idealni. Na dalsi procesory pak uz bude stacit uz jen precteni jejich dokumentace.


3ugeene

Re:Programovani v assembleru
« Odpověď #5 kdy: 25. 07. 2013, 15:07:18 »
abys zjistil, jak to vlastně funguje, potřebuješ mnohem širší okruh znalostí - převážně pak z oblasti hardware a architektury počítačů vůbec

IDDQD

Re:Programovani v assembleru
« Odpověď #6 kdy: 25. 07. 2013, 15:07:30 »
Na dalsi procesory pak uz bude stacit uz jen precteni jejich dokumentace.

CHA CHA CHA CHA CHA CHA CHA CHA!

and

Re:Programovani v assembleru
« Odpověď #7 kdy: 25. 07. 2013, 15:19:55 »
Na dalsi procesory pak uz bude stacit uz jen precteni jejich dokumentace.

CHA CHA CHA CHA CHA CHA CHA CHA!

Jsem rad, ze jsem te pobavil  :o :o  ;)

IDDQD

Re:Programovani v assembleru
« Odpověď #8 kdy: 25. 07. 2013, 15:26:07 »
Jsem rad, ze jsem te pobavil  :o :o  ;)

Jo, fakt že pobavil, lepší než Bolek Polívka a jeho estrády.

and

Re:Programovani v assembleru
« Odpověď #9 kdy: 25. 07. 2013, 15:32:56 »
Jsem rad, ze jsem te pobavil  :o :o  ;)

Jo, fakt že pobavil, lepší než Bolek Polívka a jeho estrády.
Muj posledni prispevek v tomto threadu ;-)

Neznam te, ale tvuj projev vesti jen to, jak moc si o sobe myslis. Spoluprace s tebou asi taky nebude prochazka ruzovym parkem. No hezke spocinuti v nevedomosti, ze cesta je cil a mnoho uspechu jak v praci, tak pri sledovani televize.

IDDQD

Re:Programovani v assembleru
« Odpověď #10 kdy: 25. 07. 2013, 15:51:15 »
Mňo, četl jsem dokumentaci k cca 40-ti různým procesorům a rozhodně si netroufnu říct, že bych zvládl programovat pro víc než jednu architekturu a režim. Pravda, už sem raději nepiš, dokud o tom nebudeš vědět víc. Že Zilog Z80 je dobrý na učení, no možná, proč ne, existují pro něj free simulátory, o ortogonalitě jeho instrukční sady nelze moc mluvit, býval oblíbený. Ale že potom, co se naučíš programovat pro Z80, budeš umět programovat i pro x64 jen po prostudování dokumentace je blábol hodný masitého idota.

Uznávám, že po prostudování instrukční sady budeš sice umět napsat INC EAX; Možná přijdeš i na to, proč je to rychlejší než ADD EAX,1; ale tím to tak skončí. No idiotovi nemá smysl vysvětlovat, že program dávno neběží v paměti sám, že musí volat nějaká přerušení, pokud chce víc než jen sčítat a odčítat, že to jsou přerušení BIOSu a OS, atd, atd, atd, což se rozhodně na Z80 nenaučí. Ale tím se netrap, to tu píšu pro chytřejší.

Mirek

Re:Programovani v assembleru
« Odpověď #11 kdy: 25. 07. 2013, 15:55:24 »
Ahoj,

chtel bych se naucit programovat v assembleru a co nejlepe pochopit "jak to vlastne funguje". Nasel by se nekdo, kdo by byl ochoten treba online pomoci, natuknout, nasmerovat, pripadne doporicili byste nejake dobre zdroje ktere je mozne pouzit?
...
Spise nekoho, kdo by byl schopen vysvetlit nuance v praxi mezi jednotlivyma architekturama, strojovym kodovanim na UNIX, unix-like i windows, vyhody nevyhody, pouziti v praxi etc.

Co v oblasti programování už ovládáš a kam se s assemblerem chceš dostat? To co uvádíš je hodně široký záběr. Zajímá tě čistě jen programování v assembleru a nebo i jeho kombinování s kódem napsaným v jiných jazycích? Zmiňuješ Unix, Window, ... - znamená to, že chceš ovládat assembler pro tato prostředí? Co v něm chceš programovat?

Z mé vlastní zkušenosti bych začal základy na nějakém velmi jednoduchém procesoru - klidně 8 bit a něco hodně rozšířeného ať snadno dostaneš radu v případě problémů - třeba Intel 8051, Atmel AVR, a nebo PIC jestli tě zajímá RISC. Tam pochopit základy a důležité návyky a potom jít dál do prostředí OS a třeba i 64bitů...

Těch jednočipů se nemusíš bát, existuje na ně dost relativně levných vývojových kitů, takže nemusíš řešit nějaké zásadní otázku kolem HW.

Mirek

Re:Programovani v assembleru
« Odpověď #12 kdy: 25. 07. 2013, 15:58:23 »
Plus ještě existují samozřejmě i SW simulátory, které jsou do určité úrovně řešených problémů bez problémů použitelné.

IDDQD

Re:Programovani v assembleru
« Odpověď #13 kdy: 25. 07. 2013, 16:04:01 »
třeba Intel 8051, Atmel AVR, a nebo PIC jestli tě zajímá RISC.

Jojo, na naučení fajn, třeba Arduino je na hraní za pár kaček, navíc se s tím dají realizovat i poměrně pěkný věci.
Jen je to šikovnější spíš pro nějakého začínajícího elektronika, protože se bude muset naučit i něco o tom, co to je proud, jaké je maximální proudové zatížení vstupu atd.

IDDQD

Re:Programovani v assembleru
« Odpověď #14 kdy: 25. 07. 2013, 16:05:54 »
*výstupu