【问题标题】:Assembly learning resources?装配学习资源?
【发布时间】:2012-04-20 13:59:22
【问题描述】:

我正在寻找一种良好、简洁、结构化的方式来开始学习 x86 ASM。我有使用 Perl、Python 和 C/C++ 的经验,并且我一直想“深入了解”可以这么说已经有一段时间了,但每次我研究它时,我都发现除了令人困惑、冲突和很大程度上之外什么都没有日期信息。我对 MASM、FASM、HLA 和其他一些我在谷歌上搜索时发现的东西感到困惑,但它们似乎都没有提供我正在寻找的东西:快速介绍,其中包含关于细节低级的良好信息ASM 世界。我不希望 HLA 之类的东西给你 stdout.put() 之类的东西。我希望能够看到实际的中断被调用,并了解一切是如何做的。有什么建议吗?

【问题讨论】:

  • 你的操作系统是什么?(以便我提供更多建议;我已经发布了答案)
  • 我主要运行 Windows 7,但我有运行 Ubuntu 和 FreeBSD 的机器。
  • 我建议你使用 ubuntu 和 freebsd 的,因为它们有更好的文档记录。更重要的是,你肯定发现它们也更“程序员友好”。(我个人更喜欢 freebsd由于它的死板,Linux(尤其是 ubuntu)拥有更大的社区。​​span>

标签: assembly x86 asmx


【解决方案1】:

Assembly 有明确的圣经:Art of Assembly。更重要的是,它可以在线免费获得!它有点过时了,这很好,因为你可以学习基础知识而不需要深入研究复杂的新“功能”仅对操作系统有用。

(来源:computer-books.us

一些提示:

  • 使用 nasm,它是 unix 和 windows 世界中的“标准”编译器,语法与书中使用的 masm 非常相似。(并不是说它更好,只是更好地记录)。

  • 你是对的,HLA 是错误学习汇编的方法。为高级语言保存它:)

  • 您可以在操作系统之上运行程序,或者使用Virtualbox

  • 一开始就尝试“坚持到底”。也就是说,没有库,除了汇编之外别无其他。机器本身不提供任何东西。

  • 一旦掌握了理论(这很重要!),您可以尝试阅读有关 bios 功能,特别是打印到屏幕的功能(它们非常简单),以便您可以在虚拟机或真实硬件上测试您的代码很快。

  • 尽管没有必要,您也可以尝试学习 c,因为它们与汇编共享低级概念,并且与 c++ 相当相似。

参考资料:

快速hello world tutorial 让您开始使用 linux。

bios functions(实际上是中断调用)。

【讨论】:

    【解决方案2】:

    您应该尝试 MIPS 汇编,如果您想了解汇编的工作原理,它会更容易也更好。有一个叫 MARS 的模拟器可以在这里下载:http://courses.missouristate.edu/KenVollmar/Mars/download.htm

    这可以帮助你哟:http://www.inf.pucrs.br/~calazans/undergrad/arq1/mips/cod-appa.pdf

    抱歉没有正确回答您的问题。

    【讨论】:

    • 这个模拟器看起来很有趣,一定要研究一下,谢谢!
    【解决方案3】:

    对于概念,从基础书籍开始总是好的。我会推荐 Kenneth J. Ayala 的书“8086 Microprocessor: Programming and Interfaceing the PC”。它是世界各地许多大学使用的教科书,将向您介绍该主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 2011-05-30
      • 2011-07-02
      • 2011-07-18
      • 2010-10-04
      • 1970-01-01
      相关资源
      最近更新 更多