代码之家  ›  专栏  ›  技术社区  ›  Liran Orevi

作为第二种汇编语言学习MIPS?

  •  3
  • Liran Orevi  · 技术社区  · 17 年前

    我知道x86汇编(并与FPGA等合作过),从未为RISC写过,我有机会参加MIPS课程, 但我现在很忙,所以我的问题是, 我知道我学到的每一件事在某种程度上都是有益的, 但是,真的,有多少好处呢? (我是一个低水平的热心者,但这是必须的吗?)

    (我知道 mips-is-it-important ,但我觉得我的情况略有不同,因为我已经知道某种组装方式)

    谢谢。

    7 回复  |  直到 17 年前
        1
  •  5
  •   RussellH    17 年前

    关于mips,一个有趣的事情是您必须手动管理翻译后备缓冲区(translation lookaside buffer,TLB)。你不必使用x86(或者我编写的大多数其他ISA)来实现这一点。这样,它比其他RISC CPU更具风险。许多网络和存储设备都嵌入了MIPS CPU。我在这十年的早期工作的一家初创公司开发了一个16核的MIPS CPU,带有加密加速器(作为两个协处理器)。这种设计是由杜松子网络公司购买的,并用于路由器中的自适应服务。

    因此,正如其他人所说,MIPS是RISC ISA的一个很好的例子,而且它仍然获得了大量的设计胜利。我认为学习是有用的。

    我发现下面这本书的第一版是学习它的好方法:

    http://www.amazon.com/Second-Morgan-Kaufmann-Computer-Architecture/dp/0120884216/ref=sr_1_1?ie=UTF8&s=books&qid=1237328559&sr=1-1

        2
  •  2
  •   Charlie Martin    17 年前

    当然不是 必须 但是这是一个很好的RISC体系结构的例子。再加上IBM 360体系结构(诚实!)你应该对正常指令集的跨度有很好的了解。

        3
  •  2
  •   schnaader    17 年前

    我认为学习mips(至少是基本的)并不难,还有 the SPIM simulator 您可以用来监视代码运行。如果你喜欢低级编程,那值得一试。

        4
  •  1
  •   Community Mohan Dere    9 年前

    这个 other question 对于一个日益过时的体系结构有一个很好的理由:学习组装本身是有用的。在您的情况下,这不适用。

    只有当课程假定已经掌握了汇编程序的知识时,我才会考虑这门课程(否则您将花费大量时间重复基本概念)。否则,您最好将时间花在更相关的东西上(这不太可能是另一个汇编程序,除非您对很快使用特定处理器(系列)有很高的期望。

    为什么不学习一些新的东西(例如函数式编程)。

        5
  •  1
  •   Adam Jaskiewicz    17 年前

    当我在学校(BS CS Michigan Tech 2008)时,MIPS组装(在SPIM上运行)在所需的“计算机体系结构简介”课程中授课,该课程还涵盖了不同类型的体系结构、缓存、DMA等。我们还学习了逻辑门和动态/静态存储器是如何由诸如二极管、电容器和晶体管之类的低级元件构成的非常基础的知识(我们并没有深入了解,这是一门CS课程)。我们使用逻辑模拟软件(基本上是和/或/或/等门,你可以把它们拖放到一个网格上并连接在一起)来构造一个加法器、一个ALU,最后是一个非常简单的16位RISC处理器,给出了机器代码规范、汇编程序、样本程序和样本输出。

    如果是那样的课程,我会说它很有价值。我发现这个类的知识对于理解我的操作系统类中的内容(虚拟内存/分页/缓存、中断等)以及以后理解JVM如何处理字节码非常有用。理解汇编映射到机器代码映射到多路复用器、ALU和寄存器是如何产生很多东西的,我几乎认为这些东西在微不足道和易于理解之前是神奇的。

    否则,这只是为工具带添加另一个指令集,而MIP可能不是要使用的指令集。它 与x86相比非常简单/简单/常规,所以您不应该在课堂上有太多的麻烦。不过,有价值吗?如果你对组装相当满意,并且出于某种原因需要,你可以很容易地在不上课的情况下拿起它。

        6
  •  1
  •   James McMahon    17 年前

    如果你的低级爱好者可能值得,但你可以在周末自学mips,所以我想这门课会比用mips编程更重要。如果这是一门使用MIPS的计算机硬件理论课程,那么我认为这是值得你花时间的。

    但是,如果它只是mips编程,并且您已经拥有了x86程序集的句柄和低级编程的概念,那么我会说是传递类。节省你自己的时间和金钱,花一个周末左右的时间用 SPIM 施纳德指出。

    还要记住,如果您从未在程序集中编写递归函数,那么您对这些内容的探索还不够。

        7
  •  1
  •   Rev316    17 年前

    我的一个课程强迫我们学习mips汇编语言。嗯,技术上……它是我们自己的定制架构,但主要基于MIPS。结论,做吧。虽然我不喜欢这么低的金属加工,但了解装配对我有无限的帮助。