|
Действующая подпрог-
рамма, которая нуждается для возврата значений в модификации ин-
дексных регистров,сохраняет значения регистров в стеке программы.
Подпрограммы в/в символов
Функции BIOS в диапазоне 01 - 0ch известны как функции в/в
символов, потому что это следует из способа их использования.
Операции в/в символов занимают относительно много времени. BIOS
может ожидать ввод, чтобы удовлетворить запрос чтения. |
архиватор rar |
|
{img2} |
русско английский словарь |
|
Вывод сим-
волов также занимает относительно много времени. Большинство
функций ввода символов вызывают подпрограмму опроса клавиатуры.
Подпрограмма опроса клавиатуры неоднократно проверяет консоль и
устройство стандартного ввода на наличие прерываний и затем про-
веряет устройство ввода на наличие символов.Если символов в нали-
чии нет,то подпрограмма опроса клавиатуры всегда вызывает диспет-
- 4-25 -
чер фонового раздела. |
перевод с английского на русский |
|
|
Функция вывода на дисплей (AH=2) вызывает
фоновый диспетчер каждый раз, когда она записывает 4 символа. Фо-
новый диспетчер выполняет прерывание int 28h.
Подпрограммы обработки прерывания (ISR) для int 28h при фоно-
вой обработке играют важную роль. |
avast edition |
|
|
symantec antivirus, антивирус, avast 4 professional, прокси сервера, перевод с английского на русский, .
win zip
|
Для продолжения обработки запроса BIOS диспетчеру нужны
регистры DS и BX; DOS будет перезагружать эти регистры перед пе-
редачей управления подпрограмме, которые будут завершать обработ-
ку запроса.
В это время регистры SS:SP все еще содержат адрес стека
программы переднего плана. DOS записывает в статических перемен-
ных значения SS:SP для текущего и предшествующего входа (то есть
соответствующие последние значения SS:SP диспетчера). Диспетчер
также сохраняет текущие значения SS:SP в текущем PSP со смещением
16h. DOS использует стековые величины в PSP для обработки крити-
ческой ошибки; он использует эти величины как общие переменные,
когда он возвращает управление и должен восстановить первоначаль-
ный стек.
Подпрограмма диспетчера использует три собственных стека:
внешний стек, пользовательский стек и стек ввода/вывода диска.
Сохранив программный стек, диспетчер делает безусловное переклю-
чение на внешний стек и разрешает прерывания. Если запрос нахо-
дится в диапазоне от 01h до 0Сh, и диспетчер не обрабатывает кри-
тическую ошибку, то он переходит на стек ввода/вывода. Все другие
запросы, кроме Get Extended Error (AH=59h), диспетчер обслуживает
стеком ввода/ вывода диска.
Если запрос должен быть обслужен стеком ввода/вывода диска и
breaks разрешены, то перед выполнением запроса диспетчер выполня-
ет проверку на break. Функции от 01h до 0ch явно проверяют breaks
при необходимости. (Некоторые из них явно игнорируют breaks; все
другие проверяют breaks. Информация для выполнения описания таких
запросов приведена в "IBM Technical Reference Manual").
Диспетчер int 21h использует код функции AH как индекс в
таблице действующих подпрограмм, перезапоминает DS:BX и передает
управление работающей подпрограмме. После ее выполнения диспетчер
запрещает breaks, уменьшает флаг критического интервала, переза-
поминает регистры SS:SP, перезапоминает значения регистров перед
int 21h и выходит из прерывания через IRET.
|
|
|