Assembler - literatura
Zdravím. Chtěl bych se naučit základy programování v assembleru. Můžete mi doporučit nějaké dobré zdroje? Ať už učebnice, knížku, nebo třeba stránky, které se tím zabývají. Díky.
Zdravím. Chtěl bych se naučit základy programování v assembleru. Můžete mi doporučit nějaké dobré zdroje? Ať už učebnice, knížku, nebo třeba stránky, které se tím zabývají. Díky.
Zpět do poradny Odpovědět na původní otázku Nahoru
V assembleru čeho?
http://cs.wikipedia.org/wiki/Jazyk_symbolick%C3%BD ch_adres
Napsal jsem to blbě, chci se naučit JSA . No, jsem z toho jelen. Tady jse popis předmětu, na který se chci trochu připravit, snad to trochu objasní:
Kdysi jsem to obstojně uměl. IMHO neexistuje univerzální assembler (resp.JSA), ale je vázaný na konkrétní HW. Např. assembler 8086 neumí podmíněné skoky (nebo volání podprogramů, už mi to vypadlo), assembler 8080 to umí protože v 8080 na to je strojní instrukce, assembler Z80 má příkazy pro blokový přenos dat atd.
Takže co chcete programovat?
Souhlasím. Asemble je vždy rozdílný od použití.
K programování v assembleru (když pominu úchylárny typu přepisování programové paměti programem za chodu) potřebuješ umět sestavit logiku programu (vývojový diagram) a pak manuál se seznamem a popisem instrukcí pro daný procesor.
Dobře. Zjistím, co přesně budeme programovat. Pak položím dotaz konkrétněji.
je toho kvantum, ja si pametam tuto knizku Art of assembly - http://www.dnp.fmph.uniba.sk/~kollar/pc_hw_sw/lite r/pdfaoa.zip
Ladislav Zajíček: Bity do bytu, Mladá fronta 1988.
Koukal jsem na to zběžně, je tam popsaný assembler (resp. instrukce) pro mikroprocesor Z80.
Však jo, z toho jsem se v roce 1992 naučil assembler pro ZX Spectrum a Didaktik Gama.
Jinak na hraní si s assemblerem existuje třeba program DEBUG, mám ho i pod W XP, ale nevím, k čemu je tam dobrý. Ale něco podobného existovalo i pod CP/M a to jsem kdysi využíval fest.
Assembler dnes, Hmmm .. tak na jednochipy. Na malinké jednoduché, jednoúčelové aplikácie, stále sa používa ako základ instrukčná sada 8080, Z80, k tomu samozrejme manipulácia s I/O portami.
cca 100 instrukcií je ešte človek schopný naučiť sa a používať, ak keď len extrémne malé percento populácie ...
V PC, v assembleru snad ani není možné nic písať, maximálne nejakú krátku, specializovanú rutinu, na manipuláciu s dátami, kodek, dekompresor, kryptovanie a pod. Inak je k ničomu.
Všetky ostatné funkcie softwaru sú naviazané na služby operačného systemu, tých, je také množstvo, už pomaly NIK nevie, co všetko tam je implementované. Kapacita bežného ľudského mozgu na to nestačí ...
Je nutné použiť vývojové nástroje, oddelia algoritmus úlohy od spôsobu jej vykonania fyzickým hardwarom. Iank sa to zvládnuť jednoducho nedá.
Ale ak tvoj záujem smeruje k jednočipom ...
mno když jsem si s tím kdysi hrála, jela jsem podle assembler.
V době pomalého hw to bylo docela fajn na zrychlení určitých operací v pascalu/delphi. Na pochopení jak to funguje je to velice použitelné i dnes.
Dneska praktické využití opravdu asi jen jednočipy.
Stále živé forum o Assembleru běží na list.php
Zoberes si datasheet daneho CPU s ktorym chces pracovat a precitas si co robi kazda instrukcia a jake su sposoby adresovania, pouzivania registrov, indexacie, apod.
Pretoze assembler roznych CPU (x86 a PIC a 8051 a ARM atd) sa od seba VELMI zasadne lisia.
Pre x86 architekturu je datasheet ktory ta zaujima napr. "Software developer's manual" od intelu, momentalne ma 5 casti a kazda ma tak 500 stran. Je zdarma a da sa najst na google. Plus ak chces pouzivat SIMD (SSE apod) prip x64 rozsirenie tak si nastudujes dalsie manualy k tomu, typicky tiez tak 500 stranove.
Pre ine architektury si najdi prislusny datasheet od vyrobcu CPU, RISC a PIC apod su samozrejme omnoho jednoduchsie takze aj tie manualy su mensie.
Ked ti ide len o nejaky predmet na vyske tak chod na prednasku tam ta naucia tak 10% z toho co je v tych datasheetoch a to budu aj skusat, t.j. zas sa nemusis kvoli tomu trhat :)
P.S: ucit sa "assembler" vseobecne (ked nenapises pre jaky CPU) sa neda. T.j. chces nezmysel.