Среда, 18.10.2017, 19:37
БК-0010.01. Повесть о настоящем компьютере
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Введение в руководство [2]
Введение [0]
Организация БК-0010 [1]
Раздел 1. Организация БК-0010
Работа с МСД [1]
Раздел 2. Работа с МСД
Системные регистры [1]
Раздел 3. Системные регистры
Системное ПО [1]
Раздел 4. Системное программное обеспечение БК-0010
Прерывания. Приоритет ЦП [1]
Раздел 5. Система прерываний БК-0010. Приоритет процессора
Командные прерывания [1]
Раздел 6. Командные прерывания
ЕМТ БК-0010 [1]
Раздел 7. командные прерывания ЕМТ БК-0010
Коды и ассемблер. Мнемокод. [1]
Раздел 8. Коды и ассемблер. Мнемокод. Формат команды
Способы адресации [1]
Раздел 9. Способы адресации
Команды процессора БК-0010 [1]
Раздел 10. Система команд процессора БК-0010
Псевдокоманды. Метки. Комментарии [1]
Раздел 11. Псевдокоманды ассемблера. Метки. Комментарии
Программирование на ассемблере [1]
Раздел 12. Программирование на ассемблере. Начало. Трансляция программ. Ошибки
Отладка программ [1]
Раздел 13. Отладка программ. Позиционно-независимое программирование. Компановка
Подпрограммы ПЗУ БК-0010 [1]
Раздел 14. Подпрограммы ПЗУ БК-0010
Системная область ОЗУ БК-0010 [1]
Раздел 15. Системная область ОЗУ БК-0010. Некоторые секретные сведения об авторе и МП-клубе
Повышение быстродействия БК-0010 [1]
Раздел 16. Вопросы повышения быстродействия БК-0010
Об использовании ПЗУ [1]
Раздел 17. Полезная подпрограмма. Об использовании ПЗУ
Загадочные регистры [1]
Раздел 18. Загадочные регистры
Штурм системной области [1]
Раздел 19. Продолжаем штурм системной области
Об автозапуске программ [1]
Раздел 20. Об автозапуске программ
Коварные программы [1]
Раздел 21. Коварные программы
Еще о системной области [1]
Раздел 22. О пользе плагиата, или еще о системной области
О псевдокомандах и компановке [1]
Раздел 23. Еще раз о псевдокомандах, метках и компановке
Тук-тук, кто в стеке живет? [1]
Раздел 24. Тук-тук, кто в стеке живет?
Фокал с позиций ассемблера [1]
Раздел 25. Взгляд на фокал с позиций ассемблера
Наш опрос
Оцените мой сайт
Всего ответов: 47
 Каталог статей
Главная » Статьи » Коварные программы

Коварные программы

Как уже говорилось раньше, в практике программирования нередко применяется такой прием, как изменение векторов прерывания, причем это касается как "аппаратных" векторов (4, 24, 60, 100, 274), так и "программных" (10, 14, 20, 30, 34). Программа, изменяющая при запуске векторы прерывания, исполняет, хорошо ли, плохо ли, свои определенные функции. Но вот мы закончили с ней работу. Что дальше? Как обычно - стоп, выход в МСД, загрузка другой программы...
Осторожно! Ведь совсем не обязательно, что векторы прерывания восстановились! И, когда мы загрузим новую программу, а она затрет старую, вектор прерывания, "нацеленный" на нее, зависнет. А это - не больше, не меньше, чем потеря управления от клавиатуры, или блокировка клавиши стоп, или попросту полный отказ дисплея. То есть, приятного мало!

Необходим перезапуск системы. Как же быть, чтобы избежать неприятностей? Прежде всего, можно в программе, изменяющей векторы прерывания, предусмотреть по клавише стоп не просто выход в МСД, но восстановить перед этим векторы прерываний. Можно сделать это неявно, с помощью команды ЕМТ 14 (инициализация драйверов), но при этом выход будет не в МСД, а в ПМ. Однако, учитывая, что такие меры принимаются далеко не всегда (иногда это довольно сложно, а длина программы ограничена), лучше всего перед загрузкой новой программы всегда производить перезапуск системы с помощью переключателя стоп-пуск в отсеке ПЗУ, либо путем кратковременного отключения питания БК-0010.

Категория: Коварные программы | Автор: ЗАЛЬЦМАН Ю.А., МП-КЛУБ, г.АЛМА-АТА
Просмотров: 488 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Используются технологии uCoz
Форма входа

Поиск
Друзья сайта
Статистика