Здравствуйте. Хотелось бы узнать как происходит дешифровка команд ассемблера. Я знаю, что в коде команды присутствует длина команды, ее назначение, операнды. Но как их выдернуть?
начни с цикла статей о заклинании кода. потом кури священные талмуды, подглядывая в исходники открытосорцовых дизассемблеров.
JohnAR Кодировка команд подробно рассмотрена во второй части Интеловского руководства по процессорам архитектуры IA32 (она же x86). Скачать можно на Интеловском сайте, только не помню, где именно. Естественно, на английском
JohnAR Я давно собирался такую штуку замутить как ассемблер но нехватает времени. Юзал hiev и накопал 85% опкодов и операндов x86. Читай литературу, а если какой код неясно - спроси тута - разясним.
JohnAR То о чем ты говоришь называется дизассемблер. Чтобы его сделать надо изучить формат команд процессора для которого пишется дизассемблер. Единственное описание формата, которое можно использовать для написания своего дизасма это мануалы от производителя процессоров. Ну например Intel Manuals. Любые другие попытки читать о дизасмах - например в статьях, исходниках и других источниках приведут тебя ровно никуда. Поэтому соберись с силами и скачай мануалы интела, или их можно заказать на ихнем сайте (может уже и нельзя). Потом найди описание формата и пытайся декодировать сначала просто в уме используя таблицы, а потом кодировать это. Ну дизасм написать не сложно, наверное самое сложное в этом занятии - это муторность процесса забивки таблиц в свою прогу. Ведь таблицы - и есть главная часть дизасма. Сами таблицы во всех тех же мануалах и больше нигде. Можно сделать просто дизасм длин или просто дизасм, который превращает инструкцию в мнемонику. Для практических применений часто используется дизасм, который запоняет структуру, которая описывает инструкцию и ее операнды.
Самое важное я сказать то и забыл....пишу я эмуль процессора 8051. На интеле почитал гайд. Очень много полезного в нем нашел, но напоролся на такую вещь - в нем описаны опкоды и комбинации тока 48 комманд(всего 111). В самом начале главы по системе команд интелы предлагают мне заглянуть в "MCS-51 Macro Assembler User’s Guide", для получения более подробной информации о системе команд. Ну я радостно лезу на интел.ком и обнаруживаю, что этого там нет. Лезу в гугл и он тоже ничего про это не знает. Может кто посоветует, как сий талмуд можно найти? Хотел попробовать заказать, как посоветовал Mental_Mirror, но что-то не нашел у них такого сервиса.