Что делают OpCodes IL Prefix? - PullRequest
3 голосов
/ 20 мая 2010

Я поигрался с IL и заметил OpCodes вроде Prefix1 , с документацией, которая в основном говорит мне не беспокоиться об этом Естественно, это делает меня весьма любопытным относительно того, что на самом деле делают эти различные префиксные коды операций. Быстрый поиск в Google ничего не дал, так что я решил спросить экспертов здесь. Кто-нибудь знает, что это значит?

Ответы [ 2 ]

5 голосов
/ 21 мая 2010

Хотя большинство кодов операций являются однобайтовыми, в настоящее время используется несколько кодов операций, которые содержат 2 байта.Например, Opcodes.LdLoc кодируется как 0xfe + 0x0c.Вероятно, вы можете угадать значение Opcodes.Prefix1, это ix 0xfe.Префикс 2-7 предназначен для расширения в будущем.Они помечены как «не использовать», потому что многобайтовые коды операций уже имеют префикс, включенный в их значение (поля m_s1 и m_s2).

Если вас интересует фоновая информация, вам нужновзгляните на стандартный документ Ecma-335 .

1 голос
/ 20 мая 2010

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

Что касается Prefix1, это зарезервированная инструкция, которую вы не должны использовать. Может быть, это зарезервировано для какой-то будущей версии.

...