D> Не понял!
Тутсы Интела есть.... Предлагал принести...
D> Такую книжку я тоже могу достать. Но мучает вопрос — полностью ли описание старых команд соответсвует новым проуам. Я знаю, что обратная совместимость и все такое... Но мне нужны все команды! Причем нужно находить длину со 100% точностью, иначе плохо будет...
У меня книжка Михаила Гука есть "Процессоры...", так там вроде сказано, что у новых команд могут поменяться значения некторых полей...
Вово!!!!
И теперь Интель руководство + и всё!!! Тебе большего не надо!!!
D>>> Процессор именно так действует?
E>>Ты себя с процессором не сравнивай. Нет процессор действует не так, в некотором смысле.
E>>Там анализ уже на схемотехническом уровне идёт, а не програмном. Это конечно то же, но не то.
D> Хорошо, дизассемблеры как действуют? Подозреваю, что у них специальные базы команд, но мне так нельзя (объем большой получится). Нужен именно алгоритм. Спасибо за внимание
Ты куда убежал? Я только начал.
Вопросик интересный. А я поясняю, что не алгоримт это, а система алгоритмов.. (
Итак. Проблемма вся кроеться в том, что в Интель КОП занимает от четырёх бит до 2 байт...
При этом эти два байта -- по сути можно назвать базовым КОП (такое не в доках Интел)
Двух байтный КОП содержиться только в безоперандных сложных командах.... типа SYSENTER или что там ещё....
Однобайтные -- и часть КОП в другом байте в "тяжёлых командах", со сложной адресацией...
Поскольку архитектура такова, то и анализ проходит:
1. Сперва 4 бита -- это точно КОП!!!
2. Делаються предположения...
2.1 Выявить двухбайтный КОП легко, такие команды не многочисленны
2.2 Если это команда с однобайтным КОП..., проверить след четыре бита...
3. После того как КОП определён, будет легче..
То есть вся тонкость в определении КОП.. сдесь без мини БД или словаря не обойтись
Или, создать побитовый анализинг...
В любом случае, первый твой шаг:
Выписать все команды, ипопытаться усмотреть зависимоть в определении КОП.
Удачи...
Если появяться вопросы мыль на EdmondXASM@mail.ru