Написание ассемблерного кода для платформы .Net - PullRequest
7 голосов
/ 10 июня 2011

Я опытный разработчик C #, который для интереса хочет написать немного ассемблерного кода.Мне было интересно, проще ли было бы просто написать в байт-коде и каким-то образом использовать компилятор C #, компоновщик в любом случае.Я немного не уверен в том, как это сделать.

Или, может быть, есть приличный язык ассемблера с пошаговым отладчиком и другими приятными вещами, поставляемыми в среде, которую я должен вместо этого выбрать?

В основном я хочу написать код для выполнения расчетов и вывода в окно консоли.

Ответы [ 5 ]

6 голосов
/ 10 июня 2011

Вы можете написать код IL и скомпилировать его с помощью ILASM

3 голосов
/ 10 июня 2011

Вы можете написать это в MSIL и собрать его через ассемблер MSIL ( ilasm.exe ).

Что касается отладчика, который я ранее использовал DILE (DotNet IL Editor) для пошагового перехода по IL-коду, оно немного устарело, хотя .

Кажется, что DILE все еще обновляется, посмотрите еженедельных сборок .

3 голосов
/ 10 июня 2011

Вы можете использовать язык ассемблера среды .net, который называется CIL

http://en.wikipedia.org/wiki/Common_Intermediate_Language

2 голосов
/ 10 июня 2011

Вы не можете использовать компилятор C # для написания ассемблерного кода.Тем не менее, вы можете использовать проекты Visual Studio "CLR", которые будут компилировать нативный C / C ++ со встроенными сборочными блоками, которые вы можете написать управляемую оболочку, чтобы вы могли вызывать ее через C #.См. CLI / C ++ Tutorials для получения дополнительной информации.

Вы также можете посмотреть masm32 , который можно использовать для написания собственных библиотек сборок x86, а затем использовать p / invoke длявыполнить их через C #.

Веселиться!

0 голосов
/ 10 июня 2011

Это может быть полезно для других

Что касается редактирования MSIL, мы можем выгрузить файл сборки в файл IL утилитой ILDASM и перекомпилировать его в файл сборки утилитой ILASM,

Две утилиты включены в .NET SDK.

  • C: \ Program Files \ Microsoft Visual Studio 8 \ VC> ildasm.
  • Откройте вашу сборку, например. my.dll
  • После открытия файла выберите Файл-> Дамп. Убедитесь, что все флажки установлены, и нажмите кнопку ОК. Вам будет предложено сохранить его как файл IL. Я рекомендую создать новый каталог для сохранения как my.IL
  • Откройте my.IL с помощью вашего любимого инструмента редактирования (я использую Visual Studio .NET 2005/2003).
  • Отредактируйте свой my.IL и сохраните его.
  • C: \ Program Files \ Microsoft Visual Studio 8 \ VC> ilasm / DLL X: \ Folder \ my.IL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...