SII писал(а):
В "тупом" дизассемблировании (просто перевод машинного кода в мнемоники команд, имена регистров, адреса и константы в шестнадцатеричном или каком другом удобочитаемом виде) абсолютно ничего сложного нет; даже для такой идиотской системы кодирования команд, как на ИА-32, достаточно лишь внимательно изучить это самое кодирование. Вот интеллектуальные дизассемблеры типа ИДА Про -- это действительно сложно, но для отладки они и не нужны.
Пы.Сы. А в статье отсутствуют сведения о 64-разрядном режиме; по 16-разрядному, кажется, тоже нет. В своё время формат команды ИА-32 я расписал на вике, опираясь на интеловский мануал.
народ говорит IA32 не самое уродское..
статья нужна была просто для общего понимания. сейчас пишу чтото типо отладчика, возникает много других вопросов. например, я эмулирую полностью процессор х86, но если с командами нашел достаточно простой алгоритм, то для установки соответствующих флагов приходится делать обычный перебор вариантов установки (выглядит не эстетично:). или, например, чтото не пойму пока как процессор знает какое значение у тебя в регистре, signed или unsigned..
про х64 еще не разбирался но судя по документации интела не очень будет отличаться. ситуация, видимо, аналогична режиму процессора 16/32. т.е. если проц в режиме 32 бит то команда "mov eax, 0", а если в 16 то "mov ax, 0". код команды один и тотже..