Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


—труктура и образ пам€ти .com программы




¬ MS DOS существует два типа исполн€емых файлов: программы с расширением.com и.exe. ƒл€ исполн€емых программ загружаемых в пам€ть DOS создает специальный блок размером в 256 байт (100h), называемый префиксом программного сегмента (PSP - Program Segment Prefix). —труктура PSP показана в таблице 2.4.

“аблица 2.4.

—труктура префикса программного сегмента [].

—мещение Ќазначение
00 - 15 ”казатели и векторы адресов DOS
16 Ц 2B «арезервировано
2C Ц 2D јдрес сегмента текущей строки описани€ конфигурации
2E Ц 5B «арезервировано
5C Ц 7F Ѕлоки управлени€ файлами 1 и 2, используемые в первых верси€х DOS
80 Ц FF ќбласть переноса данных и копи€ текущего буфера команд.

ќбраз пам€ти программы типа.com показан на рис. 2.4. ѕрограмма типа.com содержит один сегмент, включающий все компоненты программы: PSP, программный код, данные и стек. ѕоэтому размер.com программы не может быть больше 64 кбайт минус размер PSP и два резервных байта в конце стека. ѕосле загрузки программы все сегментные инициализируютс€ базовым адресом PSP. ѕространство кодов начинаетс€ со смещением 100h, данные непосредственно следуют за кодами. ”казатель стека автоматически инициализируетс€ числом FFFEh.

 
 

¬ Ћистингах 2.1. и 2.2. рассматриваютс€ шаблоны, содержащие только самое необходимое дл€ написание.com программы.

Ћистинг 1.2. Ўаблон стандартного формата.com программы.

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 AH, 004Ch; ‘ункци€ DOS выхода из программы

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

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

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

Ћистинг 1.3. Ўаблон упрощенного формата.com программы.

%TITLE УЎаблон упрощенного формата.com программФ

IDEAL

MODEL tiny

;ƒирективы INCLUDE УfilenameФ

;ћакроопределени€ EQU и =

DATASEG

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

exCode DB 0

;ќписани€ других переменных

CODESEG

ORG 100h; Cстандартный адрес начала.com программы

Start:

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

Exit:

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

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

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

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





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 626 | Ќарушение авторских прав


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

Ћучшие изречени€:

Ќадо любить жизнь больше, чем смысл жизни. © ‘едор ƒостоевский
==> читать все изречени€...

1346 - | 1115 -


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

√ен: 0.012 с.