Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Структура и образ памяти .exe программы.




 
 

Образ.exe программы в памяти [_], представленный на рис. 2.5, начинается с префикса программного сегмента PSP (Program Segment Prefix). Вслед за PSP располагаются сегменты программы. Сегментные регистры ES и DS автоматически инициализируются на начало PSP. Это даёт возможность, при сохранении значения одного из регистров, обращаться к нему в случае необходимости. В указатель команд IP загружается относительный адрес точки входа в программу, а в указатель стека SP - смещение конца сегмента стека.

Таким образом, после загрузки программы в память адресуемыми являются все сегменты, кроме сегмента данных. Инициализация регистра DS производится обычно в первых строках программы.

Листинг 1.4. Шаблон стандартного формата.exe программы.

TITLE “Шаблон упрощенного формата.com программ”

;Директивы INCLUDE “filename”

;Макроопределения EQU и =

DATASG SEGMENT Para ‘Data’

;Если программа будет прервана по ошибке, то соответствующий код ошибки записывается в exCode и выполняется команда перехода на метку Exit.

exCode DB 0

;Описания других переменных

DATASG ENDS

STACKSG SEGMENT Para STACK ‘Stack’

db 100h dup(?)

STACKSG ENDS

CODESG SEGMENT Para ‘Code’

ASSUME CS:CODESG, DS:DATASG, SS:STACKSG

Start:

MOV AX, DataSg; инициализация сегмента данных

MOV DS, AX

;Тело программы

MOV AH, 004Ch; Функция DOS выхода из программы

MOV AL, [exCode]; Возврат значения кода выхода

INT 21h; Вызов DOS. Останов программы.

CODESG ENDS

END Start; Конец программы

Листинг 1.5. Шаблон упрощенного формата.exe программы.

%TITLE “Шаблон стандартного формата.exe программ”

IDEAL

MODEL small

STACK 256

;Директивы INCLUDE “filename”

;Макроопределения EQU и =

DATASEG

;Если программа будет прервана по ошибке, то соответствующий код ошибки записывается в exCode и выполняется команда перехода на метку Exit.

exCode DB 0

;Описания других переменных

CODESEG

Start:

MOV AX, @DATA; Установка в DS адреса сегмента данных

MOV DS, AX;

MOV ES, AX; Установка ES = DS

INT 21h; Вызов DOS. Останов программы.

; Тело программы

Exit:

MOV AH, 004Ch; Функция DOS выхода из программы

MOV AL, [exCode]; Возврат значения кода выхода

INT 21h; Вызов DOS. Останов программы.

END Start; Конец программы







Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных