Декодер микропроцессора

Тема в разделе "WASM.BEGINNERS", создана пользователем KingT, 18 дек 2009.

  1. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Размер опкода как правило переменный.Как проц узнает размер инструкции и сколоко битов ему надо брать.
    "Декодер за один раз считывает 16 байт и если комманда не умещается то генерится исключение" КК.

    ЗЫ:Как в Ida Pro посмотреть опкод команды?
     
  2. sometime

    sometime Odessa

    Публикаций:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    227
    Адрес:
    sunday
  3. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    KingT
    На самом деле проц может считывать сколько угодно байтов и анализировать как ему угодно -- лишь бы конечный результат был правильный. Программно же (в дизассемблере или эмуляторе) считывается первый байт, анализируется, затем, если надо считывается следующий байт, анализируется и т.д. -- до тех пор, пока не будет считана вся команда или обнаружена ошибка.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    открыть вкладку hex view.
    ваш кэп
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    по первому байту можно определить нужен ли второй а уж по этим двум можно сказать сколько байтов всего в инструкции
    подробно работу конвейера читайте в мануалах

    зы
    настроить вид листинга
     
  6. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Понять, нужен ли второй, по первому можно. Но нельзя гарантированно по первым двум определить длину команды. Например, первые два могут оказаться префиксами :)
     
  7. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    ++ Ф дополнение к сказанному by SII. Даже бес префиксов это не всегда так (уверен на 99.9%) - есть такие команды что и по двум не скажешь :derisive:
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    PSR1257
    SII
    хорошо пусть будет что по N первым байтам можно будет определить длину инструкции
    префиксов в принципе можно и вагон наставить

    в канонических ситуациях поведение процессора известно(документировано)
    если рассматривать извращенные варианты как 0хFFFFFFFE префикса и один nop то потребуется эксперимент
     
  9. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    В x86 длина инструкции со всеми префиксами не может превышать 16 байт.
     
  10. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    reverser
    15, емнип