Как бы я пошел о преобразовании ASM в PHP? - PullRequest
1 голос
/ 31 июля 2010

Есть программа, которую я хотел бы понять немного больше, но большая ее часть в ASM. MatrixMultiply

Ссылочная страница здесь .

Я понимаю C ++, но часть ASM немного расплывчата. Может кто-нибудь объяснить?

Ответы [ 3 ]

4 голосов
/ 31 июля 2010

Эта программа использует SIMD (т.е. SSE) инструкции для оптимизации умножения матриц.Нет смысла думать о способе преобразования этого в PHP, поскольку это интерпретируемый язык - у вас нет доступа к ЦП таким образом, черт возьми, PHP может работать на ЦП, который даже не предоставляет эти инструкции.

Если вы хотите сделать это в PHP, вы можете создать простую неоптимизированную процедуру для умножения матриц или разработать расширение.В последнем случае я бы предложил использовать одну из канонических реализаций BLAS вместо некоторого фрагмента случайного кода из Интернета.Смотри http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms

1 голос
/ 31 июля 2010

Существует порт PHP стандартного матричного класса JAMA для Java поверх PHPMath , который предоставляет набор методов для сложения, вычитания, умножения, деления, преобразования и т. Д. Он написан на PHP4., но не занимает много работы по конвертации в PHP5.

Не отвечая непосредственно на ваш вопрос о ASM в PHP, может быть полезно дать вам готовый PHP MatrixMultiply

1 голос
/ 31 июля 2010

Поисковое ключевое слово, которое вы ищете: decompiler. AFAIK, Возможно, вам не удастся преобразовать сборку x86 в декомпилятор PHP, потому что никто не может найти это необходимым.

Если ваша цель - понять ассемблерный код. Есть много декомпиляторов для C. Вы можете понять, читая код на C.

...