【问题标题】:Beginners Assembly Language [closed]初学者汇编语言[关闭]
【发布时间】:2009-12-19 09:19:39
【问题描述】:

可以从哪里开始学习汇编语言?你能推荐一些可以让我开始使用它的地方吗?

【问题讨论】:

  • 你想学哪种汇编语言?
  • 这在很大程度上取决于您的目标应用程序(平台),是用于微控制器(8086、PIC)、PC(Windows、Linux)还是其他?用一些细节更新你的答案可能会有所帮助。
  • 在制作操作系统之前,您还有很长的路要走,而且您不必在 Assembly 中编写它。最流行、最糟糕、最臃肿的汇编语言是 x86。也许先尝试 powerPC 或 Sparc。你可以在某个地方找到这些教程。
  • 你想从那个层面构建一个操作系统的事实令人心旷神怡!

标签: assembly


【解决方案1】:

几个月前我尝试过Programming from the Ground Up,它对我开始使用 x86 汇编有很大帮助。而且,它是免费的:)

【讨论】:

    【解决方案2】:

    回到大学时,我曾经使用很棒的 8086 Microprocessor Emulator 在 Windows 上进行汇编编程。在其网站上有beginner tutorials

    无论您使用什么资源,在学习汇编时保持耐心很重要。阅读前一百页时,您可能一无所知,继续阅读,最终您会全部理解。

    【讨论】:

    • 教程页面有更新的链接吗?
    • 新手教程页面现在找不到了。
    【解决方案3】:

    如果您使用的是 Windows 并且拥有 x86 处理器:

    1. 获取Assembly Language for Intel-Based Computers,这是有关该主题的最佳书籍之一。或者,您也可以尝试 Randall Hyde 的免费在线 Art of Assembly Language 书籍。
    2. 下载Masm32 assembler,您将使用它来将您的汇编代码编译成可执行文件。
    3. 而且,如果您喜欢 IDE,也可以获取 Winasm。它将大大简化代码编辑。

    【讨论】:

      【解决方案4】:

      对于 Win32 汇编编程,这是一个好的开始:

      Iczelion Tutorials

      【讨论】:

        【解决方案5】:

        学习汇编程序恕我直言,最好的方法是反汇编编译的代码,并首先在内联汇编程序中使用它,这允许您在 HLL 中围绕它编写东西。这是完整 asm 之前的一个很好的中间步骤。

        我是在 Turbo Pascal 中以这种方式学习的,但 Delphi 和 e.g. Free FreePascal 今天仍然支持这一点。 (比例如 gcc 内联 asm 更容易)

        【讨论】:

          【解决方案6】:

          我从 MIPS(一种 RISC 微处理器)开始学习汇编。可以从作者的网站免费下载和安装一个名为 SPIM 的模拟器。 http://pages.cs.wisc.edu/~larus/spim.html

          SPIM 提供了一个易于使用的界面,带有一个控制台来返回结果。用户还可以从模拟器中检查寄存器。

          SPIM 的作者推荐了许多有用的资源,可在网站上找到(向下滚动到“资源”)。

          【讨论】:

            【解决方案7】:

            Assembly Language Step by Step 杰夫·邓特曼。很好的介绍性文字,还将讨论设置调试器和文本编辑器 (kate) 以使用程序集的基础知识。

            【讨论】:

              【解决方案8】:
              【解决方案9】:

              对于初学者来说,应该知道汇编语言对于不同的 CPU 系列是不同的。

              虽然长得一模一样,但又不一样。

              基于 x64 的处理器的汇编语言不能在 IBM 大型计算机上运行。

              汇编器将程序从汇编语言翻译成机器语言。

              反汇编程序执行相反的功能。

              更多介绍:What is Assembly Language in Computer Programming | Freshers Talent

              【讨论】:

                【解决方案10】: