В составе .Net Framework SDK поставляется ассемблер ILASM, который позволяет компилировать текстовые файлы, содержащие CIL-код и метаданные.
Программы в CIL-формате состоят из следующих лексических элементов:
идентификаторы;
метки;
константы;
зарезервированные слова;
специальные знаки;
комментарии.
Идентификаторы чаще всего представляют последовательности символов, начинающиеся с латинской буквы (или с символов «_», «$», «@» и «?»), за которой следуют латинские буквы, цифры или символы «_», «$», «@» и «?». Кроме того, для идентификаторов и меток существует особая форма записи в апострофах: она позволяет включать в идентификаторы любые символы Unicode. Например:
Label_1 $Name 'Идентификатор'
Несколько идентификаторов могут быть объединены в один с помощью точек. Например:
System.Console.WriteLine
Метка применяется для обозначения точки перехода. Признак метки - двоеточие после имени.
Целочисленные константы записываются либо в десятичной системе счисления, либо в шестнадцатеричной (тогда перед ними ставится префикс «0x»). Например:
128 -10 0xFF10B000
В вещественных константах точка используется для разделения целой и дробной части, а символы «e» и «E» служат для указания экспоненциальной части. Кроме того, поддерживается особая форма записи float32 (целая_константа) и float64 (целая_константа), позволяющая представить целое число в виде числа с плавающей точкой. Например:
5.5 -1.05e10 float32(128) float64(50)
Строковые константы записываются в двойных кавычках и могут содержать Escape-последовательности «\t», «\n» и «\xxx», где восьмеричное число xxx задает код символа от 0 до 255. Для переноса строковой константы на другую строку программы используется символ «\». Кроме того, для строковых констант поддерживается операция конкатенации «+». Например:
Комментарии в CIL-программах записываются так же, как в языке C#. Начинаются с символов //. Многострочные комментарии помещаются в пару особых скобок /*…*/.
Синтаксис строки кода:
Метка команда // комментарии
Следуйте этим рекомендациям:
Все инструкции должны начинаться с метки или пробела.
Метки не обязательны, если они используется, они должны начаться в столбце 1.
Один (или больше) пробелов должно отделять каждое поле. Символы табуляции интерпретируются, как пробелы.
Комментарии необязательны.
Мнемоника не может начинаться с 0 или 1, иначе это будет интерпретироваться, как метка.