Используя подсистему прерываний, написать программу, которая выводит на экран информацию о параметрах НЖМД - 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
Листинг программы
  1. var
  2.   DiskCnt, MaxCyl, MaxHead, MaxSect: Byte;
  3. begin
  4.   asm
  5.     mov ah,8h
  6.     mov dl,80h
  7.     int 13h
  8.     mov DiskCnt,dl
  9.     mov MaxHead,dh
  10.     mov MaxCyl,ch
  11.     mov MaxSect,cl
  12.   end;
  13.   WriteLn('Количество дисков: ',DiskCnt);
  14.   WriteLn('Диск 0, C H S: ',MaxCyl,' ',MaxHead,' ',MaxSect);
  15. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы