因此,正如其他人所说,MIPS是RISC ISA的一个很好的例子,并且仍然获得了很多设计胜利。我认为学习它是有用的。
我发现以下书籍的第一版是学习它的好方法:
虽然这并不是必须的,但它是一种很好的RISC-ish架构示例。再加上IBM 360架构(真的!),你就可以对常规指令集的范围有很好的了解。
其他问题已经很好地证明了越来越过时的架构:学习汇编本身就是有用的。但在你的情况下,这并不适用。
我认为只有在假设您已经具备汇编语言知识的前提下才考虑这门课程(否则您将花费大量时间重复基本概念)。否则,您可能最好将时间花在更相关的事情上(除非您对不久将来要使用特定处理器(系列)有很高的期望,否则不太可能是另一个汇编器)。
为什么不学习一些新东西(例如函数式编程)呢?
当我还在学校时(2008年密歇根理工大学计算机科学专业),我们在必修的“计算机体系结构导论”课程中学习了 MIPS 汇编语言(在 SPIM 上运行),该课程还涵盖了不同类型的体系结构、高速缓存、DMA 等等。我们还学习了逻辑门和动态/静态内存是如何由二极管、电容器和晶体管等低级组件构建而成的基础知识(我们没有深入研究;这是一门计算机科学课程)。我们使用逻辑模拟软件(基本上是 AND/OR/等门,您可以将其拖放到网格上并进行连线)来构建加法器、ALU,最终根据机器码规范、汇编器、示例程序和示例输出构建一个非常简单的 16 位 RISC 处理器。
如果是那种课程,我认为它会非常有价值。我发现那门课程的知识对于理解操作系统课程中的内容(虚拟内存/分页/高速缓存、中断等等)以及后来理解 JVM 如何处理字节码非常有用。理解汇编语言如何映射到机器码,如何映射到多路复用器、ALU 和寄存器,使我之前认为是魔法的东西变得微不足道且易于理解。
否则,这只是为了让你的工具箱增加另一个指令集,而MIPS可能不是最好的选择。与x86相比,它非常容易/直接/规则化,因此您在课程中不应该遇到太多麻烦。但是,它是否有价值?如果您对汇编语言有一般的了解并且出于某种原因需要它,那么您可能可以很容易地学会它,而无需上课。如果你是一个低级别的爱好者,那么这可能值得一试,但你可以在一个周末自学MIPS,所以我想这门课程不仅仅是关于MIPS编程。如果这是一门使用MIPS的计算机硬件理论课程,那么我认为这很值得你花时间。
然而,如果这只是MIPS编程,并且你已经掌握了x86汇编和低级别编程的概念,我会建议你放弃这门课程。节省时间和金钱,花费一个周末左右使用SPIM来尝试MIPS,就像schnaader指出的那样。
还要记住,如果你从未在汇编中编写过递归函数,那么你还没有足够地探索这些内容。