Оперативная память

         

Оперативная память

Оперативная память (ОЗУ RAM) является
Работа с расширенной памятью
После резервирования блока и отображения
Способ пересылки большого блока
Подпрограмма пересыки блока
Пример Б 7 Пересылка содержимого рабочей области экрана

Сохранение и восстановление рабочей области экрана
Пример Б 8 Сохранение или восстановление рабочей области экрана
Пример Б 2 Специальные директивы описания основных сегментов |
Работа с именами сегментов
Динамическое управление памятью
Перед началом выполнения задачи
Блок задачи


Адрес свободного пространства
Размер свободного пространства
Вычисление SwpSeg и GenSeg

Пример Б З Вычисление значений переменных SwpSeg и GenSeg 1
Использование функций DOS
Для того чтобы DOS могла распределять
Определение размера задачи
Функции DOS
Пример Б 4 Получение от DOS значений переменных SwpSeg и GenSeg
Контроль выполнения запросов
Освобождение блоков
Расширенная память (Expanded Memory)

Очень скоро после начала массового
Спецификация расширенной памяти
Примерно в это же время Microsoft
Использование функций драйвера
Для корректной работы с расширенной
Специальные переменные
Резервирование блока
Пример Б 5 Создание в расширенной памяти блока размером 1 Мбайт
Отображение страниц

Пример Б 6 Подпрограмма отображения 4х страниц сегмента EMS
Освобождение памяти

Оперативная память


Оформление подпрограмм
Использование подпрограмм (subroutine)
Классификация подпрограмм
При работе с Макроассемблером
Ближние подпрограммы
Дальние подпрограммы
Описание подпрограмм
Дополнительные точки входа
Пример описания подпрограмм Для
Пример В 1 Три подпрограммы для работы с видеоокнами

Оформление программных модулей
Пример модуля в теле задачи
Пример В 2 Сегмент с описанием подпрограмм NxtWin SetWin PrevWin
Разрядность сегмента
Подключение исходного модуля
Пример объектного модуля Для получения
Пример В З Исходный текст для получения объектного модуля
Построение задачи
Параметры в стеке
Общие сведения

Новое макроопределение
Пример В 4 Макроопределение для вызова подпрограмм
Пример использования макровызова приведен в конце данного раздела
Доступ процедур к параметрам
Таблица В 1 Вариант размещения данных в стеке
Пример В 5 Исходный текст процедуры cnvindec
Работа процедур со стеком
В данном разделе описаны правила
Таблица В 2 Распределение пространства стека в порядке увеличения адресов
Промежуточные переменные

Пример В 6 Варианты оформления начала подпрограммы
Имена параметров и переменных
Контроль пространства стека
Учет особенностей компилятора
При разработке ассемблерных процедур
Различие алгоритмических языков
Полное описание процедуры
Пролог и эпилог
Пример В 7 Измененный текст процедуры cnvindec
Директива вызова процедуры

Вызов cnvindec
Прототип процедуры

Оперативная память


Работа с расширенной памятью
Способ пересылки большого блока
Подпрограмма пересыки блока
Пример Б 7 Пересылка содержимого рабочей области экрана
Сохранение и восстановление рабочей области экрана
Несколько блоков в расширенной памяти
Заключение
Расширенная память (Extended Memory)
Менеджер Extended memory

Поддержка BIOS
Функция 87h Move Extended Memory Block
Пример Б 9 Структура таблицы GDI
ФУНКЦИЯ 88h Get Extended Memory Size
ФУНКЦИЯ 89h Enter Protected Moded
Виртуальный диск
Обычная память (Conventional Memory)

Расположение адресов в регистрах
Пример Б 1 Структура программы состоящей из трех сегментов
Пример Б 2 Специальные директивы описания основных сегментов |
Работа с именами сегментов
Динамическое управление памятью
Блок задачи
Адрес свободного пространства
Размер свободного пространства
Пример Б З Вычисление значений переменных SwpSeg и GenSeg 1

Использование функций DOS
Определение размера задачи
Функции DOS
Функция 48h Allocate Memory
Функция 49h Free Allocated Memory Block
Функция 4Ah shrink or Expand a Memory Block
Пример Б 4 Получение от DOS значений переменных SwpSeg и GenSeg
Контроль выполнения запросов
Освобождение блоков

Расширенная память (Expanded Memory)
Спецификация расширенной памяти
Менеджер расширенной памяти
Функция 40h Get EMM status
Функция 41h Get Physical Segment Address of EMS Frame
Функция 42h Get EMS Memory size
ФуНКЦИЯ 43h Allocate Memory and Open EMM handle
Функция 44h Map Memory
Функция 45h Release Memory

Функция 46h Get EMM version number
Использование функций драйвера
Специальные переменные
Резервирование блока
Пример Б 5 Создание в расширенной памяти блока размером 1 Мбайт
Отображение страниц
Пример Б 6 Подпрограмма отображения 4х страниц сегмента EMS
Освобождение памяти

Оперативная память

Оформление подпрограмм
Классификация подпрограмм
Ближние подпрограммы
Дальние подпрограммы

Описание подпрограмм
Дополнительные точки входа
Пример В 1 Три подпрограммы для работы с видеоокнами
Оформление программных модулей
Пример модуля в теле задачи
Пример В 2 Сегмент с описанием подпрограмм NxtWin SetWin PrevWin
Разрядность сегмента
Расположение сегмента
Подключение исходного модуля
Пример объектного модуля

Пример В З Исходный текст для получения объектного модуля
Заключение
Общие сведения
Новое макроопределение
Пример В 4 Макроопределение для вызова подпрограмм
Работа процедур со стеком
Промежуточные переменные
Пример В 6 Варианты оформления начала подпрограммы
; Вариант 1

Имена параметров и переменных
Контроль пространства стека
Учет особенностей компилятора
Различие алгоритмических языков
Полное описание процедуры
Пролог и эпилог
Пример В 7 Измененный текст процедуры cnvindec
Директива вызова процедуры
Вызов cnvindec
Прототип процедуры

Заключение

Содержание раздела