阅读汇编的推荐指南/书籍

recommended guides/books to read assembly

本文关键字:书籍 汇编      更新时间:2023-10-16

所以最近我对阅读汇编很感兴趣,它是由一个反汇编器显示的,比如ollydbg。我想阅读这个程序集的原因是了解其他开发人员如何构建他们的应用程序,或者像程序中二进制文件的文件格式之类的东西。

在编程方面,我并不是一个完全的新手,因为我已经使用c++和c#有一段时间了。我对c++有扎实的了解,所以整个指针的概念对我来说很清楚。

嗯,我知道有大量的汇编指南在互联网上,但我不知道他们是多么可靠的这个教程:http://jakash3.wordpress.com/2010/04/24/x86-assembly-a-crash-course-tutorial-i/是非常有用的我,这是一种教程,只是一个简短的说明说明。这一点对我来说很清楚,但它并没有涵盖所有的汇编代码。

我希望有人能给一个好的指导/教程。

我认为汇编的标准指南是《汇编的艺术》。

如果您对x86汇编和所有指令的操作码感兴趣,请尝试使用英特尔手册(免费下载)。如果你想知道如何用汇编语言编程,可以参考Seth Carnegie的推荐。另一个下载是32位版本。

我从Matt Pietrek的《刚好够用的汇编语言》及其续集中学到了很多关于汇编语言的知识。这特别适用于想要读取编译器在调试器中发出的内容的C或c++程序员。

Pietrek的材料毋庸置疑,他写得清晰而有趣。不过,它是为Windows平台量身定制的。

这是一种不同的方法。我最近发布了一个通过实例学习汇编的初稿。但它不是x86汇编,这是有意为之的。先学习一个更好更容易理解的指令集,会让你通过基本的概念,从那里其他的指令集,包括x86通常是下载一个指令集参考所需的处理器的问题。https://github.com/dwelch67/lsasim

通常谷歌搜索xyz指令集会得到一些结果(而不是xyz选择你感兴趣的,手臂,avr, 6502等)。理想情况下,您需要供应商的文档,通常是免费的。不同的公司在x86上有如此多的变化,这增加了混乱。网上有很多很好的参考资料。对于其他家族,msp430、avr、arm、mips、pic等,可以经常去(核心处理器)厂商的网站找到很好的参考。Msp430,手臂和拇指也是很好的第一次指令集,如果你对lsa的东西不感兴趣。mips或dlx,所以我被告知,不幸的是,我还没有学会这些。Avr和x86在你学了一些其他的东西之后。Pic有一些特点,非mips的传统Pic指令集在其简单性和方法上当然具有教育意义,可能是x86的踏脚石(我也不一定推荐Pic作为第一个指令集)。我建议先学习一些非x86指令集。我建议先学习8088/86指令,我可以给你一个原始英特尔手册的ISBN号,可能在二手书店(网上)花几美元就能找到。很多网站也定义了x86指令集,我强烈建议在硬件上尝试之前先使用一个可见模拟器,这会让生活更容易…比如Qemu就不太显眼,也不容易让人看到。Gdb的模拟器至少可以步进并转储内容。

我真的很喜欢《Programming From the Ground Up》,这是一本免费的书,旨在以一种相当容易理解的方式教你ASM编程的基础知识。你可以点击这里查看:

从头开始编程