我了解以汇编语言编写任何内容或将汇编语言添加到任何程序均会损害其可移植性。但是,情况有多糟?我的意思是,这些天基本上所有的PC都是x86或x64,对吗?因此,如果我将程序集嵌入到C程序中,那么无论它在哪里运行,为什么都还不能编译呢?
这种不可移植性的概念仅指的是当您真正深入研究特定处理器的特定怪癖,从而从一段代码中挤出性能的每一个下降时吗?
如果我没记错的话,PC游戏“过山车大亨”几乎完全是用汇编语言编写的。那么……真的会多么不便携?
最佳答案
当然,除了处理器本身外,还有其他注意事项:目标平台上的调用约定是什么? struct
值如何传递给其他(例如API)函数?被调用者可能破坏哪些寄存器?哪些可以保留给调用者?如何进行系统调用?进程启动时,操作系统为您准备了什么内存布局?
关于assembly -/really/汇编语言有多难移植?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1442921/