我有一个问题想问所有热衷于低级黑客技术的人。我在一篇博客中看到了这句话。我认为源并不重要(如果你真的在意,它是Haack),因为这似乎是一个常见的说法。
例如,许多现代三维游戏都使用C++和汇编语言编写其高性能核心引擎。
至于汇编代码-是因为您不希望编译器发出额外的指令或使用过多的字节,还是因为您在使用更好的算法,这些算法无法用C语言表达(或无法表达而不被编译器干扰)?
我完全理解了解低级别的东西的重要性。我只是想了解为什么在了解了它之后要在汇编中编程。
我有一个问题想问所有热衷于低级黑客技术的人。我在一篇博客中看到了这句话。我认为源并不重要(如果你真的在意,它是Haack),因为这似乎是一个常见的说法。
例如,许多现代三维游戏都使用C++和汇编语言编写其高性能核心引擎。
至于汇编代码-是因为您不希望编译器发出额外的指令或使用过多的字节,还是因为您在使用更好的算法,这些算法无法用C语言表达(或无法表达而不被编译器干扰)?
我完全理解了解低级别的东西的重要性。我只是想了解为什么在了解了它之后要在汇编中编程。
我只与一名开发者谈过他在汇编语言方面的使用。
他正在为一个便携式mp3播放器的控制固件工作。
使用汇编语言有两个目的:
我继续编写的唯一汇编代码是为了具有有限资源的嵌入式硬件。正如leander所提到的,汇编仍然非常适用于中断处理程序,其中代码需要快速且易于理解。
对我来说,第二个原因是保持我的汇编知识功能性。能够检查和理解CPU执行我的命令所采取的步骤感觉很好。
如果我能够比GCC和Visual C++ 2008(也称为Visual C++ 9.0)表现更优秀,那么人们会对如何做到这一点感兴趣。
这就是为什么目前我只是阅读汇编代码,并在必要时写入__asm int 3的原因。
希望这有所帮助...
我已经有几年没有写汇编代码了,但我曾经写汇编代码的两个原因是:
我一直在考虑重新开始写汇编代码,但这只是为了迎接挑战和享受过程的乐趣。我没有其他理由去这样做 :-)
在安卓手机上解释Java应用程序的字节码的Dalvik虚拟机使用汇编语言作为调度程序。这个电影(大约31分钟,但是值得观看整部电影!)解释了:
“仍然有一些情况,人比编译器做得更好。”