КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функция 4Fh
Функция 4Eh Функция 4Ch Функция 4Ah Функция 49h Функция 48h Функция 42h Установка указателя в файле. Предназначена для установки указателя на требуемый байт в файле. Вызов: AH = 42h BX = дескриптор AL = режим установки указателя:
CX = старшая часть смещения DX = младшая часть смещения Возврат: CX = старшая часть возвращенного указателя DX = младшая часть возвращенного указателя. Выделение блока памяти указанного размера. Выделяет блок памяти, после чего возвращает его сегментный адрес. Вызов: AH = 48h BX = Размер блока памяти в параграфах Возврат: AX = сегментный адрес выделенного системой блока При ошибке: CF = 1 AX = код ошибки. BX = размер наибольшего доступного в данный момент блока. Освобождение блока памяти. Вызов: AH = 49h ES = сегментный адрес блока,который следует освободить При ошибке: CF = 1 AX = код ошибки. Изменение размера блока памяти, который был выделен программе. Вызов: AH = 4Ah BX = новый размер блока в параграфах. ES = сегментный адрес блока, размер которого следует изменить При ошибке: CF = 1 AX = код ошибки. BX = размер наибольшего доступного в данный момент блока. Завершение процесса с кодом возврата. Завершает текущую задачу и передает код завершения родительскому процессу. Освобождает выделенную программе память, сбрасывает на диск буферы, закрывает дескрипторы, восстанавливает из PSP вектора прерываний INT 22h, INT 23h и INT 24h. Далее управление передается родительскому процессу. Вызов: AH = 4Ch AL = код возврата. AL = 00h обычно соответствует нормальному завершению программы. Поиск первого файла. Производит поиск в заданном каталоге первого файла, соответствующего заданной маске и имеющего указанные атрибуты. Вызов: AH = 4Eh CX = атрибуты файла (могут комбинироваться):
DS: DX = адрес маски для поиска Возврат: имя найденного файла и его расширение записывается в DTA в байты 1Eh - 2Ah. За последним символом расширения всегда следует точка: "." При ошибке: CF = 1 AX = код ошибки. Поиск следующего файла. Почти всегда используется в паре с предыдущей функцией и вызывается после того, как был найден первый файл. Вызов: AH = 4Fh Возврат: имя найденного файла и его расширение записывается в DTA в байты 1Eh - 2Ah. За последним символом расширения всегда следует точка: "." При ошибке: CF = 1 AX = код ошибки. Мультиплексное прерывание INT 2Fh. Используется для организации взаимодействия резидентных программ с системой и друг с другом. Для программиста зарезервированы функции: C0h - FFh. Вызов: AH = 2Fh AL = подфункция Возврат: AL = 0 - программа не установлена и ее можно установить AL = 1 - программа не установлена и ее нельзя установить AL = 0FFh - программа уже установлена. При ошибке: CF = 1 AX = код ошибки. Прерывание INT 13h, функция 02h - чтение сектора. Считывает один или несколько определенных пользователем секторов физического диска в выделенный буфер. Для начального сектора указываются такие координаты: дорожка,сектор, головка. Секторы на дорожке нумеруются от единицы, дорожки и головки нумеруются от нуля. Вызов: AH = 02h AL = количество читаемых секторов CH = дорожка CL = начальный сектор DH = головка DL = дисковод (00h - 07Fh - для дискетного дисковода, 80h - 0FFh - для "винчестера". ES: BX = адрес буфера, в который будет читаться информация из секторов Возврат: CF = 0 AH = 0 AL = количество прочитанных секторов При ошибке: CF = 1 AH = байт состояния. (*) Биты регистра CX 5...0 определяют номер сектора, а биты 15...6 - номер дорожки!!! Это выглядит так:
Буква "C" или "c" означает, что бит принадлежит номеру дорожки; Буква "S" или "s" означает, что бит принадлежит номеру сектора. Таким образом, биты "7" и "6" являются старшими битами номера дорожки, а биты "5" и "4" являются старшими битами номера сектора. Прерывание INT 13h, функция 03h - запись сектора. Записывает один или несколько определенных пользователем секторов на физический диск. Для начального сектора указываются такие координаты: дорожка, сектор, головка. Секторы на дорожке нумеруются от единицы, дорожки и головки нумеруются от нуля. Вызов: AH = 03h AL = количество записываемых секторов CH = дорожка CL = начальный сектор DH = головка DL = дисковод (00h - 07Fh - для дискетного дисковода, 80h-0FFh - для "винчестера". ES: BX = адрес буфера, информация из которого будет записываться в сектора Возврат: CF = 0 AH = 0 AL = количество записанных секторов При ошибке: CF = 1 AH = байт состояния. (*) Биты регистра CX 5...0 определяют номер сектора, а биты 15...6 - номер дорожки!!! (см. функцию 02h). Прерывание INT 13h, функция 08h - получение параметров дисковода. Вызов: AH = 08h DL = дисковод (00h-07Fh - для дискетного дисковода, 80h-0FFh - для "винчестера". Возврат: AH = 0 BL = тип дисковода (только AT и PS2) DL = количество накопителей, обслуживаемых первым контроллером DH = максимальный номер головки CL = максимальный номер сектора CH = максимальный номер дорожки (см. функцию 02h) ES:DI = адрес таблицы параметров дисковода При ошибке: CF = 1 AH = байт состояния. (*) Функция не работает на IBM XT для дисководов!!! Приложение 2. Формат загрузочной записи для MS DOS различных версий
Дата добавления: 2014-11-20; Просмотров: 474; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |