【问题标题】:Learning assembler with no programming experience没有编程经验的学习汇编
【发布时间】:2013-02-14 10:07:57
【问题描述】:

除了阅读一些 ASM 操作数 (MIPS) 的最基本能力外,我没有任何编程经验。

由于病情严重,我有 1 年的空闲时间。这段时间我不能工作或外出,所以我决定要学习 ASM。

我对黑客游戏感兴趣;特别是 GameCube (PowerPC ASM) 和 PlayStation (MIPS ASM)。

对于像我这样的人正确学习 ASM 的最佳方式是什么?

我想要足够流利,我可以编写简单的程序,重要的是我能真正理解它,所以我可以在反汇编程序中查看游戏的功能(使用断点等)。

我基本上需要对我感兴趣的少量游戏进行逆向工程,以便我可以破解/更改/修改某些属性(当然完全合法)。

这对我来说只是一个爱好。我没有兴趣在这个领域找到工作;我的大学专业与编程完全无关,我不能在我的大学学习编程课程。

【问题讨论】:

  • 一本好书会让你前进。要对没有源代码的程序进行逆向工程,您需要一个或多个良好的调试器(并且您需要学习使用代码和数据断点以及单步执行)、一个或多个良好的反汇编器,以及很大的耐心。无论如何,要对代码进行任何重要的更改,您需要很好地学习相关的程序集。首先学习你喜欢的 asm,然后开始使用一个非常小的可执行文件来学习。在大的问题是如何在数千行代码中找到正确的指令。回到 DOS,Gametools (G3X) 拥有出色的内存扫描仪。

标签: assembly mips powerpc


【解决方案1】:

如果你想更深入地理解事物,那么我建议你看看像 Udacity 的 An Introduction to Computer Science 这样的课程,它教授使用 python 进行计算机编程的基础知识。

然后我会继续学习一些中级编程课程——比如数据结构理论——这听起来很无聊——但是如果你没有掌握高级语言的基础知识,你就会完全迷失在当您必须自己管理一切时组装!只有这样我才会看游戏汇编器——它通常比“hello world”先进得多!

我建议你不要太早去组装:-)

我没有挂断 Udacity - 但 GPU 编程课程刚刚开始 - 虽然它绝对是一门高级课程!

【讨论】:

    【解决方案2】:

    如果您想了解 MIPS 汇编程序,您应该获得一份 See MIPS Run 的副本。本书假设您对 C 语言有一定的了解。如果您不熟悉 C,可以使用很多书籍。 Programming in C Stephen G. Kochan 是我在亚马逊上找到的第一个有用的图片,尽管我从未读过它。

    (如果您的目标是了解特定游戏的工作原理,您可能会发现学习 Python 有点偏题。)

    【讨论】:

      【解决方案3】:

      要学习 MIPS,我使用 MIPSIT,这取决于您的环境。你可以得到一个实际的芯片或模拟/仿真。

      【讨论】:

        猜你喜欢
        • 2011-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-13
        • 2011-02-06
        • 1970-01-01
        相关资源
        最近更新 更多