Студопедия

КАТЕГОРИИ:


Архитектура-(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)

DOS Fn 49H: Освободить распределенный блок памяти




Выход

Вход

Выход

Вход

Выход

Вход

DOS Fn 46H: переназначить описатель -- FORCDUP

Выход

Вход

  • AH = 45H
  • BX = существующий описатель файла
  • AX = новый описатель файла, дублирующий оригинал или код ошибки если CF установлен.

Описание:

Создает дополнительный описатель файла, ссылающийся на тот же поток в/в, что и существующий описатель. Любое продвижение указателя чтения/записи для одного описателя действует на его дубликат -- включая любые операции чтения, записи или перемещения указателя посредством функции 42H LSEEK. Новый описатель наследует ограничения режима открытия оригинала. Эта функция используется с одной главной целью: вы можете закрыть описатель, заставляя DOS записать файловые буфера. такой способ DUP/CLOSE - быстрее, чем закрытие и повторное открытие файла.

  • AH = 46H
  • BX = целевой описатель файла (должен уже существовать)
  • CX = исходный описатель файла (должен уже существовать)
  • AX = код ошибки если CF установлен

Описание:

Заставляет описатель файла (handle) ссылаться на другой файл или устройство. описатель в CX (источник) закрывается, если он открыт, а затем становится дубликатом описателя в BX (назначения). Иными словами, описатели в CX и BX будут ссылаться на один и тот же физический файл или устройство.

используется для переназначения стандартного в/в. пример:

  • Откроем файл "C:STDOUT.TXT" через функцию 3dH Open File и получим описатель (например, 05).
  • установим BX=05, CX=01 и вызовем эту функцию. (замечание: описатель 01 - это предопределенный описатель "стандартного выходного устройства").
  • Теперь можно вызвать функцию 3eH Close File и закрыть handle 05. можно обращаться к файлу STDOUT.TXT через описатель 01.
  • Стало быть, дисковый файл "C:STDOUT.TXT" будет отныне получать весь вывод, создаваемый всеми процессами (текущим и порожденными) через любую функцию символьного в/в DOS, так же как и любой вывод в описатель файла 01 через функцию DOS 40H.
  • когда вы выходите в COMMAND.COM, предопределенные описатели устанавливаются на обычные устройства (например, описатель 01 устанавливается на "CON").


DOS Fn 47H: дать умалчиваемое оглавление DOS

  • AH = 47H
  • DS:SI = адрес локального буфера для результирующего пути (64 байта)
  • DL = номер диска (0=текущий, 1=A, и т.д.)
  • AX = код ошибка если CF установлен

Описание:

В пользовательский буфер по адресу DS:SI помещается в форме ASCIIZ путь текущего умалчиваемого оглавления для диска, указанного в DL. Путь возвращается в формате: "путьоглавление",0. Не подставляется впереди буква диска, а сзади не подставляется символ "". например, если текущим является корневое оглавление, эта функция вернет вам пустую строку (DS:[SI] = 0).

DOS Fn 48H: распределить память (дать размер памяти)

  • AH = 48H
  • BX = запрошенное количество памяти в 16-байтовых параграфах
  • AX = код ошибки если CF установлен
  • BX = размер доступной памяти в параграфах (если памяти нехватает)
  • AX = сегментный адрес распределенного блока (если нет ошибок)

Описание:

распределяет блок памяти длиной BX параграфов, возвращая сегментный адрес этого блока в AX (блок начинается с AX:0000). если распределение неудачно, взводится Carry-флаг, в AX возвращается код ошибки, а BX содержит максимальный размер доступной для распределения памяти (в параграфах).

Чтобы определить наибольший доступный кусок, общепринято устанавливать BX=0ffffH перед вызовом. распределение завершится с ошибкой, возвратив размер максимального блока памяти в BX.

Замечание:

когда процесс получает управление через функцию 4bH EXEC, вся доступная память уже распределена ему.




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 769; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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