Загрузка в верхнюю часть памяти - часть 10
0093 F8 CLC
0094 CA 0002 RET 2
0097 DISK ENDP
0097 CODE ENDS
END
Фиг. 10.2 (а) Процедура загрузки для виртуального диска;
(b) Программа драйвера виртуального диска.
Драйвер устройства, приведенный в рассматриваемом примере,
реализует модель диска в оперативной памяти. Мы возьмем 160К
памяти системы и будем исполльзовать ее не как оперативную
память, а как дискету. Мы выбрали именно 160К потому, что это
минимальный объем дискеты фирмы IBM. Очевидно, при большем объеме
оперативной памяти можно моделировать дискету большего объема.
Подпрограмму псевдо-диска можно использовать для повышения
производительности программ, производящих интенсивный обмен с
диском. Например, если поместить на псевдо-диск ассемблер и
исходный код программы, ассемблирование будет произведено не за
минуты, а за секунды. Производительность некоторых программ может
быть повышена более чем на порядок. Платой за такое повышение
производительности являются 160K байт оперативной памяти, отводимые
под псевдо-диск. Если в системе, которая в основном используется
для редактирования и ассемблирования, имеется 256 кбайт памяти, то
в действительности для ассемблера достаточно всего лишь 96 кбайт.
Оставшиеся 160 кбайт можно использовать для моделирования диска в
оперативной памяти. Следует помнить, что содержимое такого диска
теряется при отключении питания, поэтому, прежде чем окончить
работу, убедитесь, что информация скопирована на настоящую
дискету.
Первая подпрограмма на Фиг. 10.2 - процедура загрузки. Ее
код находится в секторе 1 дорожки 0 загрузочной дискеты. Как
поместить программу туда, будет объяснено позже. Подпрограмма POST
при завершении считывает содержимое сетора 1 дорожки 0 в память,
Содержание Назад Вперед