Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: smoofy 25. 07. 2013, 13:44:44

Název: Programování v assembleru
Přispěvatel: smoofy 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
Název: Re:Programovani v assembleru
Přispěvatel: punkatux 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.
Název: Re:Programovani v assembleru
Přispěvatel: RDa 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.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 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/
Název: Re:Programovani v assembleru
Přispěvatel: and 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.
Název: Re:Programovani v assembleru
Přispěvatel: 3ugeene 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
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 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!
Název: Re:Programovani v assembleru
Přispěvatel: and 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  ;)
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 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.
Název: Re:Programovani v assembleru
Přispěvatel: and 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.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 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ší.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 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.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 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é.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 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.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 25. 07. 2013, 16:05:54
*výstupu
Název: Re:Programovani v assembleru
Přispěvatel: smoofy 25. 07. 2013, 16:13:12
Tak delal jsem v Pascalu, Java, Delphi, C, Python at uz ve skole, nebo pak nejaky mirnejsi upravy kodu etc. za programatora se nepovazuju, jde mi spise o co nejlepsi pochopeni principu funkce, zrychlovani programu, zatez software na pamet,cpu a to predevsim na x86 a x64 platforme, nicmene sam casto narazim na nazor, ze je dobre se zacit ucit na jednodussich architekturach, s cimz nemam vubec zadnej problem. Pokud nekdo muze doporucit nejakej sw simulator, se kterym se da hrat a podchytit zaklady bylo by to super.
Zaujal mne predevsim prispevek punkatux, ktery vystihuje moje snazeni v jedine vete:
Citace
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.
Název: Re:Programovani v assembleru
Přispěvatel: gamer 25. 07. 2013, 16:33:58
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.
Programoval jsem v assembleru kde co, Z80, jednočipy, DSP s harwardskou architekturou, x86 a je to všechno na jedno brdo, nastuduješ instrukční sadu a hotovo.

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ší.
Hele když už píšeš o přerušení, měl by sis ujasnit, o co vlasně jde. "Voláním přerušení" asi myslíš instrukci INT na x86, což je jenom trochu jinak fungující instrukce CALL a shodou okolností se to používá na volání služeb operačního systému. To má Z80 assembler taky, je to instrukce RST. S opravdovým přerušením to ale nemá skoro nic společného, přerušení je nějaká (obvykle hardwarová) událost, která se zpracovává handlerem přerušení asynchronně ve chvíli, kdy nastane. S tím se naučí pracovat jedině na něčem bez OS, protože tohle vždycky řeší OS (leda že by chtěl psát driver do kernelu, což nepředpokládám). Takže naopak, tohle se naučí jedině na Z80 nebo něčem podobně jednoduchém. To že zavoláš instrukcí INT nějakou službu OS, je triviální operace a není se na tom co učit.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 25. 07. 2013, 17:10:31
Programoval jsem v assembleru kde co, Z80, jednočipy, DSP s harwardskou architekturou, x86 a je to všechno na jedno brdo, nastuduješ instrukční sadu a hotovo.
A nezapoměl jsi na něco? Co takhle nastudovat podrobně ještě minimálně architekturu konkrétního procesoru, správu paměti, systém přerušení, případně funkční bloky, které jsou jeho součástí. Instrukční sada je jen jazyk, kterým se ovládá HW samotného procesoru a architektura do ní vnáší logiku.

Hele když už píšeš o přerušení, měl by sis ujasnit, o co vlasně jde. "Voláním přerušení" asi myslíš instrukci INT na x86, což je jenom trochu jinak fungující instrukce CALL a shodou okolností se to používá na volání služeb operačního systému. To má Z80 assembler taky, je to instrukce RST. S opravdovým přerušením to ale nemá skoro nic společného, přerušení je nějaká (obvykle hardwarová) událost, která se zpracovává handlerem přerušení asynchronně ve chvíli, kdy nastane. S tím se naučí pracovat jedině na něčem bez OS, protože tohle vždycky řeší OS (leda že by chtěl psát driver do kernelu, což nepředpokládám). Takže naopak, tohle se naučí jedině na Z80 nebo něčem podobně jednoduchém. To že zavoláš instrukcí INT nějakou službu OS, je triviální operace a není se na tom co učit.
Tvůj pohled na problematiku přerušení v assembleru je dost zjednodušený. Navíc je často právě oblast driverů to, kde se dá setkat s assemblerem a tím jsme u HW interruptů se vším co k tomu patří.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 25. 07. 2013, 17:18:16
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.

To není nutně pravda - když vybere kit, který má na sobě alespoň pár LEDek (třeba MSP430 LaunchPad od TI za hubičku - myslím, že mně přišel na 4 USD i s poštovným), nemusí vůbec nic dělat. Jen připojí k USB.

http://www.ti.com/tool/msp-exp430g2

Pokud nechce řešit externí bazmek a má strach z čehokoliv, co by připomínalo HW, může zkusit třeba AVR v simulátoru: http://www.atmel.com/microsite/atmel_studio6/debugging_simulation.aspx . A existuje i pro Linux.
Název: Re:Programovani v assembleru
Přispěvatel: gamer 25. 07. 2013, 17:20:31
A nezapoměl jsi na něco? Co takhle nastudovat podrobně ještě minimálně architekturu konkrétního procesoru, správu paměti, systém přerušení, případně funkční bloky, které jsou jeho součástí. Instrukční sada je jen jazyk, kterým se ovládá HW samotného procesoru a architektura do ní vnáší logiku.
Všechno je to hrozně podobné, nikdo za posledních 20 let nic světoborného nevymyslel. Je to jako s programovacím jazykem, když se naučíš jeden a pochopíš základní principy, každý další se dá naučit mnohem rychleji a snadněji.

Tvůj pohled na problematiku přerušení v assembleru je dost zjednodušený.
Rád se nechám poučit.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 25. 07. 2013, 17:24:56
Tak delal jsem v Pascalu, Java, Delphi, C, Python at uz ve skole, nebo pak nejaky mirnejsi upravy kodu etc. za programatora se nepovazuju, jde mi spise o co nejlepsi pochopeni principu funkce, zrychlovani programu, zatez software na pamet,cpu a to predevsim na x86 a x64 platforme, nicmene sam casto narazim na nazor, ze je dobre se zacit ucit na jednodussich architekturach, s cimz nemam vubec zadnej problem. Pokud nekdo muze doporucit nejakej sw simulator, se kterym se da hrat a podchytit zaklady bylo by to super.
Zaujal mne predevsim prispevek punkatux, ktery vystihuje moje snazeni v jedine vete:
Citace
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.

Rozumím, takže spíš aplikační než systémové programování. V tom případě bych doporučil začít na něčem jednoduchém k pochopení základů a principů (viz výše), potom na té jednoduché platformě přejít na C a studovat vygenerované ASM kódy, klidně s různými stupni optimalizací a snažit se pochopit co, jak a proč se překládá právě tak, jak se to překládá. Pro to bych opravdu doporučil AVR a nebo i8051 (na ten by taky měly být k sehnání nějaké simulátory - zkus pohledat). A potom na x86 / x64 a začít opět s jednoduchými věcmi a pak jít do generovaného kódu atd.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 25. 07. 2013, 17:37:16
A nezapoměl jsi na něco? Co takhle nastudovat podrobně ještě minimálně architekturu konkrétního procesoru, správu paměti, systém přerušení, případně funkční bloky, které jsou jeho součástí. Instrukční sada je jen jazyk, kterým se ovládá HW samotného procesoru a architektura do ní vnáší logiku.
Všechno je to hrozně podobné, nikdo za posledních 20 let nic světoborného nevymyslel. Je to jako s programovacím jazykem, když se naučíš jeden a pochopíš základní principy, každý další se dá naučit mnohem rychleji a snadněji.

Tvůj pohled na problematiku přerušení v assembleru je dost zjednodušený.
Rád se nechám poučit.

Takže přeskakuješ první kapitoly dokumentace CPU a čteš jen instrukční sadu? Co tímhle způsobem píšeš za SW?

Zatímco jazyky vyšší úrovně slouží primárně k zápisu algoritmů, assembler je jazyk k přímému ovládání HW procesoru a abych v něm na konkrétní platformě mohl něco smysluplného, musím architektuře podrobně rozumět. A architekturou samozřejmě nemyslím von Neumann v. Harvard.
Název: Re:Programovani v assembleru
Přispěvatel: Pavel Tisnovsky 25. 07. 2013, 17:41:38
Tak delal jsem v Pascalu, Java, Delphi, C, Python at uz ve skole, nebo pak nejaky mirnejsi upravy kodu etc. za programatora se nepovazuju, jde mi spise o co nejlepsi pochopeni principu funkce, zrychlovani programu, zatez software na pamet,cpu a to predevsim na x86 a x64 platforme, nicmene sam casto narazim na nazor, ze je dobre se zacit ucit na jednodussich architekturach, s cimz nemam vubec zadnej problem. Pokud nekdo muze doporucit nejakej sw simulator, se kterym se da hrat a podchytit zaklady bylo by to super.

