"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора Средний уровень.
Прерывание 11H BIOS возвращает байт статуса оборудования в AX. На входе ничего подавать не надо. В примере определяется число дисковых накопителей. ; ---получение числа дисковых накопителей: INT 11H ;получаем байт статуса TEST AL,0 ;имеются накопители? JZ NO_DRIVES ;переход, если нет AND AL,1100000B ;выделяем биты 5-6 MOV CL,5 ;подготовка к сдвигу регистра SHR AL,CL ;сдвиг вправо на 5 битов INC AL ;добавляем 1, т.к. отсчет идет с 1 Низкий уровень. Ассемблерная программа работает так же, как и программа на Бейсике. В примере читается информация о конфигурации для AT, определяя установлен ли математический сопроцессор: MOV AL,14H ;номер регистра OUT 70H,AL ;посылаем запрос IN AL,71H ;читаем регистр TEST AL,10B ;проверяем бит 1 .h3 1.1.7 Ревизия количества памяти. ------------------------------------ Вопрос: "Сколько имеется памяти?",- может иметь три смысла. О каком количестве памяти сообщают переключатели, установленные на системной плате? Сколько микросхем памяти реально установлено в машине? И, наконец, сколько остается свободной памяти, которую DOS может использовать для выполнения Ваших программ? Машина может иметь 10 банков памяти по 64K, но переключатели могут ука- зывать на наличие только 320K, оставляя половину памяти для ка- ких-либо специальных целей. А как может Ваша программа узнать, сколько из доступных 320K она может использовать, учитывая, что другое программное обеспечение может быть загружено резидентным в верхнюю или нижнюю часть памяти? Ответ на каждый вопрос можно получить своим способом. Для PC и XT установка переключателей может быть просто прочитана через порт B микросхемы интерфейса с периферией 8255. В пункте [1.1.1] описано как это делается. BIOS хранит двухбайтную переменную по адресу 0040:0013, которая сообщает число килобайт используемой памяти. Для PCjr бит 3 порта 62H (порт C микросхемы 8255) равен нулю, когда машина имеет добавочные 64K памяти. AT дает особо полную информацию о памяти. Регистры 15H (младший) и 16H (стар- |
|
|