Diskuze: Assembler
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Jaký druh Assembleru (jaká architektura)?
Pokud jde o IA32 (v zásadě x86), tak se dá najít docela dost článků zabývajících se crackingem, shellcody, případně vývojem operačních systémů.
Pokud se ccheš Assembler naučit opravdu pořádně, tak bysis měl sehnat manuály k dané platformě – např. různé věci od Intelu (Intel Software Developer Manual či jak se to jmenuje), což je pěkné čtení na hodně dlouhých večerů. A následně si načíst něco o tom, jak do Assembleru překládají překladače – volací konvence atd.
Levnější cesta je začít s tím crackingem/shellcody a prasit, ale
dopadneš pak cca tak, jak se píše zde
http://www.soom.cz/…anualu-Intel
Pokud t zajímá nějaká šílenější architektura (i třeba x64), tak přeju hodně štěstí. Vzhledem k tomu, o kolik víc se tam používají registry místo zásobníku, se s psaní instrukcí stává poměrně horor.
Otázka také je, proč byses chtěl Assembler učit. Na co jej chceš využít. Např. pro x86/x64 je VELMI MÁLO bolastí, kde bys takovou znalost reálně využil. Zdá se, že si hodně lidí myslí, že Assembler je nutný pro psaní ovladačů – ne, není. Pokud nepíšeš specializovanou věc typu hypervizor či zavaděč OS (a i tam je podle mě velká snaha co nejdříve skočit aspoň do Cčka).
U mikrokontrolerů to může být samozřejmě o něčem zcela jiném. Samozřejmě, dá se vyvíjet v Cčku a kdo chce, může si práci ještě zjednodušit Arduinem (zaplatí ale docela brutálním overheadem co se týče využité RAM a ROM). Ale pokud je chceš využít na plech, Assembler je jistá volba. Navíc, u mikrokontrolerů ten Assembler není extra složitý (protože mikrokontrolery nejsou v zásadě složitá zařízení a chovají se +- předvídatelně, což se o složitých CPU říci nedá).
Využít na plech složité procesory z Assembleru dost dobře nejde, protože jsou zkrátka příliš složité a ne vše je dokumentované (samozřejmě, dají se provádět triky typu "napíšu si kus kódu v Cčku, nechám převést do Assembleru a zoptimalizuju tak, jak potřebuju").
Je pravda, že občas je potřeba použít instrukci, která prostě není z jazyka dostupná (CPUID, vektorové instrukce, přístup k privilegovaným registrům procesoru...), ale pro takové případě obvykle existují speciální funkce/makra. Takže z Cčka či jiného jazyka nemusíš nikam odbíhat.
Zobrazeno 2 zpráv z 2.