Ja bych asi dneska zkusil napriklad simulator PICu [http://www.root.cz/clanky/vyvojove-nastroje-pro-osmibitove-mikroradice-pic/] a kdyztak si koupit za par korun realny procesor a treba zacit blikat LEDkama nebo neco podobneho. Vypada to mozna sice detinsky, ale u osmibitovych mikroradicu se dostanete blizko k "zelezu", zadny OS a nic dalsiho mezi Vasim programem a CPU nebude :-)
Název: Re:Programovani v assembleru
Přispěvatel: JS 25. 07. 2013, 18:07:03
Smoofy, a co zkusit Jones Forth? Je v x86 assembleru na Linuxu a pak castecne v sobe, je napsany ve stylu "literate programming" (i kdyz to neni tutorial assembleru, ale Forthu), a nauci to cloveka jak bootstrapovat maly kompilator, coz je IMHO o dost poucnejsi nez samotny assembler.

Jinak si myslim, ze nema moc smysl to studovat, mozna opravdu na nejake embedded architekture, ktera je jednoducha, a osvetli tak principy navrhu pocitacu. V praxi assembler pouzijes jen v extremnich pripadech, kde z toho ci onoho duvodu nelze pouzit C kompilator, nebo jsi natolik dobry, ze opravdu umis napsat tech par radek lepe (coz IMHO rozhodne neni snadne se na takovou uroven dostat).

Takže přeskakuješ první kapitoly dokumentace CPU a čteš jen instrukční sadu? Co tímhle způsobem píšeš za SW?

Fascinuje me, kolik je tady lidi s nizkou socialni inteligenci, co maji potrebu si na ostatnich honit ego. Je celkem jasne, jak to autor myslel, a ze zna minimalne x86 a Z80. A ma celkem pravdu; jakmile clovek pochopi u assembleru nektere zakladni koncepce, pak uz je to opravdu jen precteni manualu.
Název: Re:Programovani v assembleru
Přispěvatel: v2kt0r 25. 07. 2013, 18:29:55
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!)
Thumbs up za nick, ale >>blicí smajlík nad zbytečně hrubým blbem<< za zbytek.
Co tě přesně na tazateli, nebo na čem jiném, tolik žere? On neříká "proč vy kreténi ten vás asembler vypadá tak nečitelně", ale slušně se ptá kde začít (tos částečně napsal, ale proč to shazování okolo?), žádá o radu a je ochoten zaplatit (takže se každý může rozhodnout, zda někoho za jeho vlastní peníze povodí za ručku a něco mu vysvětlí)... Takže kde přesně vidíš jaký problém?
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 25. 07. 2013, 19:17:43
Fascinuje me, kolik je tady lidi s nizkou socialni inteligenci, co maji potrebu si na ostatnich honit ego. Je celkem jasne, jak to autor myslel, a ze zna minimalne x86 a Z80. A ma celkem pravdu; jakmile clovek pochopi u assembleru nektere zakladni koncepce, pak uz je to opravdu jen precteni manualu.

O mojí sociální inteligenci se neboj. A autor pravdu nemá - jestli chceš v assembleru něco smysluplného napsat a využít ho opravdu tam, kde má smysl, potřebuješ o daném CPU vědět o dost víc než jen instrukční sadu a s "některými základními koncepcemi" opravdu nevystačíš.

Ale problém bude pravděpodobně v tom, co vidíme pod smysluplným využitím assembleru, a tam může být kámen úrazu.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 25. 07. 2013, 19:29:32
Ale problém bude pravděpodobně v tom, co vidíme pod smysluplným využitím assembleru, a tam může být kámen úrazu.

Taky to tak vidím, také jsem měl na VŠ základy ASM a nebýt toho, že do toho vidím víc, mohl bych tvrdit stejné kraviny.
Ono stačí říct, chci spojit tyto dva řetězce a vytisknout je vlastní funkcí volající služby OS a ne knihovním call printf.
To chci vidět, jak to někdo, kdo si přečte jen instrukční sadu X64 procesoru, udělá ;D
Název: Re:Programovani v assembleru
Přispěvatel: gamer 25. 07. 2013, 22:13:56
Takže přeskakuješ první kapitoly dokumentace CPU a čteš jen instrukční sadu? Co tímhle způsobem píšeš za SW?
SW alespoň částečne v assembleru (takový magor abych psal něco většího celé v assembleru zase nejsem) jsem napsal dost a dostal jsem za to i zaplaceno. Dělal jsem i řídici systémy pro zákaznický hardware, který možná běžně každý den potkáváš, ale raději nebudu psát, co to je ;)

Zatímco jazyky vyšší úrovně slouží primárně k zápisu algoritmů, assembler je jazyk k přímému ovládání HW procesoru a abych v něm na konkrétní platformě mohl něco smysluplného, musím architektuře podrobně rozumět. A architekturou samozřejmě nemyslím von Neumann v. Harvard.
V tom se právě mýlíš, jestli myslíš "znalostí assembleru" "znalost všech periferií připojených okolo procesoru nebo na čipu mikrokotroléru", tak to jsou dvě různé věci a je úplně jedno, jestli ty periferie obsluhuješ v assemberu nebo v nějakém vyšším programovacím jazyce. Většinou jsou ty periferie jen namapované někam do adresového prostoru a můžu napsat v assembleru
Kód: [Vybrat]
mov [ADRESA_REGISTRU],HODNOTA_REGISTRU
nebo v C
Kód: [Vybrat]
*((volatile unsigned int*) ADRESA_REGISTRU) = HODNOTA_REGISTRU;
a je to naprosto ekvivalentní a ovládám HW přímo z C.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 25. 07. 2013, 22:39:59
Ach jo!
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 26. 07. 2013, 00:12:00
V tom se právě mýlíš, jestli myslíš "znalostí assembleru" "znalost všech periferií připojených okolo procesoru nebo na čipu mikrokotroléru", tak to jsou dvě různé věci a je úplně jedno, jestli ty periferie obsluhuješ v assemberu nebo v nějakém vyšším programovacím jazyce. Většinou jsou ty periferie jen namapované někam do adresového prostoru a můžu napsat v assembleru
Kód: [Vybrat]
mov [ADRESA_REGISTRU],HODNOTA_REGISTRU
nebo v C
Kód: [Vybrat]
*((volatile unsigned int*) ADRESA_REGISTRU) = HODNOTA_REGISTRU;
a je to naprosto ekvivalentní a ovládám HW přímo z C.

