Дешифровка команд ассемблера

Тема в разделе "WASM.ASSEMBLER", создана пользователем JohnAR, 3 ноя 2007.

  1. JohnAR

    JohnAR New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2007
    Сообщения:
    4
    Здравствуйте.
    Хотелось бы узнать как происходит дешифровка команд ассемблера. Я знаю, что в коде команды присутствует длина команды, ее назначение, операнды. Но как их выдернуть?
     
  2. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    начни с цикла статей о заклинании кода. потом кури священные талмуды, подглядывая в исходники открытосорцовых дизассемблеров.
     
  3. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Юров. "ASSEMBLER: Специальный справочник. 2-е изд."
    Во второй главе всё как бы понятно описано.
     
  4. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    это между статьями о заклинании кода и священными талмудами.
     
  5. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    JohnAR

    Кодировка команд подробно рассмотрена во второй части Интеловского руководства по процессорам архитектуры IA32 (она же x86). Скачать можно на Интеловском сайте, только не помню, где именно. Естественно, на английском :)
     
  6. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    JohnAR Я давно собирался такую штуку замутить как ассемблер но нехватает времени. Юзал hiev и накопал 85% опкодов и операндов x86. Читай литературу, а если какой код неясно - спроси тута - разясним. :)
     
  7. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    JohnAR
    То о чем ты говоришь называется дизассемблер. Чтобы его сделать надо изучить формат команд процессора для которого пишется дизассемблер. Единственное описание формата, которое можно использовать для написания своего дизасма это мануалы от производителя процессоров. Ну например Intel Manuals. Любые другие попытки читать о дизасмах - например в статьях, исходниках и других источниках приведут тебя ровно никуда. Поэтому соберись с силами и скачай мануалы интела, или их можно заказать на ихнем сайте (может уже и нельзя). Потом найди описание формата и пытайся декодировать сначала просто в уме используя таблицы, а потом кодировать это. Ну дизасм написать не сложно, наверное самое сложное в этом занятии - это муторность процесса забивки таблиц в свою прогу. Ведь таблицы - и есть главная часть дизасма. Сами таблицы во всех тех же мануалах и больше нигде. Можно сделать просто дизасм длин или просто дизасм, который превращает инструкцию в мнемонику. Для практических применений часто используется дизасм, который запоняет структуру, которая описывает инструкцию и ее операнды.
     
  8. JohnAR

    JohnAR New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2007
    Сообщения:
    4
    Самое важное я сказать то и забыл....пишу я эмуль процессора 8051. На интеле почитал гайд. Очень много полезного в нем нашел, но напоролся на такую вещь - в нем описаны опкоды и комбинации тока 48 комманд(всего 111). В самом начале главы по системе команд интелы предлагают мне заглянуть в "MCS-51 Macro Assembler User’s Guide", для получения более подробной информации о системе команд. Ну я радостно лезу на интел.ком и обнаруживаю, что этого там нет. Лезу в гугл и он тоже ничего про это не знает. Может кто посоветует, как сий талмуд можно найти? Хотел попробовать заказать, как посоветовал Mental_Mirror, но что-то не нашел у них такого сервиса.
     
  9. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    http://www.phyton.com/downloads/mca-51.pdf