Совместимость с другими операционными системами 13-41
Операционная система CP/M-80 13-42
Операционные системы СР/M-86 и "Concurrent CP/M-86" 13-44
Операционные системы "Concurrent PC-DOS" и
"Concurrent DOS-286" 13-44
Операционные системы XENIX и UNIX 13-45
Операционная система OS/2 13-45
Заключение 13-46
ЧАСТЬ V. ПРИЛОЖЕНИЯ 17-1
Приложение А. СРЕДСТВА РАЗРАБОТКИ 17-1
Использование командных файлов для автоматизации процесса
трансляции с языка Ассемблера П-1
Использование командных файлов для макроассемблера MASM
версий с 1.00 по 5 П-1
Использование командных файлов для макроассемблера MASM
версий 5 и выше П-3
Использование средства MAKE фирмы "Майкрософт" П-7
Использование шаблонов для создания программ с
расширением ".COM" и ".EXE" П-9
Использование библиотечных стандартных программ П-26
Приложение Б. НЕ ОПИСАННЫЕ В ДОКУМЕНТАЦИИ ПО
ОПЕРАЦИОННОЙ СИСТЕМЕ MS-DOS ПРЕРЫВАНИЯ И ФУНКЦИИ П-43
Не описанные в документации прерывания операционной
системы MS-DOS П-43
Прерывание 28h(40): прерывание по безопасности DOS
Прерывание 29h(41): Вывод на устройство консоли
Прерывания с 2Ah(42) по 2Dh(45) : внутренние стандартные
программы операционной системы MS-DOS
Прерывание 2Eh(46). "Черный ход" для командного
процессора
Прерывания с 30h(48) по FFh(255)
Не описанные в документации вызовы функций прерывания 21h(33)
Функции 18h(24), 1Dh(29), 1Eh(30), 20h(32h): формальные
функции, обеспечивающие совместимость с операционной
системой CP/M
Функция 1Fh(31): найти информацию о блоке на диске для
текущего диска
Функция 32h(50) : найти информацию о блоке на диске
для указанного диска
Функция 34h (52): получить флаг занятости операционной
системы MS-DOS
Функция 37h(55): получить/установить символ переключения
Функция 50h(80): установить сегмент PSP
Функция 51h(81): Считать сегмент PSP
Функция 52h(82): Считать адрес "списка списков"
операционной системы MS-DOS
Функция 53h(83): Преобразовать блок параметров BIOS (BPB)
в блок на диске
Функция 55h(85): Создать блок PSP
Функция 58h(88): Получить/установить стратегию
распределения памяти
Функция 60h(96): Разложить строку пути доступа на строку
с полностью уточненным путем доступа
Функция 63h(99): Получить таблицы начального байта
Приложение В. ЛИТЕРАТУРА П-52
Книги П-52
Статьи П-53
Приложение Г. СПРАВОЧНИК ПО КОДАМ ASCII
И ПРЕОБРАЗОВАНИЯ ЧИСЕЛ П-54
Описания непечатаемых символов ASCII П-57
Преобразование шестнадцатиричного кода в десятичный П-59
Преобразование десятичного кода в шестнадцатиричный П-60
Приложение Д. СТРУКТУРЫ ОПЕРАЦИОННОЙ СИСТЕМЫ MS-DOS П-64
Структура каталога П-64
Блок параметров базовой системы ввода-вывода BIOS (BPB) П-64
Формат сегмента префикса программы (PSP) П-66
Заранее определенные описатели файла П-66
Коды возврата П-66
Коды ошибок операционной системы MS-DOS версий с 2.00 по 4.0
Коды ошибок операционной системы MS-DOS версий с 3.0 по 4.0
Коды ошибок операционной системы MS-DOS версий с 3.1 по 4.0
Коды ошибок операционной системы MS-DOS версий с 3.3 по 4.0 П-67
Прерывания операционной системы MS-DOS П-69
Прерывание 20h - Завершить программу
Прерывание 21h - Запрос на вызов функции
Прерывание "int 23h"
AH = 00h - Завершить программу
AH = 01h - Ввести символ с консоли с эхом
AH = 02h - Ввести символ на консоль
AH = 03h - Ввести символ со вспомогательного порта
AH = 04h - Вывести символ на вспомогательный порт
AH = 05h - Вывести символ на печатающее устройство
AH = 06h - Назначить консольный ввод/вывод
AH = 07h - Назначить консольный ввод символа без эха
AH = 08h - Назначить консольный ввод символа без эха
AH = 09h - Вывести строку на консоль
AH = 0Ah - Ввести буферизованную строку с консоли с эхом
AH = 0Bh - Проверить состояние стандартного устройства
AH = 0Ch - Очистить буфер клавиатуры и вызвать функцию
работы с клавиатурой
AH = 0Dh - Сброс/переустановка диска
AH = 0Eh - Выбрать диск
AH = 10h - Закрыть файл с помощью блока FCB
AH = 11h - Поиск первой записи в FCB
AH = 12h - Поиск следующей записи в FCB
AH = 13h - Удалить через FCB файл
AH = 14h - Последовательно считать FCB
AH = 15h - Последовательная запись FCB
AH = 16h - Создать файл через FCB
AH = 17h - Переименовать файл через FCB
AH = 19h - Получить текущий диск
AH = 1Ah - Установить адрес передачи на диск
AH = 1Bh - Получить информацию таблицы распределения
AH = 1Ch - Получить информацию таблицы распределения
для указанного устройства
AH = 21h - Произвольное считывание файла
AH = 22h - Произвольная запись в файл
AH = 23h - Получить размер файла
AH = 24h - Установить поле относительной записи
AH = 25h - Установить вектор прерывания
AH = 26h - Создать новый сегмент префикса программы
AH = 27h - Считать произвольный блок файла
AH = 28h - Запись в произвольный блок файла
AH = 29h - Проанализировать имя файла FCB
AH = 2Ah - Получить дату
AH = 2Bh - Установить дату
AH = 2Ch - Получить время
AH = 2Dh - Установить время
AH = 2Eh - Установить/сбросить переключатель проверки
AH = 2Fh - Получить адрес передачи диска (DTA)
AH = 30h - Получить номер версии операционной системы
AH = 31h - Завершить процесс и остаться резидентным
AH = 33h - Получить/установить статус проверки
"Ctrl-Break"
AH = 35h - Получить вектор прерывания
AH = 36h - Получить свободное пространство памяти на
диске
AH = 38h - Получить текущую информацию о стране
AH = 38h - Установить информацию, относящуюся к стране
AH = 39h - Создать подкаталог (MKDIR) стране
AH = 3Ah - Удаление подкаталога (RMDIR)
AH = 3Bh - Изменение текущего каталога (CHDIR)
AH = 3Ch - Создать файл (СREATE)
AH = 3Dh - Открыть файл
AН = 3Eh - Закрыть описатель файла
AH = 3Fh - Считать с файла или с устройства
AH = 40h - Записать в файл или на устройство
AH = 41h - Удалить файл из указанного каталога
AH = 42h - Передвинуть указатель считывания/записи
файла (LSEEK)
AH = 43h - Изменить режим файла (CHMOD)
AH = 44h - Управление устройствами ввода/вывода
(IOCTL)
AH = 45h - Дублировать описатель файла (DUP)
AH = 46h - Вынужденное дублирование описателя файла
(FORCDUP)
AH = 47h - Получить текущий каталог
AH = 48h - Распределить память
AH = 49h - Освободить распределенную память
AH = 4Ah - Модифицировать распределенные блоки памяти
(SETBLOCK)
AH = 4Bh - Загрузить или выполнить программу (EXЕС)
AH = 4Ch - Завершить процесс (EXIT)
AH = 4Dh - Получить код возврата подпроцесса (WAIT)
AH = 4Eh - Найти первый совпавший файл (FINDFIRST)
AH = 4Fh - Найти следующий совпадающий файл (FINDNEXT)
AH = 54h - Получить установку верификации
AH = 56h - Переименовать файл
AX = 5700h - Получить дату и время файла
AX = 5701h - Установить дату и время файла
AH = 59h - Получить расширенную информацию об ошибке
AH = 5Ah - Создать временный файл
AH = 5Bh - Создать новый файл
AH = 5Ch - Блокировать/Разблокировать доступ к файлу
AX = 5E00h Сеть: Получить имя ЭВМ
AX = 5E02h Сеть: Установить строку установки принтера
AX = 5E03h Сеть: Получить строку установки принтера
AX = 5F02h Сеть: Получить элемент списка перена-
значения
AX = 5F03h Сеть: Переназначить устройство
AH = 62h Получить адрес сегмента префикса программы
AH = 65h Получить расширенную информацию, относящуюся
к стране [3.3] [4]
AH = 66h Получить/установить глобальную кодовую
страницу
AH = 67h Установить счетчик описателя
AH = 68h Передать файл
AH = 69h Расширенная функция открыть/создать
Прерывание 22h - Завершить адрес
Прерывание 23h - Адрес выхода по Ctrl-Break
Прерывание 24h - Адрес обработчика критических ошибок
Прерывание 25h - Считывание абсолютное =< 32-Мбайтный
диск) и 26h (Запись абсолютная =< 32-Мбайтный диск)
Прерывание 25h - Считывание абсолютное > 32-Мбайтный
диск) и 26h (Запись абсолютная > 32-Мбайтный диск)
Прерывание 27h - Завершиться и остаться резидентным
Прерывание 2Fh - Вызовы функции мультиплексного
прерывания
Прерывание 67h - Менеджер расширенной памяти (EMS)
Коды ошибок/состояния LIM EMS 3.Х, 4.0 MS-DOS и
AQA EEMS3.Х П-90 - П-98
Глава 1. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 1: ИНСТРУМЕНТАЛЬНЫЕ
СРЕДСТВА СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
Потребность в короткой записи операторов
Введение в МАКРОСЫ
Условное ассемблирование
Условное ассемблирование и МАКРОСЫ
Структурные операторы управления в языке Ассемблер
Макросы данных
Макросы генерации программного кода
Применение директивы STRUC
Когда программисты-фанатики собираются в своем кругу для об-
суждения тайн структурного программирования, разговор обычно кон-
центрируется на небольшом наборе конструкций языка типа
IF-THEN-ELSE. Приверженец языков Паскаль или Си будет читать лек-
цию о преимуществах языков высокого уровня по сравнению с языками
ассемблерного типа. Вероятно, будут приведены горячие аргументы
по поводу использования оператора GOTO. Несмотря на все предыду-