Díky za objasnění. Teď už rozumím tomu, kde je problém a proč si nerozumíme - a nemyslím to nijak ironicky a ani se nesnažím nad tebe povyšovat, jak mi někdo naznačoval.

Nemá smysl to dál rozebírat, původního tazatele to nezajímá a ještě nějakou dobu zajímat nebude.

Nicméně má zkušenost říká, že dobrý programátor v assembleru zná detailně konkrétní CPU jako takový a to mu přináší výhody při psaní kódu. Bez toho nemůže být opravdu dobrým programátorem.
Název: Re:Programovani v assembleru
Přispěvatel: hmmm 26. 07. 2013, 23:02:48
Dost se to tu zvrhlo k diskuzi teoretiku. Zpet k tazateli.

Pises, ze jsi uz videl Pascal, Delphi, C... Muzes zacit tim (nebo aspon ja tak zacinal), ze v techto jazycich napises cast kodu v assembleru. Vsechny tri proste umeji vkladat assemblerovske instrukce. (Vykasleme se ted na teoretiky, kteri urcite znaji nejakou specifikaci nejakeho jazyka a kompilator, ktery assembler uvnitr daneho jazyka nezkousne. proste v normalnim Borland Pascalu nebo Delphi jde psat i assembler.) Oblibeny postup je takovy, ze vezmes nejakou proceduru, o ktere si myslis, ze na ni stacis, kouknes na ni debuggerem a zacnes studovat, jestli by neslo nejakou sekvenci instrukci napsat jinak. (Pouziva se vubec jeste "xor ax ax"?)

Pro zacatek ti staci funkce pro soucet dvou cisel. Nejslozitejsi bude pochopit, jak se do funkce predavaji parametry (registry versus zasobnik) a jak se vraci vysledek.

Dalsim v MS-DOSu oblibenym cvicenim byly ruzne figle okolo klavesnice. (Blikani diodama, cteni vsech klaves...) Zorazovani pomoci preruseni nebo zapisem do videopameti. Cteni sektoru na hardisku, formatovani disket. Ale tohle vsechno neni ani tak o assembleru, ale spis o tom, jak obsluhovat dany hardware.

Jednou jsem resil nasobeni dvou matic. (Vadilo mi, jak tam Delphi porad cpalo nejakou instrukci pro vyjimku nebo nejake preruseni, kdyz pretece vypocet.)

Zkousej a ptej se.
Název: Re:Programovani v assembleru
Přispěvatel: Mirek 27. 07. 2013, 08:52:27
Opravdu bych nezavrhoval začátek s nějakým 8 bitem. Pro začátek se třeba podivat na pár příkladů tady http://www.avr-asm-tutorial.net/avr_en/ - http://www.avr-asm-tutorial.net/avr_en/AVR_TUT.html

x32 a x64 je pro začátek určiťe složitější.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 27. 07. 2013, 11:25:36

Jenže to jim nevysvětlíš, pokud si někdo myslí, že se programovat v ASM naučí tím, že si přečte instrukční soubor, není mu pomoci.
Nemyslím si, že se někdo naučí programovat pro AVR tím, že si přečte jeho instrukční sadu, ono ASM není jen o instručkní sadě, ale i o znalosti řady fíglů, jak program dlouhý na padesát řádek přepsat na deset, ale nebude se muset obtěžovat se složitou správou nedej bože segmentací paměti, dokumentaci k přerušení, komunikaci s OS, atd. Tedy určitě to zvládne snáz, radíš dobře.
Název: Re:Programovani v assembleru
Přispěvatel: IDKFA 31. 07. 2013, 00:25:35
Jenže to jim nevysvětlíš, pokud si někdo myslí, že se programovat v ASM naučí tím, že si přečte instrukční soubor, není mu pomoci.
To je asi ako tvrdenie, ze sa clovek nauci hrat na gitare tym, ze bude vediet pomenovat struny. To ale byva skor nutna sucast ako hranica, po prekonani ktorej by to mal uz clovek zvladat.

ono ASM není jen o instručkní sadě, ale i o znalosti řady fíglů,
Tie sa ale clovek nauci bezne az casom (napriklad ho napadnu). A to je trochu v zhode s tym, co mu radili.

