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

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: переход по прерыванию

  1. #11
    Master Аватар для TomaTLAB
    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    607
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ну может быть редкий умный случай -
    Не такой уж и редкий. За спек не скажу - не копенгаген, а вообще типа "правило хорошего тона".
    Да и вообще, прямой запрет прерывания много где нужен, по хорошему, когда требуется "атомарность" процедуры.
    Да тот же мапер перещелкнуть и т.п.

  2. #12
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,075
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    в большинстве фирменных программ программа обработки прерывания начинается с "DI"

    почему?

    ЕМНИП, в толмуде первого тома комплекта чипов серии Зю80, выходит, что это как-то связано с режимами отличными от IM0, когда в момент операции с режимом прерывания, возможен его "повторный захват" (мера, схожая с таблицей вектора, для машин с "нестабильной" шиной).
    Когда есть, но не знаешь где - это все равно, что нету.

  3. #13
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,746
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    265
    Поблагодарили
    199 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    null_device, однако в ПЗУ этого нет Di отсутсвует
    и в поздних играх, Joffa например, тоже экономит байт от DI
    или даже сразу делает EI
    С уважением,
    Jerri / Red Triangle.

  4. #14
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ну может быть редкий умный случай - когда ISR зовется по call, не по прерыванию, и пришедшее в этот момент прерывание может сделать больно.
    Только в этом случае)
    Но вряд ли в тех примерах, на которые ссылается автор, такой вызов использовался.

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

    Цитата Сообщение от TomaTLAB Посмотреть сообщение
    Не такой уж и редкий. За спек не скажу - не копенгаген, а вообще типа "правило хорошего тона".
    Да и вообще, прямой запрет прерывания много где нужен, по хорошему, когда требуется "атомарность" процедуры.
    Да тот же мапер перещелкнуть и т.п.
    Мы говорим именно 'за спек'.
    На спектруме этого делать не нужно. Прерывания запрещаются автоматически.
    Возможно, люди, которые так делают, просто не читали подробно документацию, вот и перестраховываются)

  5. #15
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Этого делать не нужно на любом компе на Z80, не только на спеке. Интересно, существуют ли процессоры, в которых нет автоматического запрещения прерываний при подтверждении прерывания и переходе к обработчику?

  6. #16
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    На спектруме этого делать не нужно. Прерывания запрещаются автоматически.
    Возможно, люди, которые так делают, просто не читали подробно документацию, вот и перестраховываются
    в нашей юности был только трёхтомник инфоркома по ассемблеру
    и так как раз советовали первым делом запрещать прерывания (дабы не случился повторный захват)

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

  8. #17
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    в нашей юности был только трёхтомник инфоркома по ассемблеру
    и так как раз советовали первым делом запрещать прерывания (дабы не случился повторный захват)
    Я его не читал, т.к. выписал себе в самом начале 90-х (вроде бы в 91 году) книженцию по Z80 - Микропроцессорный комплект Z80, книга 1. И там все шикарно было описано.

  9. #18
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,053
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Интересно, существуют ли процессоры, в которых нет автоматического запрещения прерываний при подтверждении прерывания и переходе к обработчику?
    Во многих микроконтроллерах обработчик может быть прерван другим прерыванием с более высоким приоритетом. Но прерывания от того же источника обычно все-таки запрещаются. А еще бывает NMI, Даже на Z80. Правда, в современных системах NMI от внешнего устройства (т.е. прерывание, а не исключение) обычно не используются, т.к. вложенность обработчика может привести к сбою, а пользы от "истинного" NMI не просматривается. С одной стороны, хорошо иметь такое прерывание, которое сработает в случае любого сбоя программы; с другой стороны, обработчик такого прерывания ничего не сможет сделать для восстановления. С тем же успехом можно просто осуществить сброс. Ну и еще есть вариант использования NMI для отладки и/или сохранения краш-дампа. Сброс - он всё-таки затирает состояние процессора, а при NMI состояние сохраняется.

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Переход на личности
    от moroz1999 в разделе Форум
    Ответов: 36
    Последнее: 26.09.2012, 15:34

Ваши права

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