2010-12-01 2 views
2

Я хочу написать строку ассемблерного кода в C# и отправить ее в некоторый win32 api, чтобы скомпилировать и выполнить ее и вернуть результаты.Как написать код сборки из C#?

пример:

string str = "MOV 1,2;XOR EBP,EBP"... 

звучит как трудно сделать, но любое предложение было бы полезно.

+0

Могу ли я спросить, зачем вам это нужно? Для водителей или эффективности или других? – 2010-12-02 00:01:00

+0

, если это можно сделать, я собираюсь вручную создать простой алгоритм сортировки в сборке и сравнить его с .net C# one – 2010-12-02 00:03:20

ответ

5

Я сомневаюсь, что есть победа API для компиляции & выполнить сборку. Наверное, самое лучшее, что вы могли бы сделать, это написать файл, выполнить MASM (или что бы это ни называлось в эти дни), связать его, а затем выполнить результирующую программу. Я не могу представить, что вы пытаетесь сделать, но это будет в значительной степени последним способом, я попытаюсь решить практически любую проблему!

Если вы хотите сравнить собственный & управляемый код, просто напишите две программы, которые делают более или менее одно и то же. Нет причин для сборки сборки из .NET. Для этого вы можете использовать любой подходящий инструмент. MASM, debug и т. Д.

1

AFAIK отсутствует компилятор ассемблера, доступный как часть WinAPI. Вам нужно будет использовать некоторые из сторонних компиляторов (и ваша программа должна будет перераспределить его).

Однако вы можете использовать ilasm который является частью .NET framework. (Осторожно, однако, что это не компилятор Intel32, его источником является CIL код, поэтому инструкции, как xor ebp, ebp не будет работать.)

Смежные вопросы