jak program dlouhý na padesát řádek přepsat na deset,
To nemusi byt vzdy vyhoda. Ked nieco napises v C a ASM, tak po porovnani mozno uvidis - jednoduchsie, priamociarejsie a lepsie citatelne riesenie v ASM je dost casto pomalsie ako ten "hnus" vygenerovany od prekladaca C. Preto ma pisanie ASM v dnesnej dobe vyznam nie tam, kde je treba rychlost, ale tam, kde to inak napisat nejde...
Název: Re:Programovani v assembleru
Přispěvatel: txt 31. 07. 2013, 14:12:23
Nás na architektuře počítačových systémů učily v debugu (např. zpomalení/zrychlení hodin), a v simulátoru Marie (http://computerscience.jbpub.com/ecoa/2e/student_resources.cfm). Na to pak navázal nějaký 8b jednočip.

Nějaký ty materiály bych na disku našel.
Název: Re:Programovani v assembleru
Přispěvatel: Eda Beda 31. 07. 2013, 16:25:33
A co kniha Učíme se programovat v jazyce Assembler pro PC? Ta ti taky nevyhovuje?
Název: Re:Programovani v assembleru
Přispěvatel: bruce 01. 08. 2013, 21:49:51
Opravdu bych nezavrhoval začátek s nějakým 8 bitem. Pro začátek se třeba podivat na pár příkladů tady http://www.avr-asm-tutorial.net/avr_en/ - http://www.avr-asm-tutorial.net/avr_en/AVR_TUT.html

Tento navod+datasheet +instrukcna sada je asi najviac uceleny material o programovani 8bit Atmelov v asembleri, ktory sa da najst na webe. Sam som takto pred nejakou dobou zacinal a skusal rozne veci. Zacal som blikanim s ledkou, potom som pridal timer-e, neskor UART a ovladanie znakoveho LCD. Podla mna je to dobry sposob ako sa zoznamit s tym, ako procesor vo vnutri vlastne funguje. Nevyhodou je, ze castokrat to nebolo o programovani ale o hladani chyby v zapojeni celeho obvodu.
Mozno existuje lepsi sposob ako sa naucit programovat v assembleri. Ale ja som chcel som vyskusat avr + assembler a nic lepsie som nenasiel. Na webe je dost navodov ako riesit ciastkove problemy ale asi nenajdes komplexny navod v zmysle "How to become assembler pro in a year". Ak by existoval, uz by tu urcite niekto dal linku ;)
Název: Re:Programovani v assembleru
Přispěvatel: Tomas 01. 08. 2013, 23:54:48
Jak uz tady bylo nekolikrat receno, asi bych sel do toho AVR. Take jsem si s tim kdysi hral. Na x86/64 smysl assembler IMHO moc nema. Porazit optimalizator je skoro nemozne a kdyz vezmu v uvahu jeho prevahu s tim, ze muze kdekoliv a kdykoliv inlinovat kod dle svych potreb apod tak to nedokaze nikdo.

Assembler jsem pouzil snad jen v pripade SSE atd k urychleni vypocu. I tak uryhleni nebylo nikterak vyrazne. Optimalizator opet umel lepe usporadat poradi, aby byly instrukcni pipeline jak byt maji. Proste jsem to prepsal pomoci intristics a bylo.

Jedine kde pouzivam assembler je kdyz dostanu coredump s poskozenym stackem, nebo poskozenou pameti a navic nekdo zapomel vyexportovat symboly. V tomto pripade je velmi uzitecne vedet jak to funguje, co je EBP apod. Ja se to ucil na debugovani prelozeneho kodu a krokovani po instrukcich. To mi prijde takove prakticke, protoze vidis kod, ktery se opravdu pouziva.

Takze na hrani a pripadne HW zajimavosti jdi do AVR (i kdyz ARM ma taky moc peknej asm). Na efektivni praci zustan u C++ a /O2.


Název: Re:Programovani v assembleru
Přispěvatel: pepak 02. 08. 2013, 07:54:40
Na x86/64 smysl assembler IMHO moc nema. Porazit optimalizator je skoro nemozne a kdyz vezmu v uvahu jeho prevahu s tim, ze muze kdekoliv a kdykoliv inlinovat kod dle svych potreb apod tak to nedokaze nikdo.
Assembler má i pro x86 smysl přinejmenším ze dvou důvodů:

1) S jeho znalostí člověk mnohem lépe pochopí, jak počítač i OS uvnitř fungují, a to mu umožní lépe psát programy ve vyšších jazycích.

2) Kompilátory nejsou bezchybné, čas od času je potřeba projít si debuggerem přímo vygenerovaný kód. To jde se znalostí assembleru, aspoň základní, o hodně lépe než bez ní.

Za sebe bych přidal ještě jeden subjektivní důvod - dobře napsaný assemblerový program je "krásný".

Souhlasím, že nemá smysl učit se assembler proto, abych mohl překonávat optimalizátor - i když i toho jde dosáhnout (typicky ve využití registrů pro lokální proměnné).
Název: Re:Programovani v assembleru
Přispěvatel: smoofy 02. 08. 2013, 11:54:30
Diky za vsechny podnetne odpovedi, postupne prochazim navrhy a o vikendu se na to vrhnu.
Jen pro upresneni, assembler mne zajima primarne z duvodu jak psal pepak:
Citace
1) S jeho znalostí člověk mnohem lépe pochopí, jak počítač i OS uvnitř fungují, a to mu umožní lépe psát programy ve vyšších jazycích.
Nemam potrebu hrat si na boha a znovu-vynalezat kolo, jen zpevnit a rozsirit zakladnu znalosti a vedomosti v IT.

