Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Охарактеризуйте системные средства управления памятью. Опишите структуру и образ памяти программ .EXE и .COM.

Читайте также:
  1. A. Образование карбоксигемоглобина
  2. A1. Сущность и классификация организаций. Жизненный цикл организации и специфика управления на различных его этапах.
  3. C)& сложная форма государственного устройства, состоящая из государственных или национально-государственных образований, обладающих юридически определенной самостоятельностью
  4. CASE-средства. Общая характеристика и классификация
  5. Cтили управления и типы способностей сотрудников
  6. Cтруктура Pascal-программы.
  7. D)& сложная форма государственного устройства, состоящая из государственных или национально-государственных образований, обладающих юридически определенной самостоятельностью
  8. E) организациях, обладающих имуществом на праве хозяйственного ведения или оперативного управления.
  9. E)если вследствие злоупотребления спиртными напитками и наркотическими средствами он ставит свою семью в тяжелое материальное положение.
  10. Esse est percipi» как мировоззренческий ориентир и программа исследований. Субъект как внепространственная и вневременная опора мира

Все программы, запускаемые на выполнение в операционной системе DOS, загружаются в память с помощью функции Exec (Int 21h, функция 4Bh). Кроме загрузки программы, эта функция формирует PSP (префикс программного сегмента) загружаемой программы, создает копию окружения, а также настраивает регистры. Эту функцию может вызывать как COMMAND.COM, так и любой другой запущенный процесс, в том числе и поль­зовательский.

При запуске программы в DOS, ей отводится вся свободная память. Для того чтобы загрузить дочерний процесс, родительская программа должна оп­ределить объём памяти необходимый ей для выполнения, освободить неис­пользуемую память, уменьшив выделенную ей память до необходимого раз­мера. Операции с памятью реализуются функциями 48h (выделить блок па­мяти), 49h (освободить выделенную память) и 4Ah (изменить размер уже вы­деленного блока).

Размеры .СОМ и. ЕХЕ программ вычисляются различным образом. Для определения размера .ЕХЕ программы, состоящей из трех сегментов -сегмента кода, данных и стека, следует включить в программу пустой фик­тивный сегмент, расположив его после всех остальных сегментов. Этому сегменту необходимо присвоить произвольный класс, гак как сегменты одно­го класса располагаются в памяти друг за другом. Сегменты без имени класса принадлежат к безымянному классу. Возможна ситуация, когда фиктивный сегмент без класса будет загружен сразу после другою сегмента без класса, а не в самом конце программы, как требуется. Учитывая, что при загрузке в регистре es находится адрес начала программы (адрес PSP), размер програм­мы типа ЕХЕ можно определить следующим образом:

EXEC загружает в память программу типа. СОМ, начиная с адреса PSP: 0100h, и передает; ей управление. При загрузке программы типа. ЕХЕ, в которой есть команды вызова дальних процедур (сегментов данных), DOS изменяет эти команды так, чтобы используемые в них сегментные адреса соответствовали сегментным адресам, по которым загружены в память указанные процедуры (сегменты данных).

После загрузки программы типа. СОМ содержимое регистров следующее:

- в AL будет код OFFh, если первый аргумент командной строки содер­жит ошибочное имя диска, иначе - 00h;

- в АН будет код OFFh, если второй аргумент командной строки со­держит ошибочное имя диска, иначе - 00h;

- в регистры CS, DS, ES, SS загружается сегментный адрес PSP;

- в IP записывается 100Н, смещение точки входа в программу;

- в SP - адрес последнего слова в сегменте (обычно OFFFEh; меньше, если не хватает памяти). Пользователь может выделить буфер под стек и, ес­тественно, установить другое значение SP.

При запуске программы типа. ЕХЕ регистры ES, DS загружаются сегментным адресом PSP, CS - сегментным адресом кода программы, SS -сегментным адресом сте­ка, а SP - адресом вершины стека, на IP записывается смещение точки входа в программу.

Затем в стек помещается слово OOOOh и управление передаётся на стар­товую точку программы (для программы типа СОМ - PSP:0100h; для про­граммы типа. ЕХЕ - указанная в директиве END точка входа).




Дата добавления: 2015-02-16; просмотров: 72 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав