2013-02-10 3 views
0

Я все еще смущен тем, что код называется MSIL.Какой код MSIL? Является ли код, созданный ILDASM MSIL?

Среди других компиляторов C# создает сборку. ILASM также производит сборку. Эти сборки содержат MSIL?

Как насчет кода, созданного ILDASM при сборке в качестве входного сигнала? Является ли сгенерированный код под названием MSIL?

ответ

2

MSIL - это «машинный код типа», на котором C# компилирует ваш код .

CLR - это «машина», над которой работает MSIL.

При запуске MSIL CLR преобразует ваш код в real машинный код с использованием JIT.

Настоящий машинный код запускается на ваших компьютерах фактическим ЦП.

MSIL Assembler (Ilasm.exe) создает переносимый исполняемый файл (PE) из промежуточного языка Microsoft (MSIL). ILDASM - это дизассемблер, чтобы делать обратное.

Формат PE используется для EXE, DLL, SYS (драйвера устройства) и других типов файлов.

+0

Просто вопрос с подтверждением. Если кто-то попросит меня написать простую программу в MSIL, тогда мне нужно написать что-то похожее на код, сгенерированный ILDASM (взяв сборку программы, созданной компилятором C# (например) как вход ILDASM)? –

+0

Теоретически, написав MSIL, как показывает ILDASM, это сработает, хотя я думаю, что у вас будет больше успеха с [Rewrite MSIL Code on the Fly с .NET Framework Profiling API] (http://msdn.microsoft.com/en-us/ журнал/cc188743.aspx), и это тоже выглядит полезно http://csharpcomputing.com/Tutorials/Lesson8.htm –

2

MSIL = Microsoft Intermediate Language

MSIL является вывод всех компиляторов .NET. Он может быть выражен как код сборки MSIL или в двоичной форме - последний - это то, что вы находите внутри скомпилированных сборок.

2

Компилятор C# генерирует сборку. Ассамблея содержит метаданные и MSIL. VB.NET (теперь называемый просто VB) генерирует то же самое. Компилятор C/C++ также может создавать MSIL. Ассемблер IL (ILASM) может принять ИЛ и создать Ассамблею.

ILDASM - это дизассемблер. Вы можете найти подробную информацию о IL (MSIL) here.

+0

Итак, ILDASM можно рассматривать как средство просмотра MSIL (для просмотра MSIL в сборке)? –

+0

Да, это правильно. –

+0

Правильно. Вы можете просмотреть ИЛ и сделать это, открыв различные Классы. Скомпилируйте простое приложение HelloWorld, а затем откройте его, используя ILDASM HelloWorld.exe – John

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