Поиск по сайту:


«Assembler IBM PC 3. Взаимодействие Ассемблерной программы с MS-DOS и аппаратными средствами компьютера»

Файл: 4 КБ
Поделиться:

Особенности взаимодействия программного кода программы с операционной средой 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;

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