/ / Návody / knihy o porozumení výstupu zostavy [zatvorené] - c ++, c, montáž

Výukové programy / knihy o pochopení výstupu zostavy [uzavreté] - c ++, c, montáž

Sú chvíle, keď chápeme demontážez vyšších jazykov ako C alebo C ++. Čítanie knihy o montáži je samozrejme nevyhnutnou súčasťou porozumenia výstupu kompilátora, ale podľa mojich skúseností je písanie kódu od začiatku úplne iné ako čítanie a porozumenie opcodes, ktoré kompilátor vytvára. Knihy, ktoré viem o montáži, nepokrývajú túto časť veľmi dobre, okrem toho verím, že ak sa niekedy spojíte s montážou, potom sa väčšinou pokúsite pochopiť výstup kompilátora.

Poznáte dobré výukové návody (alebo možno knihy) o tom, ako interpretovať výstup kompilátora?

Mám na mysli prezentáciu spoločných vysokofrekvenčných idiomov a ich preloženie do zostavy bežnými kompilátormi (msvc a gcc).

odpovede:

4 pre odpoveď č. 1

Mnoho podobných otázok o SO:

Väčšina plagátov sa zameriava na to isté ako vy, to je čítanie montážneho kódu a nie písanie nového.


2 pre odpoveď č. 2

Všetko [*] Viem o čítaní x86 zostavy,Naučil som sa jedným krokom v debuggeri v zobrazení demontáže. Je užitočné mať súčasne otvorený odkaz na operačný kód, ale aby som bol úprimný, môžete žiť bez väčšiny času, pretože kým kompilátor nie je príliš optimalizovaný, viete, čo to vlastne robí zdroj C, obsah premenných atď.

[*] No, väčšina vecí.


0 pre odpoveď č. 3

Môžete kompilovať niektoré c, c ++ súbory a udržiavať výstup assembleru (možnosť -s myslím) a porovnať vygenerovaný výstup so zdrojovými súbormi.

To by vám malo pomôcť pochopiť vytvorenéassemblerový kód a rozpoznávanie opakujúcich sa vzorov (volanie metódy / funkcie, vrátenia, slučky, inicializácia atď.). Nepovoliť optimalizáciu by to transformovať vygenerovaný kód a robiť to ťažšie pochopiť.