Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22

Тема: Как из кода получить текущее значение PC?

  1. #1
    Member Аватар для jim
    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    87
    Благодарностей: 19
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Как из кода получить текущее значение PC?

    Кто нибудь знает способы? Правда, забыл зачем мне это надо

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

  3. #2
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jim
    Кто нибудь знает способы? Правда, забыл зачем мне это надо
    Во-первых имеет смысл ТОЛЬКО ДЛЯ ПОЗИЦИОННО-НЕЗАВИСИМОГО КОДА.
    Зависит от возможности ли использование заранее известного статического
    адреса памяти. По этому адресу загоняется POP HL : JP (HL).

  4. #3
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,562
    Благодарностей: 3223
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    делаешь CALL на RET, после этого снимаешь со стека адрес инструкции после CALL

    call 82
    addr dec sp
    dec sp
    pop hl ; hl=addr

  5. #4
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,968
    Благодарностей: 3445
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy
    делаешь CALL на RET, после этого снимаешь со стека адрес инструкции после CALL

    call 82
    addr dec sp
    dec sp
    pop hl ; hl=addr
    Ты забыл прерывания запретить

  6. #5
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy
    делаешь CALL на RET
    Для этото RST нужно иметь по известному адресу в памяти.

    после этого снимаешь со стека адрес
    ...на котором возникло прерывание...

    call 82
    А за это вообще руки отрывать, обязательно медленно и обязтельно чтоб мучтельно.

  7. #6
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,562
    Благодарностей: 3223
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fk0
    А за это вообще руки отрывать, обязательно медленно и обязтельно чтоб мучтельно.
    за что такая жестокость, только если rom сменится ?

  8. #7
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от goodboy
    за что такая жестокость, только если rom сменится ?
    Такими выходками вы ставите железячников в большой тупик

  9. #8
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,683
    Благодарностей: 219
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    код 201 может быть в знакогенераторе отыскать? его вряд-ли куда-то денут или поменяют...

    Да, кстати, команду Call 82 не может заменить команда HALT? Если уж это прерывание портит стек ниже SP, то адрес прерванной им процедуры оно все равно туда положит.
    Последний раз редактировалось TomCaT; 25.05.2006 в 19:05.
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

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

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  10. #9
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Благодарностей: 295
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomCaT
    Да, кстати, команду Call 82 не может заменить команда HALT? Если уж это прерывание портит стек ниже SP, то адрес прерванной им процедуры оно все равно туда положит.
    Супер !!! Велеколепное решение !!! А что бы решить проблему с IM 2 и тому подобное можно сделать CALL 56 !!! Я, надеюсь, правильно вспомнил адрес BASIC'овского прерывания ??? ...
    AAA

  11. #10
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    3,379
    Благодарностей: 719
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    эхх молодеш

    ld hl,#e9e1 ; pop hl : jp (hl)
    ; ld de,(#4000)
    ld (#4000),hl
    call #4000
    ;ld (#4000),de
    в hl - адрес возврата
    если вдруг резко понадобилось сохранить содержимое памяти
    то можно добавить то что за точкой с запятой
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Ваши права

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