ТОР 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; Конец программы Не нашли, что искали? Воспользуйтесь поиском:
|