русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Обычная память


Дата добавления: 2014-11-27; просмотров: 644; Нарушение авторских прав


До сих пор, если требовалось создать массив данных в памяти, мы просто обращались к памяти за концом программы, считая, что там имеется еще хотя бы 64 Кб свободной памяти. Разумеется, как и во всех операционных системах, в DOS есть средства управления распределением памяти - выделение блока (аналог стандартной функции языка С inalloc), изменение его размеров (аналог realloc) и освобождение (free).

Функция DOS 48h: Выделить память

Вход: АН = 48h

ВХ = размер блока в 16-байтных параграфах

Выход: CF = 0, если блок выделен

АХ = сегментный адрес выделенного блока

CF = 1, если произошла ошибка:

АХ =7 - блоки управления памятью разрушены

АХ = 8 - недостаточно памяти:

ВХ = размер максимального доступного блока

Эта функция с большим значением в ВХ (обычно 0FFFFh используется для определения размера самого большого доступного блока памяти.

Функция DOS 49h: Освободить память

Вход: АН = 49h

ES = сегментный адрес освобождаемого блока

Выход: CF = 0, если блок освобожден

CF = 1, АХ = 7, если блоки управления памятью разрушены;

АХ = 9, если в ES содержится неверный адрес

Эта функция не позволит освободить блок памяти, которым текущая програм­ма не владеет, но с помощью функции DOS 50h (AX = 50h, ВХ = сегментный ад­рес PSP процесса) программа может «притвориться» любым другим процессом.

Функция DOS 4Ah: Изменить размер блока памяти

Вход: АН = 4Ah

ВХ = новый размер в 16-баитных параграфах

ES = сегментный адрес модифицируемого блока

Выход:CF = 1, если при выполнении операции произошла ошибка

АХ = 7, если блоки управления памятью разрушены

АХ = 8, если не хватает намят (при увеличении)

АХ = 9, если ES содержит неверный адрес

ВХ = максимальный размер, доступный для этого блока

Если для увеличения блока не хватило памяти, DOS расширяет его до возмож­ного предела.



При запуске СОМ-программы загрузчик DOS выделяет самый большой до­ступный блок памяти для этой программы, так что при работе с основной памятью эти функции требуются редко (в основном для того, чтобы сократить выделен­ный программе блок памяти до минимума перед загрузкой другой программы), но уже в MS DOS 5.0 и далее с помощью этих же функций можно выделять па­мять в областях UMB - неиспользуемых участках памяти выше 640 Кб н ниже 1 Мб, для чего требуется сначала подключить UMB к менеджеру памяти н изме­нить стратегию выделения памяти с помощью функции DOS 58h.



<== предыдущая лекция | следующая лекция ==>
OUT Записать данные в порт. | Интерфейс ЕМS


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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