什么样的项目(除了明显的OS东西)使用汇编语言?

JCC*_*CyC 10 x86 assembly programming-languages

看起来,除了开发设备驱动程序或OS内核的核心等以外,现在没有人使用程序集.任何人都知道它目前用于其他事情吗?

我的意思是PC风格和更​​大的硬件,而不是嵌入微小处理器的东西.

Sin*_*ion 9

或多或少显然,编译器后端和动态重新编译CPU模拟器等相关技术需要汇编编程.

汇编语言编程还以某种频率用于视频游戏编程,以利用当前编译器尚未很好支持的新CPU功能.然而,这种情况有点罕见,尤其是在PC上,有很多不同的CPU需要支持.不过,我认为这在具有统一硬件的控制台上更为常见.

编辑:这些天游戏在GPU中进行大部分计算.仅使用OpenGL或DirectX并不总是能够充分利用这些计算资源,这些处理器的供应商提供了大量工具来挤出更多的硬件.虽然Cuda或OpenCL是众所周知的术语,但它们仍然处于相对较高的GPU硬件抽象层次,填补的角色非常类似于C在典型(Von Neuman)CPU上的作用.看一下这些产品的开发者 页面,您会发现有几种方法可以最佳地使用GPU计算资源,并且可以在每个抽象层次上使用.


Nik*_*sov 9

像现代C++一样,Boost使用内联汇编来处理像原子共享计数器这样的低级性能关键位.

编辑:正如@TokenMacGuy正确指出的那样,"性能"在这里是一个错误的词.Boost使用汇编语言来处理标准C++中无法实现的事情,例如原子(并且由于某种原因,编译器内在函数不可用.)

  • 调用原子操作性能至关重要就像在M1坦克'高安全性'上召唤盔甲一样.它忽略了这一点.原子操作在汇编中编码,以确保它们实际上是原子的,而不是它们运行得更快.它们可能需要几毫秒的时间并且仍然有用,但如果它们不是原子的,那么完成所花费的纳秒数的小小并不重要. (3认同)