Здраствуйте. Недавно я начал разбиратся в опкодах и у меня возникла очень боьшая проблема с 81 ( 0x81, 081H ). Проблема заключается в том что в интеловской документации написано что этот опкод это add. Но как выяснилось с помошью OllyDbg это может быть и ксор,и ор ,и даже adc. Вот небольшой пример с OllyDbg. 81C0 01020304 add eax, 4030201 81ED 01020304 sub ebp, 4030201 81CC 01020304 or esp, 4030201 Я просто в ужасе ! Как такое можно дизасмить вобше ? Обьясните мне пожалуста значение этого опкода. Особено инетересует как испольщуется поле modrm в нём. Спасибо.
Помойму я разобрался. Вобшем в некоторых опкодах поле reg служит вторым опкодом. Если я не прав то поправте меня пожалуста. Если прав то думаю тему можно закрыть.
Ты прав и тему можно закрыть А выяснить это можно не только с помощью OllyDbg, но и простым поиском по интеловскому мануалу. И вообще, если в мануале встречаешь опкод типа ХХ /n, где n - любое число 0..7, то 100% есть другие инструкции с тем же XX, но другими значениями /n. Ищите да обрящите
leo Насчет 100% - это неверно: Код (Text): mov [memory],immediate - C6+w /0, но все остальные (C6 /t, C7 /t, t!=0) - invalid instruction setcc reg/mem8 - 0F 4x /0, но здесь 0F 4x /t тоже означает setcc