Студопедия

КАТЕГОРИИ:


Архитектура-(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 = режим установки указателя:

  • 0 - смещение от начала файла
  • 1 - смещение от текущего положения указателя
  • 2 - смещение от конца файла

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 = атрибуты файла (могут комбинироваться):

  • 1 - только читаемый (read only)
  • 2 - скрытый (hidden)
  • 4 - системный (system)
  • 8 - метка тома
  • 20h - архивный (archive)

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 c c c c c c
Номер бита                
Содержимое бита C c S s s s s s

Буква "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; Просмотров: 442; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.