Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly MIPS-重要吗?_Assembly_Mips - Fatal编程技术网

Assembly MIPS-重要吗?

Assembly MIPS-重要吗?,assembly,mips,Assembly,Mips,我的问题是:了解MIPS编程语言有益吗 我是一名计算机科学专业的学生,正在参加一个以MIPS为重点的组装课程。我很喜欢用高级语言写作,但Mips让我有点沮丧 MIPS是我真正应该关注并尝试完全掌握的东西吗?它将来会对我有帮助吗?大约两年前,我参加了一个汇编课程,学习mips。我发现自己在用类似于asm语言的mips编写GameBoy Advance游戏。不能说我喜欢它 尽管我认为了解汇编代码的内部工作(从高级到低级)是很好的。我觉得这让我更加了解了计算机的实际工作原理。此外,不久之后,我忍不住制

我的问题是:了解MIPS编程语言有益吗

我是一名计算机科学专业的学生,正在参加一个以MIPS为重点的组装课程。我很喜欢用高级语言写作,但Mips让我有点沮丧


MIPS是我真正应该关注并尝试完全掌握的东西吗?它将来会对我有帮助吗?

大约两年前,我参加了一个汇编课程,学习mips。我发现自己在用类似于asm语言的mips编写GameBoy Advance游戏。不能说我喜欢它

尽管我认为了解汇编代码的内部工作(从高级到低级)是很好的。我觉得这让我更加了解了计算机的实际工作原理。此外,不久之后,我忍不住制造了一些虚拟机,设计了自己的汇编语言:)

在某一点上(在90年代),MIPS衍生的处理器是世界上最畅销的处理器,使英特尔x86处理器的销量相形见绌。这是因为他们在嵌入式市场的巨大影响力。我认为现在基于ARM的处理器可能已经取代了这个头衔,但仍然有大量的嵌入式系统使用MIPS

即使在你们的职业生涯中从来并没有在汇编程序中编写过MIPS芯片,汇编语言也是很有用的。如果您对编译器将要发出的内容有一些了解,它可以帮助您编写更高效的高级代码。其他仍在使用的领域包括编译器(自己编写)、设备驱动程序和多媒体编程(需要MMX或SSE的代码通常仍由汇编程序手工编写)


每种CPU类型都有不同的指令集,但有足够的通用性,一旦你学会了一种汇编语言(在你的例子中是MIPS),其他的应该很容易学会。

了解计算机的极低级别是很有帮助的。例如,有些开发人员会说CPU执行某种“新对象”指令。当然没有这样的指令,对象的管理发生在更高的抽象层次上。理解这种区别很好,这样您就可以理解为什么对象创建可能很昂贵(或不昂贵),或者为什么受保护的地址空间可以使系统更健壮

我在学校时,在IBM大型机上使用System/360指令集教授组装课程。在我的职业生涯中,我从来没有在这样一台机器上工作过,但是对CPU外观的了解是很有价值的

现在我在使用MIPS处理器的嵌入式系统上工作。实际上,我花了相当长的时间研究MIPS程序集列表,并为引导向量和同步原语编写了一些MIPS程序集。然而,即使你从来没有用汇编语言写过任何东西,理解CPU操作仍然是有价值的。

我想你说的“mips编程语言”是指mips汇编语言

了解汇编语言是有益的,它可以帮助您将编写的代码映射到它将如何在硬件上运行。这有助于使您暴露于更低级的问题,如缓存未命中、分支、无序执行,以及编写高级代码时不会想到的其他事情


MIPS组装是否对您有用取决于您计划从事的职业。我个人认为X86/X64(在PC中流行,直接适用于如果你在PC上写C++或C语言),PPC(越来越流行,用于游戏控制台,也暴露给RISC)或ARM(在许多嵌入式设备,如移动电话中)可能是更好的选择。


Broadcom最近似乎在生产带有MIPS或ARM芯片的Wifi卡(我不确定是哪一种,文档上说是一种,固件上说是另一种)。然而,在较新的芯片上,我们仍在等待linux支持与所有功能的启用,因此,出于这个原因,我很高兴你学习。(现在给我写一些驱动程序:P)

汇编语言总是值得学习的。您可能没有被教授或看到编译器如何将高级语言代码转换为汇编代码,但我认为了解汇编语言最重要的好处是知识。令人清醒的是,即使在最高优化级别上,许多编译器的效率也是如此之低。(大多数编译器会根据请求为您转储汇编代码,而不是继续进行机器代码和链接。)


也就是说,MIPS asm可能是无用的,因为现在几乎没有人使用MIPS。(以前是SGI,但现在他们的机器都在x86/IA-64芯片上。)如果您觉得汇编语言很有吸引力,并且想进一步在汇编中工作,请学习ARM指令集。ARM只比MIPS复杂一点,几乎所有的手机、智能手机和PDA现在都使用ARM芯片(由几十家制造商制造)。iPod使用ARM,我认为Zune也使用ARM

MIPS是学习汇编语言的好工具。您有大量的通用寄存器,以减少编写程序的繁琐,并且它是RISC体系结构,因此您需要记住的指令更少


有一些主流用法没有很多人提到,N64、Playstation 1、Playstation 2和PSP都使用MIPS处理器。

在你的例子中,我认为MIPS被用作辅导工具。这是一门计算机科学课,他们不是给你代码猴子工具,而是试图教你一些更广泛的概念,这些概念在更简单的体系结构(如MIPS)上比在x86上更容易举例说明


不要期望它进入你的“程序员工具箱”。出于编写低级代码的实际目的,最好以后再学习x86汇编语言。

我去年学习了MIPS。MIPS是一种重要的语言,但不幸的是,您可能永远不会使用MIPS。你会学到一些基本的东西,但不需要