我一直在玩 IL,我注意到像 Prefix1 这样的操作码,文档基本上告诉我不要担心它。自然,这让我很好奇这些不同的 Prefix OpCodes 到底做了什么。快速的谷歌搜索没有找到任何东西,所以我想我会问这里的专家。有人知道这些是什么意思吗?
最佳答案
虽然大多数操作码是单个字节,但当前使用的操作码有几个包含 2 个字节。例如,Opcodes.LdLoc 被编码为 0xfe + 0x0c。你大概可以猜到 Opcodes.Prefix1 的值,它 ix 0xfe。 Prefix2-7 是为了将来的可扩展性。它们被标记为“不使用”,因为多字节操作码已经在它们的值中包含了前缀(字段 m_s1 和 m_s2)。
如果您对背景信息感兴趣,可以查看 Ecma-335 standard document 。
关于.net - IL 前缀操作码有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2876591/