有时候理解从C或C++等高级语言中反汇编是很有用的。阅读一本关于汇编的书显然是了解编译器输出的必要部分,但在我的经验中,从头开始编写汇编代码与阅读和理解编译器生成的操作码是完全不同的事情。我知道的关于汇编的书并没有很好地涵盖这一部分,虽然我相信如果你曾经接触过汇编,则大多数是通过尝试理解编译器输出。
你知道如何解释编译器输出的深入教程(或者可能是书籍)吗?
我想到的是介绍常见的高级语言习惯用法以及它们如何被常见的编译器(msvc和gcc)翻译为汇编。
有时候理解从C或C++等高级语言中反汇编是很有用的。阅读一本关于汇编的书显然是了解编译器输出的必要部分,但在我的经验中,从头开始编写汇编代码与阅读和理解编译器生成的操作码是完全不同的事情。我知道的关于汇编的书并没有很好地涵盖这一部分,虽然我相信如果你曾经接触过汇编,则大多数是通过尝试理解编译器输出。
你知道如何解释编译器输出的深入教程(或者可能是书籍)吗?
我想到的是介绍常见的高级语言习惯用法以及它们如何被常见的编译器(msvc和gcc)翻译为汇编。
我通过在调试器的反汇编视图中单步执行学习了关于阅读x86汇编的所有知识。同时打开一个操作码参考是有用的,但说实话,大多数情况下你都可以不用它,因为只要编译器没有过度优化,你就可以从C源代码、变量内容等方面知道它实际上在做什么。
好吧,至少大部分东西是这样。