gpt4 book ai didi

programming-languages - 值得学习汇编语言吗?

转载 作者:行者123 更新时间:2023-12-04 08:20:39 26 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

10年前关闭。



Improve this question




学习ASM还值得吗?

我知道一点,但我还没有真正使用它或正确地学习它,因为我在汇编程序中学习做的所有事情我可以在 1/10 的时间内使用 C 或 C++ 等语言完成。那么,我真的应该学习和使用 ASM 吗?它对我的专业有好处吗?它会增加我的机智吗?简而言之,它会让我成为一个更好的程序员吗?

注意:我说的是 FASM 或 NASM 之类的低级汇编,而不是 HLA(高级汇编器)之类的东西。

最佳答案

我从 Kip Irvine's 学到的书。如果你忽略对他的(不相关的)库的(公平的)批评,我可以推荐它作为对语言本身的一个很好的介绍——尽管对于真正有趣的东西,你必须在网上寻找痴迷者。

我认为了解较低级别发生的事情很有用。在研究汇编程序时,您将了解 CPU 流水线、分支预测、缓存对齐、SIMD、指令重新排序等。了解这些将帮助您编写更好的高级代码。

此外,传统观点是大多数时候不要尝试手动优化程序集,而是让编译器担心它。当你看到一些编译器生成的扭曲事物的例子时,你会更好地理解为什么传统智慧成立。

示例:LFSR 使用带进位旋转指令运行得很快,对于这样的特定情况,编写汇编程序版本就像发现编译器是否足够聪明以解决它一样容易。有时 you just know something编译器没有。

它还增加了您对安全问题的理解——写入或执行、堆栈溢出等。

一些 concurrency只有当您了解每个指令级别发生的事情时,问题才会变得明显。

如果您没有完整的源代码,它有时在调试时会很有用。

有好奇心的值(value)。无论如何,虚拟功能是如何实现的?曾经尝试过用汇编程序编写 DirectX 或 COM 程序吗?大型结构如何返回,调用函数是否为它们提供了空间,反之亦然?

然后是图形硬件的特殊汇编语言,尽管着色器语言在几年前就达到了高级水平,但任何让您以不同方式思考问题的东西都是好的。

关于programming-languages - 值得学习汇编语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com