Бақылау сұрақтары:
*.com типіндегі файлдардың сипаттамасы? Ассемблерлік программалардың сұлбасы қандай? Ассемблерлік программаларға ORG 100h жолы қандай мақсаттарда қо- сылады?
4 MOV командасының атқаратын қызметі?
21h және 20h үзулерінің атқаратын міндеті қандай? «BEGIN: – END BEGIN» командалары не үшін қолданылады, пайдала- ну ережелері?
3.5. *. Exe типіндегі орындалатын файлдардың құрылымы. Ассемблер тіліндегі
қарапайым арифметикалық амалдар
Жұмыстың мақсаты: *. exe типіндегі программаларды құ- ру принциптерін қарастыру. Қарапайым арифметикалық амал- дармен жұмыс істеу ережелерін талдау.
Қысқаша теориялық мәліметтер (*. ЕХЕ типіндегі прог-
раммалар)
ЕХЕ типіндегі файлдар кез келген өлшемде болады және файлдың өлшемі, қажетті жады көлемі, абсолютті адресті пайда- ланатын программадағы командалардың тізімінен тұратын та- қырыптан тұрады.
ЕХЕ программалардың орындалуы сәл қиындау, бірақ олар-
да 64 килобайт болуы керек деген шектеу алынып тасталған, сондықтан көлемі үлкен программалардың барлығы осы фор- матта қолданылады. Әрине, ассемблер тілі 64 килобайтқа күрде- лі және көлемді алгоритмдерді сыйғызуға мүмкіндік береді.
126
11
|
int 20h
|
12
|
message db «Привет», 0dh, 0ah,
|
13
|
message1 db «Группа», 0dh, 0ah,
|
14
|
end begin
|
Қарастырылған мысалда үш сегмент анықталып отыр – STACK директивасымен сегмент стегі, 256 байттық өлшемі бар, CODE директивасынан басталатын код сегменті және DATA директивасынан басталатын мәліметтер стегі. ЕХE программа- ларды іске қосқанда DS регистрі string жолы бар сегменттің ад- ресінен тұрмайды, ал пайдаланылатын DOS функциясын шақы- ру үшін бұл регистрде жолдың сегменттік адресі болуы керек.
MOV AX,@DATA командасы @DATA мәліметтер сегменті тобының сегменттік адресін АХ жүктейді, ал MOV DS, AX ко- мандасы оны DS регистріне сақтайды.
ЕХЕ типіндегі программалар DOS 4Ch: жүйелік шақыруымен
аяқталады және АН регистріне 4Ch мәні орналасады, ал AL реги- стріне қайту коды сақталады (бұл мысалда қайту коды 0 және MOV AX,4C00h командасы арқылы АН және AL регистрлеріне жүктеледі), одан кейін 21h командасы арқылы үзу орындалады.
Достарыңызбен бөлісу: |