Libi se mi naznacena cesta zacit s 8bity a pokracovat dale. Koukam stale jake jsou moznosti simulace, pripadne i treba elektro stavebnice, dokumentace projektu etc. Pro nekoho kdo to zna nebo s tim ma zkusenost je to asi snadne a transparentni, ale pro mne je to dost zmatene, proto bych radeji nekoho, kdo by mi mohl poskytnout takovej brainstorming k tematu, aby takovy ty zmatecny myslenky zapadly na misto a na tom uz pak muzu zacit stavet.
Samozrejme ze asi po strasne moc ztravenym casu ctenim tuny nudnyho a zbytecnyho materialu byt to asi dal dohromady i sam, ale prijde mi zbytecne s tim ztracet cas, kdyz by stacila treba hodka dve klidne u piva s nekym, kdo to dava a ma tu zkusenost a ten zmatek mi rozptylil. Treba bych tomu dotycnemu mohl na oplatku taky nejak pomoci.
Prijde mi, ze nekteri lide se radi vydavaji za genialni, ackoliv zadnou realne pouzitelnou radu nabidnout nedovedou. Ja jsem schopen pochopit spoustu veci samostudiem, ale pokud necemu venujete nejakej cas, a stejnak na sobe vidite, ze ten pokrok neni takovy jako byste si predstavovali a ze se spise norite do jeste vetsi mlhy tak je lepsi se zeptat a od toho tady fora jsou krome sireni flame.
Název: Re:Programovani v assembleru
Přispěvatel: Tomas 02. 08. 2013, 12:26:46
Diky za vsechny podnetne odpovedi, postupne prochazim navrhy a o vikendu se na to vrhnu.
Jen pro upresneni, assembler mne zajima primarne z duvodu jak psal pepak:
Citace
1) S jeho znalostí člověk mnohem lépe pochopí, jak počítač i OS uvnitř fungují, a to mu umožní lépe psát programy ve vyšších jazycích.
Ja si nemyslim, ze ti znalost jak funguje kernel a znalost instrukci a par triku pomuze programovat ve vyssich jazycich. Jestli ovladas C jak pises tak jsi presne na te vrstve, ktera je nejnizsi a jeste jakz takz dava smysl. Vzdyt kernel je taky psany z velke vetsiny v cistem C. Dokonce, kdyz se moc snazis kompilatoru pomoct, nakonec mu hazis klacky pod nohy.

