2010-05-20 50 views
3

我一直在玩IL,我注意到了像Prefix1这样的OpCodes,文档基本上告诉我不要担心它。当然,这让我非常好奇这些各种前缀操作码实际上做了什么。 Google的快速搜索没有任何结果,所以我想我会问这里的专家。有人知道这是什么意思吗?IL Prefix OpCodes做什么?

回答

5

虽然大多数操作码都是单个字节,但当前使用的操作码有几个包含2个字节的操作码。例如,Opcodes.LdLoc被编码为0xfe + 0x0c。您大概可以猜到Opcodes.Prefix1的值,它是ix 0xfe。前缀2-7用于将来的扩展性。它们被标记为“不要使用”,因为多字节操作码已在其值(字段m_s1和m_s2)中包含前缀。

如果你对背景信息感兴趣,你可以看看Ecma-335 standard document

+0

很酷,谢谢。我必须查看标准文档。 – 2010-05-20 20:39:27

1

http://msdn.microsoft.com/en-us/library/812xyxy2(v=VS.95).aspx

至于Prefix1,它是保留指令,你不应该使用。也许它是为未来版本保留的。

+1

我欣赏方便的链接,但这实际上是我在我的问题中链接到的。 :)我只是过分好奇,希望有人可以洞察这些神秘的指示。 – 2010-05-20 18:29:07