3

我一直在玩 IL,我注意到像Prefix1这样的 OpCodes ,文档基本上告诉我不要担心。自然,这让我很好奇这些不同的前缀操作码实际上做了什么。一个快速的谷歌搜索没有出现任何东西,所以我想我会在这里问专家。有人知道这些是什么意思吗?

4

2 回答 2

5

虽然大多数操作码是单个字节,但当前使用的一些操作码包含 2 个字节。例如,Opcodes.LdLoc 编码为 0xfe + 0x0c。您可能会猜到 Opcodes.Prefix1 的值,它是 0xfe。Prefix2-7 是为了将来的可扩展性。它们被标记为“不使用”,因为多字节操作码的值中已经包含前缀(字段 m_s1 和 m_s2)。

如果您对背景信息感兴趣,您可以查看Ecma-335 标准文档

于 2010-05-20T20:10:58.747 回答
1

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

至于 Prefix1,它是一条保留指令,不应该使用。也许它是为将来的某个版本保留的。

于 2010-05-20T18:12:46.280 回答