我一直在研究IL,注意到了像Prefix1这样的OpCodes,文档基本上告诉我不用担心它们。自然而然地,我很好奇这些各种前缀OpCodes实际上是做什么的。快速搜索谷歌并没有找到任何有用信息,所以我想在这里问问专家。有人知道这些是什么意思吗?
大多数操作码只有一个字节,但现在有几个使用两个字节的操作码。例如,Opcodes.LdLoc编码为0xfe + 0x0c。你可能能猜到Opcodes.Prefix1的值是多少,它是0xfe。Prefix2-7是为了未来的可扩展性而标记为“不要使用”,因为多字节操作码已经将前缀包含在它们的值中(字段m_s1和m_s2)。
如果您对背景信息感兴趣,可以查看Ecma-335标准文档。
http://msdn.microsoft.com/en-us/library/812xyxy2(v=VS.95).aspx
关于Prefix1,它是一个保留指令,您不应该使用。也许它是为一些未来版本保留的。