перевод с английского на русский, бухгалтерия, symantec, программы архиваторы, win архиваторы, .

compudesign.narod.ru

 
 На сайте
   Главная
   Links

 Разделы
отказоустойчивые вычислительные системы
архиватор rar
немецко русский словарь
антивирус касперского
nod32
Отказоустойчивые системы
резервное копирование файлов
asplinux
системы управления базой данных
антивирус панда
отказоустойчивые вычислительные системы
 Главная  Links
{img1} asplinux deluxe
"Ловушка" критических ошибок и break из ISR ---------------------------------------------------------------- IVT SEGMENT AT 00h ; отметить абсолютный адрес ORG 23h*4 ; мы не заботимся относительно ; 0 - 22h IVT23 DW 0,0 ; входы ссылок для int 23h и IVT24 DW 0,0 ; int 24h IVT ENDS _text SEGMENT BYTE PUBLIC 'code' OldInt23 DW 0,0 ; здесь мы будем сохранять адре- OldInt24 DW 0,0 ; са критической ошибки и преры- ; вания ASSUME ds:_text BKGNewErrHndlr PROC NEAR pushr ; сохранение всех изменяе- ; мых регистров cld ; вывод флажка направления в из- ; вестное состояние для movsw и ; stosw mov ax,cs ; es указывает на сегмент, содер- mov es,ax ; жащий OldInt23 xor ax,ax ; ds указывает mov ds,ax ; на IVT ASSUME ds:IVT,es:_text ; сообщить MASM, что ожидание mov si,OFFSET IVT23 ; установить копию IVT mov di,OFFSET OldInt23 ; входы с movsw mov cx,4 ; каждый вход 2 слова cli ; В А Ж Н О !!! rep movsw ;;; копирование текущих входов ;;; ivt mov es,ax ;;; es теперь указывает на IVT ASSUME es:IVT ;;; сообщить MASM об изменении mov ax,OFFSET NewInt23 ;;; ввод новых значений stosw ;;; в IVT mov ax,cs stosw mov ax,OFFSET NewInt24 stosw mov ax,cs stosw sti popr ASSUME ds:_text ret BKGNewErrHndlr ENDP NewInt23 PROC FAR ; новый обработчик break iret ; игнорирование break NewInt23 ENDP NewInt24 PROC NEAR ; новый обработчик критической ; ошибки iret ; вероятно будут выполнены ка- ; кие-либо действия относительно ; ошибки (может быть отказ вызова) NewInt24 ENDP _text ENDS ---------------------------------------------------------------- - 4-43 - Обращение к глобальным переменным Как минимум, Ваша TSR, устанавливая личную DTA и становясь текущей программой, будет записывать текущие DTA и PSP. Адрес DTA и адрес текущего PSP записывается в глобальные переменные DOS.
системы управления базой данных
{img2} офисные программы
К переменным можно обращаться непосредственно, но их размещение мо- жет изменяться в зависимости от версии DOS. Для получения и уста- новки адреса DTA и адреса текущего PSP имеются служебные функции BIOS.
panda 2007
{img3} файловый менеджер
В этом месте последовательности повторной активации необхо- димо определить, безопасно ли делать запросы к BIOS и защитить себя от break и критических ошибок. Использование для этих целей служебных функций BIOS позволяет не заботиться о положении этих переменных в конкретной версии DOS. Листинг 4-29.
архиватор win rar

русско английский словарь

перевод с английского на русский, бухгалтерия, symantec, программы архиваторы, win архиваторы, .
 

архиватор winrar

В этой точке Ваша TSR теперь становится текущей программой. Так как критические ошибки и критические break могут завершить текущую программу, необходимо быть уверенным в том, что Вы получили шанс вернуться обратно и нашли способ как это сде- лать. Установка своих собственных драйверов критической ошибки и break позволяет TSR быть аккуратной в таких случаях и обходиться с ними безопасным способом. В связи с отсутствием способа определения из программы ISR текущей программы переднего плана, установка драйверов критичес- кой ошибки и break является искусным приемом программирования. Если для манипуляции входом IVT используется int 21, то существу- ет определенный риск получения ошибки break . Самым безопасным способом является способ манипуляции входами IVT непосредственно. Заметим, что необходимо запретить break , пока производится изме- нение входов таблицы. Хотя это и не кажется очевидным, другие программы могут прервать Вашу программу в середине выполнения из- менений, и могут модифицировать входы IVT, с которыми Вы работае- те. Как выполнить эту задачу, показывает листинг 4-28. Действия, которые будут выполняться во вновь установленных драйверах break и критической ошибки, зависят от TSR. Они могут быть проигнорированы, но, обычно, программа при возникновении критической ошибки должна выполнить какие-либо действия. Если TSR может иметь дело со сбойными запросами int 21h (практически, не- обходимо проверять результаты выполнения каждого запроса и быть готовым иметь дело с ошибками), то простейшим способом обработки является отказ от вызова. В то же время имеются другие способы обработки. Например, если произошел сбой диска в связи с тем, что была открыта дверца накопителя, то необходимо напечатать сообще- ние и повторить операцию. - 4-42 - Листинг 4-28.


Навигационные системы


 



Caa?ocea ...
 

CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Hosted by uCoz