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,286
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    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,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    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,286
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    ZEK
    Гость

    По умолчанию

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

  9. #8

    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,821
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    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,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 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)

Ваши права

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