Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Структура и образ памяти .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; Конец программы






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 769 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2407 - | 2289 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.