了解MSIL(CIL)关键字中的点

时间:2014-10-18 20:32:36

标签: .net cil intermediate-language

我正在使用MSIL(CIL)代码着色器,即使我对MSIL并不熟悉。

我找到了Common Language Infrastructure (CLI)中所有关键字的列表。

这些关键字包含add.fileconv.i4unaligned.等内容。

我正在努力争取点作为关键字的一部分。我非常确定需要成为关键词的一部分,因为我不认为i4之类的东西是他们自己的关键词。而且我非常确定我希望某些关键字一开始的点是该关键字的一部分。

但是那些有尾随点的少数呢,比如最后一个呢?是否有任何理由认为尾随点是关键字的一部分?

1 个答案:

答案 0 :(得分:4)

点是这些指令的一部分(我不知道原因)。还有其他几个前缀说明,例如unaligned.volatile.constrained.readonly.tail.。 (我不确定是否列出了所有这些,但关键是,你的解析器必须识别这些。)

volatile.的文档特别提到在应用指令之前必须至少有一个空格。例如:

volatile. ldind.i4 // Correct

volatile.ldind.i4 // Syntax error

这些来自Serge Lidin的 Expert .NET 2.0 IL Assembler (这是IL的最终参考)。