Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прерывания

1.9K
28 апреля 2004 года
Fatal
75 / / 10.03.2004
Объясните, пожалуста, чайнику в асемблере, что такое прерывание по сути.
424
28 апреля 2004 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by Fatal
Объясните, пожалуста, чайнику в асемблере, что такое прерывание по сути.



Прерывание выполнения кода наверное :) Управление передаётся обработчику, адрес его указан в таблице прерываний(IDT или просто таблица в реальном режиме), и возвращается после окончания работы этого самого обработчика на инструкцию следующую за int, или просто продолжается выполнение в случае аппаратного прерывания(IRQ).

1.9K
29 апреля 2004 года
Fatal
75 / / 10.03.2004
Цитата:
Originally posted by (C)dragon


Прерывание выполнения кода наверное :) Управление передаётся обработчику.



А что такое обработчик?

424
29 апреля 2004 года
(C)dragon
307 / / 04.12.2002
Это процедура, которая вызывается при возникновении прерывания. Литературу читать надо.
1.8K
10 мая 2004 года
MishaSt
170 / / 11.08.2003
К процу идут такие линии, на них устройство подаёт сигнал, если мол оно закончило текущую работу, в ответ проц выбирает из IDT или из табицы, которая начинается с 0-го адреса адресс подпрограммы, и вызывает эту подпрограмму. Эти линии называют IRQ. Но подпрограмм(говорят векторов прерываний) 255, т.е больше чем этих линий. Эти подпрограммы можно также вызвать так int <номер подпрограммы>. К примеру, когда sound blaster отыграл весь звук, который ему передали, вызывается нужная подпрограмма, которая суёт ему новый кусок. Но, как я говорил, векторов больше, чем сигналов, и поэтому на прерываниях висят так же системные подпрограммы, например на int 21h - висит главная подпрограмма-интерфейс к твоей проге от MSDOS, например, настроив регистры, и вызвав int 21h ты можешь создать файл, вывести строку на экран и т.д. Ядро NT тоже имеет такую подпрограмму, токо я номер вектора незнаю, но зовут это NativeApi, а у линуха такая подпрограмма забита на 80h-м прерывании. А юзают это потому, что доступно это любой программе, а то ведь передавать адрес неудобно, на подпрограмму, и с появлением защищённого режима процессора, с вызовом прерывания возможен одновременная смена приоритета, как запрограммишь...Поэтому и юзает Линуха и Винда для себя прерывание, чтоб из режима пользователя, в режим ядра переходить так.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог