Assembly 我为什么要在2018年学习汇编语言?

Assembly 我为什么要在2018年学习汇编语言?,assembly,microprocessors,emu8086,Assembly,Microprocessors,Emu8086,我是计算机科学的学生。在我的第五学期,我必须学习汇编语言。在我的课堂上学习了6/7周后,我才知道这门汇编语言的学习将教会我有关微处理器的知识。但我想知道,2018年学习汇编语言有什么优势吗?如今人们学习汇编语言的主要原因有两个: 开发高性能的代码——通常是针对微控制器的,尽管C在这些方面已经相当普遍,因为据我所知,它“足够有效” 为了更好地理解您通常编写的高级代码实际上是如何工作的。这使您能够理解哪些活动的计算成本更高、内存效率更低或类似,这意味着您可以在高级别编写更高效的代码 免责声明:我目前

我是计算机科学的学生。在我的第五学期,我必须学习汇编语言。在我的课堂上学习了6/7周后,我才知道这门汇编语言的学习将教会我有关微处理器的知识。但我想知道,2018年学习汇编语言有什么优势吗?

如今人们学习汇编语言的主要原因有两个:

  • 开发高性能的代码——通常是针对微控制器的,尽管C在这些方面已经相当普遍,因为据我所知,它“足够有效”
  • 为了更好地理解您通常编写的高级代码实际上是如何工作的。这使您能够理解哪些活动的计算成本更高、内存效率更低或类似,这意味着您可以在高级别编写更高效的代码

  • 免责声明:我目前正在学习CS相关课程,去年我学习了MIPS组装,这就是他们给出的原因。完全有可能某些行业有更多的利基理由了解汇编。

    汇编有助于您熟悉计算的基本原理。它基本上是从头开始工作,进行计算,这是我们现在用高级语言编码时理所当然的

    这可以比作研究历史。虽然在计算机时代它可能看起来很古老,但你正在学习的东西非常活跃,并被用于许多行业。通过这项研究,我们能够看到这个过程是从哪里开始的,以及它是如何发展到这一点的,在这一点上,我们主要使用较新的语言,而不用担心机器代码及其复杂性


    如果您不直接使用汇编语言,就没有必要学习汇编语言。然而,如果您想进行低级编程、逆向工程或了解编写代码时实际发生的情况,那么研究汇编将非常有用

    是的,编译器生成的二进制文件的性能分析是了解asm的一个原因。它让你回答问题。准确地理解没有优化的编译意味着什么。或者它对于真正的编译器开发人员很有用,或者当您看到它们生成的代码比它可能生成的代码更糟糕时,您可以在gcc/clang中归档遗漏的优化错误:P相关:有关调整C源代码以提高编译效率的更多信息,与你所能做的优化相比,你不能用手来控制编译器。(因此,如果整个程序中的一个循环非常重要,您可以这样做。或者对于libc
    strlen
    …因为它很有趣。ASM现在仍然是计算机的工作方式。它更像是学习物理,而不是历史;基本的细节。(re:history:我建议不要使用DOS系统调用学习16位x86。)(OP使用的是emu8086标记)。这只会让你自己的生活变得困难,与使用32位或64位代码的平板内存模式相比,使用的系统调用或库与桌面上的实际程序实际使用的系统调用或库是一样的。请参阅中的一些早期链接以获取学习建议。或者使用MIPS模拟器或其他什么,稍后再访问x86!)不仅它的知识是有用的,还有许多工作需要你将这些知识和程序应用到组装中,或者利用你的阅读和理解能力进行逆向工程。我希望所有的学校都能教授组装和C更多。当我向某人推荐一所计算机科学学校时,我的主要关注点之一是他们是否教Ch组件或C。