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

User Tag List

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

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

  1. #1

    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    128
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

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

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

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

  3. #2

    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #3

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,315
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,476
    Поблагодарили
    963 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  5. #4

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

    По умолчанию

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

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

  6. #5

    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  7. #6

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,315
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,476
    Поблагодарили
    963 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    ZEK
    Гость

    По умолчанию

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

  9. #8

    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Да, кстати, команду Call 82 не может заменить команда HALT? Если уж это прерывание портит стек ниже SP, то адрес прерванной им процедуры оно все равно туда положит.
    Последний раз редактировалось TomCaT; 25.05.2006 в 21: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

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #10

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,901
    Спасибо Благодарностей отдано 
    347
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    246 сообщений
    Mentioned
    13 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.

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

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

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

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

Ваши права

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