Получение размера свободного пространства на диске.
Получение государственно зависимых форматов.
Создание подкаталога (команда MKDIR).
ЗА
Удаление подкаталога (команда RMDIR).
3В
Установка текущего каталога (команда CHDIR).
3C
Создание файла без использования FCB.
3D
Открытие файла без использования FCB.
3E
Закрытие файла без использования FCB.
3F
Чтение из файла или ввод с устройства.
Запись в файл или вывод на устройство.
Удаление файла из каталога.
Установка позиции для последовательного доступа.
Изменение атрибутов файла.
Управление вводом-выводом для различных устройств.
Дублирование файлового номера.
«Склеивание» дублированных файловых номеров.
Получение текущего каталога.
Выделение памяти из свободного пространства.
Освобождений выделенной памяти.
4А
Изменение длины блока выделенной памяти.
4В
Загрузка/выполнение программы (подпроцесса).
4С
Завершение подпроцесса с возвратом управления.
4D
Получение кода завершения подпроцесса.
4Е
Начальный поиск файла по шаблону.
4F
Поиск следующего файла по шаблону.
Получение состояния верификации.
Переименование файла.
Получение/установка даты и времени изменения файла.
Получение расширенного кода ошибки.
5А
Создание временного файла.
5В
Создание нового файла.
5С
Блокирование/разблокирование доступа к файлу.
Получение адреса префикса программного сегмента (PSP).
Порты
Порт представляет собой устройство, которое соединяет процессор с внешним миром. Через порт процессор получает сигналы с устройств ввода и посылает сигналы на устройство вывода. Теоретически процессор может управлять до 65 536 портами, начиная с нулевого порта. Для управления вводом-выводом непосредственно на уровне порта используются команды IN и OUT:
uКоманда IN передает данные из входного порта в регистр AL (байт) или в регистр АХ (слово). Формат команды:
IN регистр,порт
uКоманда OUT передает данные в порт из регистра AL (байт) или из регистра АХ (слово). Формат команды:
OUT порт,регистр
Номер порта можно указывать статически или динамически:
1. Статическое указание порта возможно при непосредственном использовании значения от 0 до 255:
Ввод: IN AL.порт# ;Ввод одного байта
Вывод: OUT порт#,АХ ;Вывод одного слова
2. Динамическое указание порта устанавливается в регистре DX от 0 до 65535. Этот метод удобен для последовательной обработки нескольких портов. Значение в регистре DX в этом случае увеличивается в цикле на 1. Пример ввода байта из порта 60Н:
MOV DX,60H ;Порт 60Н (клавиатура)
IN AL,DX ;Ввод байта
Ниже приведен список некоторых портов (номера в шестнадцатеричном представлении):
Регистры маски прерывании.
40...42
Таймер/счетчик
Ввод с клавиатуры
Звуковой порт (биты 0 и 1)
Управление играми
3B0...3BF
Монохромный дисплей и параллельный адаптер печати
3D0...3DF
Цветной/графический адаптер
3F0...3F7
Дисковый контроллер
В случае, если, например, программа запрашивает ввод с клавиатуры, то она выдает команду прерывания INT 16H. В этом случае система устанавливает связь с BIOS, которая с помощью команды IN вводит байт с порта 60Н.
На практике рекомендуется пользоваться прерываниями DOS и BIOS.
Однако можно также успешно обойтись без BIOS при работе с портами 21, 40...42, 60 и 201.