|
Разрешение прерываний таким образом, что могут обслуживать-
ся прерывания более высоких приоритетов.
2. Сохранение регистров, которые будут использоваться програм-
мой ISR.
3. |
asplinux 11 |
|
{img2} |
русско английский словарь |
|
Выполнение функций обработки, связанных с прерыванием, как
можно быстрее.
4. Восстановление содержимого сохраненных регистров.
5. |
Архиваторы |
|
{img3} |
symantec antivirus |
|
Выполнение команды IRET для возобновления выполнения пре-
рванной программы.
Представленная ниже программа содержит структуру программы
ISR:
sti ; разрешить прерывания
push ax ; сохранить только те
push bx ; регистры, которые ис-
push cx ; пользуются программой
push dx ; ISR
.
.
.
mov ax,cs ; локальные данные, к ко-
; торым будет вестись об-
; ращение
mov ds,ax ; с использованием области
; DS
.
.
. ; обработать прерывания
pop dx ; восстановить регистры в
pop cx ; обратном порядке
pop bx ;
pop ax ;
iret ; возобновить выполнение
; прерванной программы
При появлении прерывания процессор сохраняет три слова (CS,
IP, флаги) и считывает два слова (адрес программы ISR). |
avast antivirus |
|
|
asplinux, avast antivirus, резервное копирование файлов, avast 4 server, антивирус панда, .
Отказоустойчивые системы
|
Эта скорость передачи
данных означает, что компьютер может считывать данные максимум
93000 раз из порта.
В приводимом ниже куске программы происходит проверка на на-
личие готовых к пересылке данных в последовательном порту. Для
этого используется функция прерывания "int 14h" со значением AH=3
(требование к состоянию последовательного порта). При возврате,
если бит 0 регистра AH имеет значение "1", это значит, что имеются
готовые данные. Программа обычно ожидает появление готовых данных
и они возвращаются в регистр AL.
wait:
mov ah,3 ; считать значение состояния
; последовательного порта
mov dx,0 ; требуется состояние порта
; COM1
int 14h ; обращение к ПЗУ-DIOS
and ah,1 ; данные готовы?
jz waite ; нет, ожидать, пока данные
; не будут готовы
mov ah,2 ; Функция=считывания данных
mov dx,0 ; считывание из порта COM1
int 14h ; обращение к ПЗУ-BIOS
Передача данных методом прямого доступа к памяти (DMA)
Передача данных методом прямого доступа к памяти (DMA) ис-
пользуется, когда требуется передача больших объемов данных, а
процессор занят выполнением других задач на фоне передачи данных.
Обычно только процессор имеет доступ к памяти. Но при наличии
прямого доступа к памяти (DMA) внешние устройства тоже могут об-
ращаться к памяти. Внешнее устройство блокирует процессор и начи-
нает само вести обмен данных с памятью. Во время передачи данных
процессор не может обращаться к памяти, но может выполнять какую-
то другую работу. После завершения процедуры передачи данных
процессор вновь получает возможность обращения к памяти.
Передача данных методом прерываний данных
Передача данных методом прерываний данных используется, ког-
да передача данных ведется асинхронно (то есть, время, отведенное
для передачи данных заранее не определяется). И такая передача
данных обычно происходит сравнительно не часто. Прерывание указы-
вает на появление какого-либо внешнего события в процессоре, тре-
бование может вызываться каким-либо внешним по отношению к про-
цессору устройством, часами (таймером) или какой-либо программой.
При наступлении прерывания процессор приостанавливает выполнение
текущей программы ("подвешивает" ее), считывает адрес сервисной
программы прерываний (программы ISR) из таблицы векторов прерыва-
- 5-15 -
ний и выполняет последнюю.
Основными функциями, выполняемыми сервисной программой ISR,
являются :
1.
|
|
|