我真的很想学习汇编。我非常擅长 c/c++,但希望更好地了解较低级别的情况。
我意识到以前曾提出过与装配相关的问题,但我只是在寻找一些特别适合我的情况的方向:
我正在运行 Windows 7,并且对如何开始使用程序集感到困惑。我是否必须从 x64 开始,因为我正在运行 Windows 7?有人说“先从 32 位开始”——我该怎么做呢?我的操作系统与我为“32”或“64”位编写程序集的能力有什么关系。实际上,“n 位”汇编是什么意思,其中 n 是一个数字?
编辑:
以下是一些帮助我开始组装的链接;其他刚入门的人可能会发现它们很有帮助。当我继续我的组装之旅时,我会不断更新这个列表:)
注意:正如我一直在学习的那样,我决定专注于使用 masm32 进行编程。因此,以下大部分资源都集中在这一点上。
- x86 标记 wiki(初学者指南、参考手册、ABI 文档等。)
- www.masm32.com
- X86 组装维基书
- X86 Dissassembly WikiBook(非常适合理解一些约定,以及高级代码如何转换为汇编的基础知识)
- WinAsm IDE(与 masm32 配合得很好)
- 简介:Windows 程序集(所有代码示例均适用于 masm32)
- 中断列表
- 装配教程(非常有助于理解核心概念)
- x86 组装指南
Agner Fog 的软件优化资源,包括一些关于在不同平台(Windows 与 Linux/OS X)上调用约定的好东西,以及许多如何有效地做特定事情的例子。不适合初学者,但适合中高级读者。
(他还为 Intel 和 AMD CPU 的每条指令提供了详细的性能信息,非常适合进行认真的性能微优化。一些初学者可能想看看其中的一些内容,以开始思考 CPU 的工作原理,以及为什么你可能会做某事方式而不是另一种方式。)