有一个程序我想了解更多,但大部分是在 ASM 中。矩阵乘法
参考页在这里。
我了解 C++,但 ASM 部分有点模糊。有人可以解释吗?
该程序使用 SIMD(即 SSE)指令来优化矩阵乘法。考虑将其转换为 PHP 的方法是没有意义的,因为它是一种解释性语言 - 您无法以这种方式访问 CPU,哎呀,PHP 可能在甚至不提供这些指令的 CPU 上运行.
如果您想在 PHP 中执行此操作,您可以创建一个简单的、未优化的矩阵乘法例程,或者开发一个扩展。在后一种情况下,我建议使用其中一个规范的 BLAS 实现,而不是来自网络的一些随机代码片段。请参阅http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
您要查找的搜索关键字是decompiler
。AFAIK,您可能无法将 x86 程序集转换为 PHP 反编译器,因为可能没有人不需要它。
如果您的目的是了解汇编代码。C有很多反编译器。你可以理解阅读C代码。
在PHPMath上有一个用于 Java 的 JAMA 标准矩阵类的 PHP 端口,它提供了一套矩阵加法、减法、乘法、除法、变换等方法。它是用 PHP4 编码的,但不需要很多努力转换为PHP5。
虽然没有直接回答您关于 ASM 到 PHP 的问题,但给您一个现成的 PHP MatrixMultiply 可能会很有用