/ / Уроци / книги за разбирането на монтажната продукция [затворен] - c ++, c, монтаж

Уроци / книги за разбирането на монтажната продукция [затворен] - c ++, c, монтаж

Има моменти, когато разбирането на разглобяваниятаот по-високи езици като C или C ++ са полезни. Четенето на книга за монтаж е очевидно необходима част от разбирането на компилатора, но в моя опит писането на монтажен код от нулата е доста различно нещо от четенето и разбирането на опковете, които компилаторът произвежда. Книгите, които познавам на монтажа, не покриват тази част много добре, въпреки че вярвам, че ако някога се свържете с монтажа, най-вече се опитвате да разберете изхода на компилатора.

Знаете ли, че в дълбоки уроци (или може би книги) как да интерпретирате продукцията на компилатора?

Това, което имам предвид, би било представянето на общи езикови идиоми и как те се превеждат на събрание чрез общи компилатори (msvc и gcc).

Отговори:

4 за отговор № 1

Много подобни въпроси тук за SO:

Повечето плакати се стремят към едно и също нещо като вас, че се чете кода за сглобяване и не пишете нов.


2 за отговор № 2

Всичко [*] Знам за четене x86 монтаж,Научих се с едно стъпало в дебъгер в демонтаж оглед. Полезно е да имате отворена едновременно opcode reference, но за да бъдете честен, можете да живеете без повечето време, защото докато компилаторът не се оптимизира твърде много, вие знаете какво всъщност прави източника С, съдържанието на променливите и т.н.

[*] Е, повечето неща.


0 за отговор № 3

Бихте могли да компилирате някои c, c ++ файлове и да задържите изхода на асемблера (опция, която мисля) и да сравните генерирания изход с вашите изходни файлове.

Това ще ви помогне да разберете генериранияасемблер и разпознава повтарящи се модели (извиквания на метода / функциите, връщания, цикли, инициализация и т.н.). Не активирайте оптимизирането, което ще трансформира генерирания код и ще го направи по-трудно за разбиране.