Pokud ti jde o optimalizace tak se koukni na profilovaci nastroje a metriky, kterym se rychlost meri. Pak se optimalizace toci bud okolo slozitosti ma vypocet (asm zde nepomuze), nebo optimalizace pristupu do pameti (cache miss, page fault, apod - valgring/cachegrind pomuze a pripadne pametovych naroku. Ja se potkavam vetsinou s problemem nenazranosti, protoze uz dnes nikdo neresi pamet nebo nekolik vnorenych cyklu (lenost vytvorit index), ale jeste jsem v praxi nepotkal priklad, kde by assembler pomohl. Potkal jsem ho pouze, kdyz jsem si hral se zpracovani videa apod., proste pro srandu. Na hrani super, to jo.

Dnesni vyvoj si nedovedu predstavit bez metaprogramovani a generik (C++ templates, stl, boost, poco, ...). To co napisu na jeden radek a bude v 99 procentech rychlejsi, se bude v asm psat tyden a druhy tyden ladit chyby. Koukni se spise na optimalizace aplikaci, to ti da mnohem vice do praxe a dokonce si myslim, ze je to to co hledas.
Název: Re:Programovani v assembleru
Přispěvatel: pepak 02. 08. 2013, 12:43:16
Ja si nemyslim, ze ti znalost jak funguje kernel a znalost instrukci a par triku pomuze programovat ve vyssich jazycich. Jestli ovladas C jak pises tak jsi presne na te vrstve, ktera je nejnizsi a jeste jakz takz dava smysl.
Zrovna konkrétně v C ti znalost assembleru sakra pomůže, protože s její znalostí se stávají evidentními "axiomy Cčka" (proč je false nula, proč pointerová aritmetika funguje tak, jak funguje, atd.). Ale ve větší nebo menší míře to pomůže i v ostatních jazycích. Protože se naučíš principy, proč a jak něco funguje, ne básničku, že to funguje.

Citace
Pokud ti jde o optimalizace
Explicitně psal, že o ty mu nejde.
Název: Re:Programovani v assembleru
Přispěvatel: Tomas 02. 08. 2013, 13:00:32
Zrovna konkrétně v C ti znalost assembleru sakra pomůže, protože s její znalostí se stávají evidentními "axiomy Cčka" (proč je false nula, proč pointerová aritmetika funguje tak, jak funguje, atd.). Ale ve větší nebo menší míře to pomůže i v ostatních jazycích. Protože se naučíš principy, proč a jak něco funguje, ne básničku, že to funguje.
Citace
Pokud ti jde o optimalizace
Explicitně psal, že o ty mu nejde.
Jen poznamka: Pointerovou aritmetiku asi pochopi kazdy i bez asm (kdyz pouzije memory view tak si to muze i nasimulovat). Ale takovy aligning, jeho dusledky na rychlost apod. ho stejne donuti delat jen prekladac (asm te nedonuti, tam si muzes delat co chces). A kdyz se zajimas o tyto detaily, tak si je muzes precist u kompilatoru. Mne osobne to dava vic informaci a mene zmatku, ale asi jsem az moc zamereny na efektivitu sveho casu.

Psal, ze mu nejde o asm optimalizace, ale mozna jsem to prehledl. Tak nic, byla to jen rada...
Název: Re:Programovani v assembleru
Přispěvatel: txt 02. 08. 2013, 13:48:06
Assembler AVR je "pěkný", ale oproti x86 má odlišný přístup. Když píšeš v C, tak AVR studio automaticky generuje texťák s asemblerem a co jsem tak testoval, tak bych to v asm lépe neudělal (při přerušení se ukládají pouze ty registry, u kterých je to nezbytné, když to jde, jsou vybrány instrukce provedené v jednom cyklu, atd.). Simulátor v AVR studiu neni nic moc (zkoušel jsem verzi 5, v6 nevim). Pokud se chceš učit opravdu na tomhle, tak by to chtělo připojení přez JTAG, aby sis mohl při krokování vypsat obsah registrů/paměti (nebýt odkázán na výstup pomocí blikání diody/lcd). Pokud není tvůj primární zájem elektronika/embedded, přimlouval bych se za nějaký simulátor/vývojové prostředí běžící na PC.

Pro pochopení jak to uvnitř funguje, je dobré číst o různých architekturách takové ty věci, jako blokové schéma CPU, průběh zpracování instrukce...
Název: Re:Programovani v assembleru
Přispěvatel: smoofy 02. 08. 2013, 15:09:18
Objevil sem pred chvilkou http://www.teach-sim.com/. Vypada to vcelku zajimave pote, co jsem to tak letmo proletl. Nema s tim nekdo zkusenost nebo nejaky nazor?
Název: Re:Programovani v assembleru
Přispěvatel: sova 02. 08. 2013, 17:29:30
Možno Vás bude zaujímať tento kurz:
https://www.coursera.org/course/hwswinterface
- ale zatiaľ nie je známy ďalší termín.
Název: Re:Programovani v assembleru
Přispěvatel: Karel 02. 08. 2013, 23:01:42
Možná se trochu vzdálím od tématu. Nevím, zda je moje myšlenka technicky proveditelná, tak prosím o schovívavost. Hledám nějaky SW simulátor jednočipů (kompatibilních s 8051) s tím, že by jeho "virtuální I/O porty" (stačí jeden osmibitový) by bylo možné mapovat například na paralelní port. O co mi jde? Spustit strojový kód v počítači určený pro danou architekturu mikroprocesoru, tak aby se jeho "instrukce pro práci s vnější sběrnicí" navenek skrze paralelní port tvářily, tak že vycházejí z opravdového jednočipu. Asi bude potřeba dorovnat napěťové úrovně. A nejde mi o to aby to pracovalo v na nějakých vysokých (reálných) kmitočtech.

Chci se tedy zeptat, existuje nějaký takový software? Díky.
Název: Re:Programovani v assembleru
Přispěvatel: IDDQD 03. 08. 2013, 01:18:52
navenek skrze paralelní port tvářily, tak že vycházejí z opravdového jednočipu. Asi bude potřeba dorovnat napěťové úrovně. A nejde mi o to aby to pracovalo v na nějakých vysokých (reálných) kmitočtech.

A co si jako představuješ, že "tvářily, že vycházejí z opravdového jednočipu"?
Máš pocit, že těch cca 3.4 Voltu, co z LPT portu leze, je digitálně podepsaných?

Na lpt se dá zapsat třeba takto:

mov  dx,0378h; //adresa portu
mov  al,00100000b; //aktivuju bit
out  dx,al; //pošlu to tam, pokud bych chtěl stav změnit, je to potřeba vynulovat

Samozřejmě že existují simulátory, které mají výstup na LPT.
Do simulátoru si můžeš doplnit modul, který bude data odněkud posílat někam, třeba tam, kam potřebuješ.
Netuším, jestli se 16C552 používá s c51.
Vynechal jsi jednu moc důležitou věc a to je jaký obvod chceš simulovat.
Název: Re:Programování v assembleru
Přispěvatel: IDDQD 03. 08. 2013, 01:43:56
Nebo jde o to, abys měl simulátor c51, který bude v počítači a lpt port se bude tvářit, že to jsou nožičky té c51?
Název: Re:Programování v assembleru
Přispěvatel: IDDQD 03. 08. 2013, 01:49:00
Přiznám se, že c51kám nerozumím, jen x86, pokud vysvětlíš, co bys rád, poradím.
Název: Re:Programování v assembleru
Přispěvatel: Karel 03. 08. 2013, 06:28:55
No má představa je taková, že budu mít "program"
Kód: [Vybrat]
mov P0,#11001100Btzn port 0 (osm pinů) na jednočipu se nastaví na tyto logické hodnoty. Co se snažím najít je program (simulátor) na PC, který by jako provední této instrukce pochopil nastavit 8 vývodů LPT do požadovaného stavu. Takže bych navenek (mimo PC) mohl pracovat s různými zařízeními, aniž bych musel mít jednočip, krystal nebo programátor a přitom mohl využívat assembler pro 8051 a kompatibilní.
Název: Re:Programování v assembleru
Přispěvatel: Kolemjdoucí 03. 08. 2013, 11:02:29
No má představa je taková

Ani ve zlatých časech x51 se to takhle nedělalo. Realizaci tvého systému nic nebrání, jenom si to budeš muset udělat sám, hotové to asi nenajdeš. Ale v časech JTAG ladění je to zbytečná práce.
Název: Re:Programování v assembleru
Přispěvatel: IDDQD 03. 08. 2013, 11:24:57
Je dost opensource emulátorů 8051, tak pokud to ještě není, můžeš za to někomu zaplatit, nebo si to dodělat sám, pro dobrého Cčkaře se znalostí ASM je to dost jednoduché. ;)
Název: Re:Programování v assembleru
Přispěvatel: Karel 03. 08. 2013, 13:25:32
Tohle byla moje první myšlenka, od doby, kdy jsem se začal programováním jednočipů zabývat. Využít výkon počítače a jeho "běžného rozhraní" k simulaci práce jednočipu. Právě proto, že by se v současnosti jednalo jen o takový lepící projekt (kompilátory a "interprety" pro 8051 existují jenom by se odchytlo pár těch instrukcí pro práci s vnější sběrnicí a ty by se realizovali jinak), tak se ptám, jestli to někdo už neudělal nebo jste o něčem takovém neslyšeli.
Název: Re:Programování v assembleru
Přispěvatel: andy 03. 08. 2013, 13:39:39
Ja byt tebou, tak asi zacnem radsej tym emulatorom AVRka alebo PICu. Stiahni si datasheet k nejakemu mrnavemu (cim menej funkcii tym lepsie) a to si precitaj. Nie je toho vela, instrukcnu sadu nemaju velku, takze ta to zbytocne neznechuti. x86 architekturu by som vynechal, lebo ma mrte rezimov a instrukcii a kraviniek ktore ta iba odradia. Tiez nie je celkom dobre pozerat co vygeneroval kompilator, pretoze on pouziva kadejake finticky a to na uvod nepotrebujes vediet.
Ak budes mat nejake nejasnosti, tak ti tu snad niekto poradi. Je dobre chapat tie vektory preruseni od roznych periferii, naco sluzia konfiguracne registre, ze mozu existovat aj pamatovo mapovane registre atd.
V emulatore si to potom mozes vyskusat a nemusis blbnut s realnym cipom a programatorom. A nenechaj sa odradit od frajerov co si tu honia ego. Kazdy nejako zacinal.

