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

Discussion in 'WASM.ASSEMBLER' started by JohnAR, Nov 3, 2007.

  1. JohnAR

    JohnAR New Member

    Blog Posts:
    0
    Joined:
    Nov 3, 2007
    Messages:
    4
    Здравствуйте.
    Хотелось бы узнать как происходит дешифровка команд ассемблера. Я знаю, что в коде команды присутствует длина команды, ее назначение, операнды. Но как их выдернуть?
     
  2. Noble Ghost

    Noble Ghost New Member

    Blog Posts:
    0
    Joined:
    Apr 28, 2004
    Messages:
    204
    Location:
    Russia
    начни с цикла статей о заклинании кода. потом кури священные талмуды, подглядывая в исходники открытосорцовых дизассемблеров.
     
  3. S_Alex

    S_Alex Alex

    Blog Posts:
    0
    Joined:
    Aug 27, 2004
    Messages:
    561
    Location:
    Ukraine
    Юров. "ASSEMBLER: Специальный справочник. 2-е изд."
    Во второй главе всё как бы понятно описано.
     
  4. Noble Ghost

    Noble Ghost New Member

    Blog Posts:
    0
    Joined:
    Apr 28, 2004
    Messages:
    204
    Location:
    Russia
    это между статьями о заклинании кода и священными талмудами.
     
  5. SII

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

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    JohnAR

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

    Mi256 New Member

    Blog Posts:
    0
    Joined:
    Sep 24, 2007
    Messages:
    116
    JohnAR Я давно собирался такую штуку замутить как ассемблер но нехватает времени. Юзал hiev и накопал 85% опкодов и операндов x86. Читай литературу, а если какой код неясно - спроси тута - разясним. :)
     
  7. Mental_Mirror

    Mental_Mirror New Member

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

    JohnAR New Member

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

    10110111 New Member

    Blog Posts:
    0
    Joined:
    Jul 13, 2006
    Messages:
    319
    Location:
    Санкт-Петербург
    http://www.phyton.com/downloads/mca-51.pdf