Dovolil bych si zneužít, pravděpodobně, vysoké návštěvnosti této diskuse programátory ...
Poraďte mi prosím "to nejlepší na iNetu", když bych se chtěl bez předchozí znalosti začít zabývat assemblerem (x86, x64). Pokud možno v češtině, nebo tak abych se neutopil v přemíře nových výrazů, pojmů ...
Pro začátek jednoznačně tohle - kurz protected-mode 32b assembleru. Na x86_64 by snad neměl být těžký upgrade z dalších materiálů, doporučit lze asi přímo příručky AMD a Intelu. Jo, ehm, až teď vidím tu češtinu. Zkuste se naučit anglicky, stejně to budete potřebovat. ;-)
Anglicky umím celkem obstojně, jen se děsím stovek nových pojmů a hlavně zkratek.
I když asi už některé výrazy znát budu. Obecná, psaná, počítačová angličtina je "tak trochu" primitivní ...
Ty anglické termíny se musíš naučit stejně ať už se to učíš v češtině nebo v angličtine.
Samozřejmě nemůžeš čekat, že ti někdo LGDT (load global descriptor table) bude překládat jako NHTP (nahraj hlavní tabulku popisovačů) --- to by se v tom ani Češi nevyznali, kdyby používali počeštěné zkratky.
CALL - VOLE
RET - NAV
NOP - ZUK
ADD - SEC
SUB - ODE
SBC - OSP
MUL - NAS
DIV - DEL
LEA - NUA
RST - ZSP
LD - ZK
SHR - PDP
SHL - PDL
ROR - RDP
ROL - RDL
ENTER - VSTUP
LEAVE - OPUST
No, pokud opravdu nejste vůbec dotčen žádnými znalostmi assembleru, tak bych doporučoval nejdřív začít poněkud z lehka - porozumět jak vlastně pracuje procesor - co je to PC (program counter neboli "čítač programu", co je to stack, neboli "zásobník" jak stack funguje, so je to stavový registr, jaké bity se v něm typicky vyskytují a jaký je jejich význam), jak se zpracovává podporogram, jak přerušení (nejdřív nastudovat co je to přerušení), jak se ukládají data do paměti (little, big endian, atd...) atd.... pro získání základních znalostí tohoto druhu bych doporučoval začít s něčím opravdu jednoduchým, co vás hned zpočátku nezahltí a následně neodradí od dalšího bádání. Nejlépe si nainstalovat nějaký kvalitní simulátor 8mibitu (kompletní IDE, které obsahuje integrovaný assembler&disassembler, debugger umožňující krokování, výpisy paměti, stacku, registrů - možnost všechno měnit a pozorovat jak softwarový emulátor na změnu zareaguje - a to všechno vyvedeno pěkně graficky v okýnkách). Na internetu se takovýchto prográmků válí docela dost. Mě se moc líbí třeba tento - http://home.pacbell.net/michal_k/6502.html je to dost komfortní simulátor + vývojové prostředí s makroassemblerem pro procesor MOS6502(jsou tam i zdrojáky v MSVC++ MFC) Před 20ti lety to byl procesor velmi rozšířený - tikal v Commodore64 a VIC-20, AppleII, Atari 130,800,...a řadě dalších. Pěkný softwarový emulátor + vývojové IDE je také zde http://www.monroeccc.edu/ckelly/EASy68K.htm - jedná se o procesor Motorola 68k, který je už podstatně složitější než předešlý. Ten tikal třeba v Commodore Amiga nebo Atari ST.
Že se jedná o staré procesory, tím se nenechejte odradit. Základní principy, které nejdřív musíte dokonale pochopit, jsou stále stejné. Nové procesory jen přídávají stále nové a nové a hlavně stále víc komplexní fíčury, které by vás hned z počátku jen zbytečně zahltily, ale to už jsem psal. :-))
Ja bych spis nez stare procesory spis doporucil nejakou embedded architekturu, ale sam s nimi nemam zkusenosti, takze se treba nekdo prida (sam jsem zacinal na z80, ale dnes uz bych to povazoval za zastarale).
Jeste jsem k tomu chtel dodat, ze k tem embedded architekturam se daji sehnat ceske knizky, staci zajit do knihkupectvi, je tam spousta knizek o AVR nebo 8051. Mozna sezenete i knizku o AMD 64, co ja vim. :) Rozhodne je to lepsi sazka nez tutorialy na internetu, ty jsou vetsinou jen anglicky.
Děkuji za reakci. I když jsem již, kdysy dávno, programoval v TurboVision, assembler je něco nového, a úplně jiného. Navíc již dlouho neprogramuji. Budu postupovat pěkně step-by-step.
A díky za tip. Domníval jsem se právě, že starší procesory, a microcontrolery mají úplně odlišné instrukční sady a je to tudíž krok špatným směrem.
Jinak, jestli chcete hned začít programovat x86, tak naprosto základní link je tady: http://webster.cs.ucr.edu/ a tady si můžete stáhnout vynikajicí knihu o programování v x86 assembleru - je v několika verzích - 16bit pro DOS, 32bit pro Linux a Windows - http://webster.cs.ucr.edu/AoA/
Pokud ale dosud nemáte vůbec žádnou představu o tom jak funguje procesor, zákl. podpůrné obvody, jak programovat assembler,... tak bych rozhodně doporučil pro začátek nějaký ten kvalitní simulátor 8bitu. Jako základ k pochopení toho, jak pracuje PC, Stack, Accumulator, Flags je to, myslím, dobrá cesta. Pak se můžete vydat viz. výše uvedené linky. :-)