User Tag List

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

Тема: Определение текущего адреса

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

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

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    Question Определение текущего адреса

    Всем привет!
    Есть у меня такая задача: надо определить текущий исполняемый адрес (что-то типа LD HL,PC). Но не все так просто - мне заранее неизвестен контекст, в котором исполняется мой код, а именно:
    • на каком такте кадра вызван код;
    • разрешены ли прерывания;
    • что загружено в какие адреса RAM, какая страница ROM включена и что в ней находится;
    • способ вызова моего кода (отметается возможность достать из стека адрес возврата и почитать адрес вызова).

    Классический способ (call #007c: dec sp: dec sp: pop hl) несовместим со всеми указанными проблемами. Чуть более правильный код di: call #007c: dec sp: dec sp: pop hl :ei решает только первую проблему. Определение режима препываний и разрешение их (если были разрешены) решает еще и вторую проблему. А вот решение третьей проблемы мне не ведомо - по адресу #007c ret быть не обязан, как и по любому другому адресу.
    Видится 2 не самых удобных способа решения проблемы:
    • обязать вызывающий код передавать в одном из регистров адрес вызова (или заносить его в некоторую ячейку в теле вызываемого кода);
    • обязать вызывающий код делать дополнительную инициализацию при включенном ROM BASIC 48.


    Оба способа мне не нравятся. Знает ли кто-нибудь способ определения текущего адреса в любых условиях без дополнительных ограничений для вызывающего кода?

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

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

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

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

Похожие темы

  1. Расчет адреса точки на экране
    от Ares в разделе Программирование
    Ответов: 10
    Последнее: 26.07.2012, 17:46
  2. Адреса 00H-100H
    от Helloween в разделе Оси
    Ответов: 14
    Последнее: 10.05.2011, 14:26
  3. FDD - адреса
    от AlexBel в разделе MSX
    Ответов: 1
    Последнее: 11.05.2009, 10:45
  4. Определение Turbo-FM
    от Максагор в разделе Программирование
    Ответов: 21
    Последнее: 28.09.2007, 20:29
  5. Определение номера дисковода
    от goodboy в разделе Программирование
    Ответов: 2
    Последнее: 22.06.2005, 01:54

Ваши права

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