Системное программное обеспечение. Рощин А.В. - 41 стр.

UptoLike

Составители: 

41
int 13H: Дисковый ввод-вывод
Это программное прерывание предоставляет прямой доступ к
дискетам и жесткому диску. Там, где это возможно, рекомендуется
использовать программные прерывания int 25H и int 26H, чтобы
предоставить драйверам устройств DOS выполнять всю низкоуровневую
обработку. Разумеется, для таких операций, как форматирование диска или
установка защиты от копирования, int 13H может оказаться единственной
альтернативой. Ниже дано
описание некоторых функций этого
прерывания.
AH = 00H Сброс устройства. Выполняется полный сброс контроллера.
Если значение DL равно 80H или 81H, выполняется сброс контроллера
жесткого диска, иначе сбрасывается контроллер гибких дисков.
AH = 02H Читать секторы
Вход: DL = номер диска (0=диск A...; 80H = жесткий диск С, 81H =
жесткий диск D и т.д.)
DH = номер головки чтения/записи
CH = номер дорожки (цилиндра)
CL = номер
сектора
AL = число секторов (в сумме не больше чем один цилиндр)
ES:BX => адрес буфера вызывающей программы
0:0078 => таблица параметров гибкого диска
0:0104 => таблица параметров жесткого диска
Выход: Флаг переноса = 1 при ошибке и код ошибки в AH.
ES:BX буфер содержит данные, прочитанные с диска
Замечание
: на сектор и цилиндр отводится соответственно 6 и 10 бит:
биты 0 – 5 CX – номер сектора
биты 6, 7 CX – старшие биты номера цилиндра
биты 8 – 15 CX – младшие биты номера цилиндра
AH = 03H Писать секторы
Вход: (аналогично функции 02H)
ES:BX => данные, записываемые на диск.
Выход: Флаг переноса = 1 при ошибке и код ошибки в AH.
AH = 04H Проверить секторы. Проверяет контрольные суммы для
указанных секторов.
Вход: (аналогично функции 02H. ES:BX также желательно указать)
Выход: Флаг переноса = 1 при ошибке и код ошибки в AH.
AH = 05H Форматировать дорожку. Данные на дорожке, если они есть,
разрушаются.
Вход: DL,DH,CH = диск, головка, дорожка (см. функцию 02H)
                                  41




     int 13H: Дисковый ввод-вывод
      Это программное прерывание предоставляет прямой доступ к
дискетам и жесткому диску. Там, где это возможно, рекомендуется
использовать программные прерывания int 25H и int 26H, чтобы
предоставить драйверам устройств DOS выполнять всю низкоуровневую
обработку. Разумеется, для таких операций, как форматирование диска или
установка защиты от копирования, int 13H может оказаться единственной
альтернативой. Ниже дано описание некоторых функций этого
прерывания.
AH = 00H Сброс устройства. Выполняется полный сброс контроллера.
Если значение DL равно 80H или 81H, выполняется сброс контроллера
жесткого диска, иначе сбрасывается контроллер гибких дисков.
AH = 02H Читать секторы
Вход: DL = номер диска (0=диск A...; 80H = жесткий диск С, 81H =
      жесткий диск D и т.д.)
      DH = номер головки чтения/записи
      CH = номер дорожки (цилиндра)
      CL = номер сектора
      AL = число секторов (в сумме не больше чем один цилиндр)
      ES:BX => адрес буфера вызывающей программы
      0:0078 => таблица параметров гибкого диска
      0:0104 => таблица параметров жесткого диска
 Выход:     Флаг переноса = 1 при ошибке и код ошибки в AH.
           ES:BX буфер содержит данные, прочитанные с диска
Замечание: на сектор и цилиндр отводится соответственно 6 и 10 бит:
• биты 0 – 5 CX – номер сектора
• биты 6, 7 CX – старшие биты номера цилиндра
• биты 8 – 15 CX – младшие биты номера цилиндра
AH = 03H Писать секторы
Вход: (аналогично функции 02H)
      ES:BX => данные, записываемые на диск.
Выход:      Флаг переноса = 1 при ошибке и код ошибки в AH.
AH = 04H Проверить секторы. Проверяет контрольные суммы для
указанных секторов.
Вход: (аналогично функции 02H. ES:BX также желательно указать)
Выход:      Флаг переноса = 1 при ошибке и код ошибки в AH.
AH = 05H Форматировать дорожку. Данные на дорожке, если они есть,
разрушаются.
Вход: DL,DH,CH = диск, головка, дорожка (см. функцию 02H)