Основы программирования микропроцессоров


Общая структура программы



Download 1,87 Mb.
bet25/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   21   22   23   24   25   26   27   28   ...   119
Bog'liq
Системное программирование

4.3. Общая структура программы


Для небольших программ с одним сегментом кода, данных и стека типичной является следующая структура:

STACKSG SEGMENT STACK ; сегмент стека


DB 128 DUP(?)
STACKSG ENDS

DATASG SEGMENT ; сегмент данных


<описания переменных>
DATASG ENDS

CODESG SEGMENT ; сегмент команд


ASSUME CS: CODESG, DS: DATASG, SS: STACKSG
S: MOV AX, DATASG
MOV DS, AX ; загрузить DS
... ; остальные команды
MOV AX, 4C00h ; завершить программу с кодом возврата 0
INT 21h ; выполнить прерывание 21h
CODESG ENDS

END S ; конец программы, точка входа


Сегмент стека описан с параметром STACK, поэтому в самой программе не нужно загружать сегментный регистр SS. Сегмент стека следует описывать всегда, даже когда не предполагается его использовать, т.к. стек использует операционная система для обработки прерываний. Рекомендуемый размер сегмента стека с запасом составляет 128 байтов. Если программа сама использует стек, то под него отводится столько места, сколько требуется, плюс 128 байтов.


Затем следует сегмент данных, в котором необходимо описать все используемые переменные с помощью директив описания данных. В сегменте кода первой директивой должна идти ASSUME, для задания соответствия между сегментами и соответствующими сегментными регистрами. После директивы ASSUME выполняется инициализация сегментного регистра данных. Затем могут идти все остальные команды программы.
Обязательным последним действием программы в сегменте кода должен быть вызов специальной функции под номером 4C. Функция определена за прерыванием 21h и предназначена для выполнения корректного выхода в операционную систему MS-DOS после завершения работы программы. Для выполнения функции в регистр AH должен быть помещен код 4Ch, а в регистр AL – код выхода. Как правило, успешное завершение программы соответствует коду выхода 0.
В конце программы следует указать директиву END – признак конца программы. Все строки после этой директивы игнорируются. В директиве указывается метка команды, с которой должно начаться выполнение программы (точка входа, в нашем примере эта метка S).
Все предложения должны входить в состав программного сегмента. Размещать их вне сегментов недопустимо. Вне сег­ментов разрешено указывать только директивы информационного характера (например, EQU). В сегменте данных разрешается размещать команды, а в сегменте команд описания переменных.

Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   21   22   23   24   25   26   27   28   ...   119




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish