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 学习汇编语言的利弊是什么?_Assembly - Fatal编程技术网

Assembly 学习汇编语言的利弊是什么?

Assembly 学习汇编语言的利弊是什么?,assembly,Assembly,在现代社会,学习汇编语言有什么意义呢?还是我应该坚持使用高级语言?我在学习汇编语言时也问了自己同样的问题 组装和理解硬件是如何工作的既有趣又有教育意义。您将了解编译器、CPU和内存的工作方式。您将学习一些小技巧,应用这些技巧可以优化代码。当你找到一份工作时,你可能永远也不会在装配方面工作。很好地理解机器的工作原理总是很好的 我过去常常将C代码翻译成汇编代码,以便为一个类对其进行优化。点始终取决于。。。仍然有一些公司希望您使用汇编编写(提供一些快速的驱动程序、一些极快的图形、一些可以在特定机器上实

在现代社会,学习汇编语言有什么意义呢?还是我应该坚持使用高级语言?

我在学习汇编语言时也问了自己同样的问题

组装和理解硬件是如何工作的既有趣又有教育意义。您将了解编译器、CPU和内存的工作方式。您将学习一些小技巧,应用这些技巧可以优化代码。当你找到一份工作时,你可能永远也不会在装配方面工作。很好地理解机器的工作原理总是很好的

我过去常常将C代码翻译成汇编代码,以便为一个类对其进行优化。

点始终取决于。。。仍然有一些公司希望您使用汇编编写(提供一些快速的驱动程序、一些极快的图形、一些可以在特定机器上实现的软件功能等)。从严格实用的角度来看,我相信能够在汇编中编写一些东西(编写一些程序只是为了学习一些一般规则)是非常好的,因为当你发现自己的工作是编写汇编代码时,你可以进一步学习,因为你已经有了一些经验(开始是最糟糕的)

另一方面,只考虑汇编没有多大意义,因为今天编写的大多数软件当然是高级(如果不是超高级)编程。因此,总结一下我的观点:是的,花一些时间研究汇编代码是很好的(由于汇编语言通常是相似的,如果你学会用一种汇编语言编写代码,它将永远是学习其他汇编语言的良好基础),但重要的是要记住保持开放的心态并学习几种语言,因为这只会提高你作为程序员的技能。

优点:

  • 你会更好地理解计算机
  • 你会更好地理解语言
  • 如果需要,您将能够编写一些真正令人尖叫的代码,或者遵循一些约束条件(例如,在微控制器上编写东西)。尽管通常C就足够了
缺点:

  • 你可能会成为一个自以为是的混蛋,因为你真正了解计算机,而让傻瓜受苦是一个很难解决的问题
  • 你可能会觉得有点像男人,开始攻击Linux内核或编写设备驱动程序

如果你只使用高级语言,总会出现一些你无法理解的问题,因为它们的根源在于计算机的实际工作方式。当然,编译器和Lanugage也只是程序,可能有bug,当你遇到这些bug时,你将无法理解它并运行它


另一方面,学习汇编可能会妨碍您对高级概念的理解,因此如果您对这两个方面都有很好的掌握,这是一个好主意。

了解编译器和CPU的工作原理以及如何在此基础上优化您自己的代码是很好的,但您可能永远不会直接编写汇编。可能的dup在@slebetman的例子中,我试图弄清楚学习新东西的犯人可能会有什么。这些是我唯一能想到的;)如果你认为学习新的东西必然会从大脑中排除以前学过的东西,那么你的工作可能会有缺点。例如,你可能会忘记如何编织或骑自行车。@lee,如果你在这种假设下工作,那么你会学习新的东西,不是吗?;)还有,写汇编会导致强迫症水平上升。