User Tag List

Показано с 1 по 10 из 803

Тема: Реверс-инжиниринг Z80

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #9

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Опкод недействительный всего пол-такта, между окончанием действия предыдущего опкода и выборкой следующего.
    Эти пол-такта M1.T3.1
    это что, получается, что в промежуток от M1.T1.1 до M1.T2.2 процессор продолжает выполнять предыдущую операцию?

    Цитата Сообщение от Titus Посмотреть сообщение
    Таким образом, с M1.T3.2 уже в регистре опкода защелкнут и действителен новый опкод, и уже в регистрах префиксов установлен выбор нужного набора команд или префикса.
    Это конечно хорошо, но как в M1.T3.1 предсказать какие флаги префиксов будут активированы на M1.T3.2?

    Я хочу отобразить правильно дизассемблированную инструкцию в момент когда ещё идет её выборка, т.е. в M1.T3.1, а не когда она начинает обрабатываться в M1.T3.2...

    По каким сигналам в полу-такте M1.T3.1 можно узнать как процессор будет декодировать текущий опкод?

    Проверил еще раз, вот выборка:

    Скрытый текст



    [свернуть]


    1) С самими префиксами ок, по /BASE_SET==0 можно определить что ED/CB/DD/FD - это префикс.

    2) C ED46 ок - по /ED_SET==0 можно определить, что 46 - это опкод с префиксом ED

    3) С DD210000 тоже ок - по /IDX_SET==0 и /BASE_SET==0 можно определить что 21 - это базовая операция с префиксом DD

    4) А вот с CB40 возникает проблема - все перечисленные флаги в M1.T3.1 не активны, /CB_SET станет активным только на следующем полу-такте M1.T3.2. Как понять что 40 это опкод для префикса CB в M1.T3.1 (когда еще идет выборка)?

    Цитата Сообщение от Titus Посмотреть сообщение
    Эти пол-такта M1.T3.1 (если нет торможения памяти).
    а если будет торможение wait, опкод может быть выбран не в момент перехода из M1.T3.1 в M1.T3.2?

    Проверил - выборка похоже всегда идет в M1.T3.1. Если активируется WAIT, то процессор просто откладывает M1.T3.1 на потом:

    Скрытый текст



    [свернуть]
    Последний раз редактировалось ZXMAK; 26.12.2024 в 02:43.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1739
    Последнее: 09.01.2025, 10:55
  2. Ответов: 32
    Последнее: 18.12.2024, 18:19
  3. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  4. Реверс МК-92
    от Случайность в разделе Программируемые калькуляторы
    Ответов: 55
    Последнее: 24.04.2021, 23:47
  5. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •