Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler (Уч_пос_Лаб_Ч1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

3. Взаимодействие Ассемблерной программы с ms-dos и аппаратными средствами Компьютера

Особенности взаимодействия программного кода программы с операционной средой DOS и программно доступными аппаратными средствами компьютера представлены на рис. 1.

Функции, выполняемые BIOS и DOS, а также драйверы образуют так называемые системные программные средства, без использования которых невозможно написать ни одну программу на языке ассемблера. При разработке программ на языках высокого уровня многие средства DOS реализуются в неявной форме с помощью использования встроенных функций или библиотечных процедур, в то время как ассемблерная программа обращается к функциям BIOS и DOS непосредственно с помощью механизма программных прерываний. Для вызова функции (модулей) BIOS или DOS программа использует команду Int n с соответствующим номером n. Программа передает параметры модулям BIOS (или DOS) через регистры процессора, результат работы модуля возвращается также в регистрах.

Рис. 1. Уровни взаимодействия аппаратных и системных средств MS-DOS при исполнении ассемблерной программы

BIOS обеспечивает управление аппаратурой компьютера на самом низком (физическом) уровне путём обращения к портам и аппаратным буферам, поэтому её программные модули меняются с изменением "материнской" платы компьютера. Прикладные программы используют не все возможные номера прерываний для BIOS. Часть из них предназначена для аппаратных прерываний от периферийных устройств, а часть зарезервирована для MS-DOS. Ниже перечислены функции BIOS, предоставляемые пользовательским программам на ассемблере [2]:

  • определение конфигурации компьютера (Int 11h);

  • определение объема оперативной памяти (Int 12h);

  • работа с видеоконтроллером (Int 10h);

  • работа с клавиатурой (Int 16);

  • обслуживание дисковой подсистемы (Int 13h);

  • вывод данных в параллельный порт (Int 17h);

  • обслуживание последовательного порта (Int 14h);

  • работа с системными часами (Int 1Ah);

  • перезагрузка операционной системы (Int 19h);

  • системный сервис для машин класса AT (Int 15h).

Программы DOS, размещаемые в основном в файлах Io.sys и Msdos.sys, образуют более высокий уровень управления компьютером. Ниже перечислены функции, предоставляемые программе через механизм прерываний [2]:

  • завершение работы программы (Int 20h, Int 4Ch);

  • чтение диска и запись на диск с абсолютной адресацией секторов (Int 25h, Int 26h);

  • завершение работы программы с оставлением ее резидентной в памяти (Int 27h, Int 31h);

  • недокументированное прерывание, используемое резидентными программами (Int 28h);

  • выполнение команды MS-DOS (Int 2Eh);

  • мультиплексное прерывание, используется для программы печати print и других резидентных программ; открывает доступ к внутренним функциям и структурам MS-DOS (Int 2Fh).

Важные функции выполняет прерывание Int 21h – их можно разделить на следующие группы:

  • получение системной информации;

  • символьный ввод/вывод;

  • работа с файловой системой;

  • управление программами;

  • управление памятью;

  • связь с драйверами устройств;

  • прочий системный сервис (обработка ошибок, служба времени).

В заключение следует отметить два момента для программ на языке ассемблере:

  • программы могут обращаться к драйверам только через соответствующую подсистему MS-DOS;

  • средства доступа аппаратного уровня обеспечиваются в основном системой команд микропроцессора.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]