User Tag List

Страница 20 из 81 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 803

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

  1. #191

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда я "смотрел" как работает oberon-cpu (oberonproject2013) - то конспектировал "мысли", нашёл несколько недокументированных вещей (хотя возможно, я где то не всё прочитал в оригинальной документации). Так что файлик с описанием "результата реверса" как оно работает - будет полезен по многим причинам...
    ПС: сей "проект" заморожен в виду отсутствия времени...

  2. #192

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,376
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,216
    Поблагодарили
    870 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexG Посмотреть сообщение
    конспектировал "мысли", нашёл несколько недокументированных вещей
    Безусловно, какие-то еще никем не изведанные тайны в Z80 имеются. И чтобы их понять, недостаточно схему просто повторить. Ее надо изучить вдоль и поперек, понять все нюансы работы. Подвергнуть теоретическому стресс-тесту, не может ли в каких-то блоках найти коса на камень.

    - - - Добавлено - - -

    Обнаружилась очень интересная штука с константами.

    В блоке констант не оказалось константы вектора прерывания 0x66. Только 0x00, 0x38 и 0x7F.
    Оказывается, вектор с таким странным адресом 0x66 (как я думаю) появился потому, что 0x66 - это составная константа блока двоично-десятичной коррекции DAA. Там как раз имеется две половинки константы 0x60 и 0x06, которые корректируют старшую и младшую часть числа соответственно. И вот как раз они и используются в качестве вектора для NMI. Вот такая интересная экономия)

    Эти 3 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    andrews(18.10.2024), b2m(04.09.2024), Barmaley_m(04.09.2024)

  3. #193

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В блоке констант не оказалось константы вектора прерывания 0x66. Только 0x00, 0x38 и 0x7F.
    Оказывается, вектор с таким странным адресом 0x66 (как я думаю) появился потому, что 0x66 - это составная константа блока двоично-десятичной коррекции DAA. Там как раз имеется две половинки константы 0x60 и 0x06, которые корректируют старшую и младшую часть числа соответственно. И вот как раз они и используются в качестве вектора для NMI. Вот такая интересная экономия)
    а как инструкция DAA связана с обработкой NMI сигнала?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #194

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,376
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,216
    Поблагодарили
    870 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    а как инструкция DAA связана с обработкой NMI сигнала?
    Никак.
    Но обе они используют константу 0x66. NMI для адреса обработчика прерываний, а DAA для коррекции результата.

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    Barmaley_m(04.09.2024)

  5. #195

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вот такая интересная экономия)
    Всегда удивлялся, почему именно 0x66, а тут вон оно чё!

  6. #196

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,376
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,216
    Поблагодарили
    870 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Всегда удивлялся, почему именно 0x66, а тут вон оно чё!
    Я думаю, это далеко не последние интересности)

  7. #196
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #197

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,376
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,216
    Поблагодарили
    870 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Стал разбираться, зачем же в блоке констант константа 0x7F, и оказалось, что она никогда не используется!
    А точнее, скорее всего является рудиментом от лишнего транзистора в схеме выборки констант.

    - - - Добавлено - - -

    И еще из интересненького.

    Блок быстрого 16-битмого инкремента/декремента, который в основном используется для инкремента PC и IR, также во всю используется многими другими командами.

    Этот блок может считать +1, -1, а может вообще отменять инкремент, т.е. прибавлять 0. Где же это используется? Например, в команде LD SP,HL. А вы думали, почему она так быстро работает? Потому что пересылка осуществляется не двумя шагами по 8 бит каждый, а сразу 16 бит. А такую пересылку может осуществить только 16-битный блок инкремента/декремента. Кроме того, отмена инкремента используется в навороченной команде EX (SP),HL. Ну и в команде HALT и обработчиках прерываний, чтобы PC топтался на месте.

    Ну, а декремент понятно, где используется. Это работа с записью в стек, это групповые команды LDD/CPD/IND/OUTD(R). Ну и всякие LDI/CPI.

    - - - Добавлено - - -

    Кстати, инкремент/декремент регистровых пар типа INC/DEC dd - этим тоже занимается данный блок. Поэтому инкремент такой быстрый, и поэтому он не влияет на флаги, т.к. блок АЛУ не задействован.

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    Barmaley_m(04.09.2024)

  9. #198

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Похоже, подобные разборы не заходят) Буду иметь в виду)
    Мне очень зашло! Жду следующих разборов, очень интересно!

    Кстати, для построения временных диаграмм (в документе про анализ схемы "Орель БК-08") мне удалось удачно использовать симулятор VHDL. Я реализовал часть анализируемой схемы на VHDL, а потом просимулировал ее и включил результаты симуляции в документ. Тем самым решается сразу 2 задачи: защита от ошибок симуляции схемы "вручную"; получение VHDL-реализации этой же схемы, которая бы, в случае необходимости, заработала на FPGA.

    Этот пользователь поблагодарил Barmaley_m за это полезное сообщение:

    Titus(04.09.2024)

  10. #199

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,376
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,216
    Поблагодарили
    870 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    защита от ошибок симуляции схемы "вручную"
    Симуляция схемы вручную интересна тем, что позволяет лучше понять логику работы того или иного узла.

  11. #200

    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    974
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    164 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё забавно будет для регистровой пары IR...

Страница 20 из 81 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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