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

标签 .net cil intermediate-language

我正在研究 MSIL (CIL) 代码着色器,尽管我对 MSIL 不是很熟悉。

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

这些关键字包括 add.fileconv.i4unaligned.

我有点纠结于点是关键字的一部分。我很确定这些点需要成为关键字的一部分,因为我不认为像 i4 这样的东西可以单独作为关键字。我很确定我希望某些关键字开头的点成为关键字的一部分。

但是那些有尾随点的少数怎么办,比如最后一个?尾随点是关键字的一部分有什么原因吗?

最佳答案

点是这些说明的一部分(我不知道为什么)。还有其他一些类似的前缀指令,例如 unaligned.volatile.constrained.readonly.tail.。 (我不确定我是否列出了所有这些,但重点是,您的解析器必须识别这些。)

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

volatile. ldind.i4 // Correct

volatile.ldind.i4 // Syntax error

这些来自 Serge Lidin 的 Expert .NET 2.0 IL Assembler(这几乎是权威的 IL 引用)。

关于.net - 了解 MSIL (CIL) 关键字中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444276/

相关文章:

javascript - 单击复选框后如何调用 Controller 方法?

c# - 如何将所有对象相互比较?

c# - StringTemplate:从磁盘加载模板?

c# - C#中的 'fixed'语句和CIL代码中的托管指针

.net - IL中有评论这样的东西吗?

scala - scalac 中使用的中间语言?

c# - 内存是否在 Form.close() 上释放?

c# - IL代码中maxstack值的计算

c++ - 来自 C++ 的中间代码

c# - 关于 C# 编译器如何发出 TypeRef 信息的问题