IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Резиденты. Запрет прерываний., CLI
Altair
сообщение 7.06.2004 15:16
Сообщение #1


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Когда надо запрещать все прерывания, когда изменяем таблицу прерываний, или уже когда наш обработчик что-то выполняет?

Сообщение отредактировано: Oleg_Z - 7.06.2004 16:34


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CJ
сообщение 8.06.2004 13:15
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


Наверно программно через Пас, никак, может ошибаюсь.
Но если теретически, то необходимо просто перехватить запрос на прерывание, и... Что нить с ним сделать, отклонить как нибудь.

Сообщение отредактировано: CJ - 8.06.2004 13:16


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 8.06.2004 13:55
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Через пас можно - ASM CLI END;
Только когда делать это,
Вот скелет резидента:

{...}
{$F+}
procedure zamena_prerivania;
begin
{...}
end;
{$F-}
{...}
begin
{...}
end.

Так вот, где в нем надо обрамить в запрет и разрешение прерываний?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CJ
сообщение 8.06.2004 15:09
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


А каким образом ОБРАМИТЬ?


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 8.06.2004 15:35
Сообщение #5


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Я имею ввиду какой кусок кода должен выполняться С ЗАПРЕЩЕНИЕМ ВСЕХ ПРЕРЫВАНИЙ.
обрамить - CLI (запрет прерываний) и еще есть команда разрешения их.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BlackShadow
сообщение 11.06.2004 12:23
Сообщение #6


Гость






Менять вектор можно без CLI, если он один. Если ты меняешь стадо векторов, а твоя прога рассчитанана то, что замена происходит "в один такт", то лучше обрамить и этот момент. А внутри своего обработчика аппаратного прерывания это просто необходимо.
 К началу страницы 
+ Ответить 
Altair
сообщение 11.06.2004 12:50
Сообщение #7


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Угу, все спасибо.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FreeMan
сообщение 12.06.2004 20:46
Сообщение #8


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Команда разрешения прерываний - STI


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dark
сообщение 24.06.2004 7:24
Сообщение #9


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Я бы лучше и когда один изменял бы - устанавливал запрет...


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BlackShadow
сообщение 25.06.2004 12:04
Сообщение #10


Гость






Замена происходит в 1 операцию (если делать грамотно). Во время выполнения операции INT'ы явно не генеряться.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.04.2024 16:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"