Karel: no ved stiahni si nejaky emulator a realizuj ich inak :). Ja som sa tak pokusal ovladat krokovy motor a aj to celkom slo (okrem microsteppingu) az dokym som si nechtiac neodpalil 1 pin na lpt (ide to velmi lahko).
Název: Re:Programování v assembleru
Přispěvatel: r23 03. 08. 2013, 15:07:48
K C51 dneska koupíš za pár korum i vyřazené HW emulátory, které se ale chovají jako celý reálný procesor.
A nebo vezmi jinou architekturu, a jtag emulátor....program sice běží v tom chipu, ale ty na PC vidíš vše. A také stačí vybavení za pár drobných...
Název: Re:Programování v assembleru
Přispěvatel: Doe 04. 08. 2013, 01:15:20
Možná jsem to přehlédl (dost příspěvků), ale PROČ vlastně potřebuješ psát algoritmus na (téměř) nejnižší úrovni?
Název: Re:Programování v assembleru
Přispěvatel: smoofy 04. 08. 2013, 08:32:15
to Doe:

Nepotrebuju. Chci jen pochopit jak to vlastne funguje.
Název: Re:Programování v assembleru
Přispěvatel: student 04. 08. 2013, 20:32:46
To si napis nejaky mini OS. To nie je az take tazke a bude tam realne nutne pouzitie toho ASM. Pri "pisani algoritmov" tento ciel obycajne chyba. Tam ide casto o rychlost, pricom malokto sa vyrovna optimalizacii (z C) od kompilatoru, ak teda programator napovie kompilatoru co sa da, aj specificky napr. pre GCC. Tam je treba vediet skor citat vystup GCC z ASM a rozumiet mu - co je ovela jednoduchsie ako samotne programovanie v ASM.
Název: Re:Programování v assembleru
Přispěvatel: amater 05. 11. 2013, 00:42:21
Vaše starosti bych chtěl mit. Já musim nakrmit rodinu a na nic jiného nemám čas. Najděte si baby a zbytek nechte na těch, kteří tomu rozumějí.
Název: Re:Programování v assembleru
Přispěvatel: punkatux 06. 11. 2013, 13:39:53
Potom doporucuji http://mcu8051ide.sourceforge.net/

Mam s nim hodne dobre zkusenosti z drivejska (cca 5 let zpatky)