Адресация памяти в DOS
· Сегментный регистр данных DSлокализует основные данные программы;
· Дополнительный сегментный регистр ESрасширяет сегмент данных;
· Сегментный регистр стека SSсодержит базовый адрес стека компьютера.
Если сегментную часть адреса можно использовать только из сегментных регистров, то смещение программа может получить из различных регистров, включая регистры общего назначения. Смещение можно вычислить или встроить в коды машинных команд.
Преодоление барьера в 64 Кбайт
При выполнении программа обращается к своим частям и к данным. В простейшем случае программа использует сегментный регистр кода CS для локализации частей программы и сегментный регистр данных DSдля локализации данных. Если любой из них фиксирован, то соответствующий компонент не может быть более 64 Кбайт. Если любой регистр можно динамически изменять при выполнении программы, то ограничения на размер нет. В случае, когда фиксированы оба регистра, получается малая модель памяти. Когда оба регистра допускают изменения, получается большая модель памяти.
Когда программа манипулирует сегментными регистрами, она испытывает дополнительную нагрузку, которая замедляет ее выполнение, а управление памятью усложняет логику программы.
предыдущаяследующая