Используя подсистему прерываний, написать программу, которая выводит на экран информацию о параметрах НЖМД - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Используя подсистему прерываний написать программу, которая выводит на экран информацию о параметрах НЖМД. $ 13 - дисковые службы Перечень функций (номер функции при вызове прерывания должен содержаться в регистре АН): 0 - сброс дисковой системы; 1 - определение состояния диска; 2 - чтение секторов диска; 3 - запись секторов диска; 5 - форматирование дорожки; 8 - определение текущих параметров диска; 10 - проверка готовности диска; При задании входных параметров обычно используется следующая схема: АН = номер функции; AL = количество секторов (1-128) СН - количество цилиндров (0-1023) CL = номер сектора (1-17) DH = номер головки (0-15) DL = номер дисковода (0 = А :, 1 = 2-й флоппи; $ 80 = жесткий диск 0, $ 81 = жесткий диск 1). возвращает: CF = 0 в случае успеха, = 1 в случае ошибки.

Решение задачи: «Используя подсистему прерываний, написать программу, которая выводит на экран информацию о параметрах НЖМД»

textual
Листинг программы
var
  DiskCnt, MaxCyl, MaxHead, MaxSect: Byte;
begin
  asm
    mov ah,8h
    mov dl,80h
    int 13h
    mov DiskCnt,dl
    mov MaxHead,dh
    mov MaxCyl,ch
    mov MaxSect,cl
  end;
  WriteLn('Количество дисков: ',DiskCnt);
  WriteLn('Диск 0, C H S: ',MaxCyl,' ',MaxHead,' ',MaxSect);
end.

Объяснение кода листинга программы

  1. Объявляются переменные DiskCnt, MaxCyl, MaxHead, MaxSect типа Byte.
  2. В ассемблерной части кода происходит следующее:
    • mov ah,8h - переводит режим работы в режим ввода-вывода 8 (INT 13H)
    • mov dl,80h - записывает в регистр DL число дисков
    • int 13h - выполняет команду INT 13H, которая осуществляет чтение данных из устройства
    • mov DiskCnt,dl - записывает число дисков в переменную DiskCnt
    • mov MaxHead,dh - записывает значение голов в переменную MaxHead
    • mov MaxCyl,ch - записывает значение цилиндров в переменную MaxCyl
    • mov MaxSect,cl — записывает значение секторов в переменную MaxSect
  3. Основная часть программы выводит на экран информацию о параметрах НЖМД:
    • WriteLn('Количество дисков: ',DiskCnt) — выводит на экран строку Количество дисков: и значение переменной DiskCnt
    • WriteLn('Диск 0, C H S: ',MaxCyl,' ',MaxHead,' ',MaxSect) — выводит на экран строку Диск 0, C H S: и значения переменных MaxCyl, MaxHead, MaxSect Весь код написан на языке Turbo Pascal.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы