Dərs GİRİŞ Hesablama texnikası əsasən iki mühüm komponentin birgə fəaliyyətinə əsaslanır. Bunlar




Download 1.61 Mb.
Pdf ko'rish
bet15/79
Sana14.04.2022
Hajmi1.61 Mb.
#19706
TuriDərs
1   ...   11   12   13   14   15   16   17   18   ...   79
Bog'liq
SPT ƏS

adr DW perm_3 
direktivi adr dəyişəninə perm_3 nişanının 16 bitlik sürüşməsini mənimsətmişdir. Yəni, adr adlı 
sahədə 0003h ədədi saxlanılır. Sürüşməni saxlayan dəyişənə göstərici deyilir.
Əgər nişan ilə istinad edilən əmr ayrı-ayrı seqmentlərdə yerləşərsə, onda mikroprosessor 
nişanın həm blok nömrəsini, həm də sürüşməsini bilməlidir. Ünvanın hər iki komponentini DD 
direktivi vasitəsi ilə almaq olar. Ona görə də
adr_full DD perm_3
direktivi 32 bitlik adr_full dəyişəninə prem_3 nişanının 16 bitlik sürüşməsinin (0003h) və 16 bitlik 
blok nömrəsini (5591h) mənimsətmişdir.
Verilənlərin təsvirinin bu direktivlərindən istifadə edilərək elan edilən ixtiyari dəyişənə 
assembler aşağıdakı üç atributu mənimsədir:
1. Seqment (SEG)–dəyişəni saxlayan seqmentin başlanğıc ünvanı; 
2. Sürüşmə (OFFSET) –dəyişənin bazanın başlanğıcına nəzərən sürüşməsi. 
3. Tip (TYPE) dəyişənin elan direktivinə uyğun olaraq dəyişən üçün ayrılan baytlar sayını təyin 
edir. 
Dərs 5_Seqmentləri təyin edən direktivlər 
Seqmentlər təyin edən direktivlər
Assembler proqramı bir və ya bir neçə seqmentdən ibarət olur. Əmrlərin 
olduğu sahə yaddaşda kodlar (əmrlər) seqmenti, verilənlər yerləşdirilən 


19 
yaddaş sahəsi verilənlər seqmenti və stek üçün ayırılmış yaddaş sahəsi - stek 
seqmenti adlanır. Mikroprosessorda hər bir seqment üçün uyğun seqment 
registrləri mövcudur. Bildiyimiz kimi informasiyanın emalı üçün aşağıdakı 6 
seqment registlərindən istifadə edə bilərik: 
CS – əmrlər seqmenti; 
SS – stek seqmenti; 
DS, ES, FS, GS verilənlər seqmentləri.
Ümumiyyətlə, assemblerdə proqramın həcmindən asılı olaraq proqramlar 
bir və ya bir neçə seqmentdə təşkil edilə bilər. Hər bir seqment ‘SEGMENT’ 
sözü ilə başlayaraq ‘ENDS’ sözü ilə qurtara bilər. Bu halda seqmenti aşağıdakı 
kimi təyin edə bilərik: 
Segmentin_ adı SEGMENT [K] [N] [M] [L] …
Direktivlər, əmrlər, makroəmrlər, kommetariyalar
… 
Segmentin_ adı ENDS 
Burada Segmentin_ adı – məcburi parametr olub seqmentin ünvanını 
almaq və həmçinin seqmentlər qrupunda seqmentləri kombina etmək üçün 
istifadə edilən nişandır. Ondan həm də seqmentlərin bir qrupda 
birləşdirilməsi zamanı istifadə edirlər. SEGMENT-in başqa parametrləri 
məcburi deyil. Burada
K – düzlənmə tipini ; 
N –əlaqə tipini; 
M –seqmentin sinfini; 
L –seqmentin ölçüsünü təyin edən tipi göstərir. 
Əvvəlcə verilənlər seqmentinə aid sadə misal göstərək: 
Data_seg SEGMENT 
A DB 56 
BB DB ? 
MAS DB 9,7,5,4,5DUP(3) 
Data_seg ENDS 
Qeyd etmək lazımdır ki, seqment təkcə proqramı kodlar, verilənlər və 
steklərə bölmək üçün deyil, o, daha geniş funksional təyinatlara malikdir. 
Seqment (bölüm) modul proqramlaşdırması konsepsiyası ilə bağlı olan ümumi 
mexanizmin əsas hissəsidir. O müxtəlif proqramlaşdırma dillərinin 
kompilyatorları tərəfindən yaradılan obyekt modullarının unikal təşkilinə 
imkan verir. Bu isə müxtəlif proqramlaşdırma dillərində yazılmış proqramları 
birləşdirməyə imkan yaradır. Müxtəlif varianların belə birləşdirilməsi üçün 
SEGMENT direktivində bir sıra operandlar nəzərdə tutulub. Bunları ətraflı 
nəzərdən keçirək:
Düzlənmə tipi kimi Mempage, Page, Pare, Word, DWord, Byte kimi 
atributlar götürülə bilər. Düzlənmə tipi bölümün hansı ünvandan başlandığını 


20 
təyin edir. Bu parametr ona görə vacibdir ki, düzlənmənin düzgünlüyündən 
asılı olaraq MP verilənlərə müraciəti daha sürətlə icra edir. 
Mempage –tipli bölümün başlanğıc ünvanının axırıncı 3 rəqəmi ‘000H’ ilə 
qurtarır. Yəni, ünvan 4kb –a qalıqsız bölünməlidir (növbəti yaddaş səhifəsinin 
ünvanı 4kb səhifə sərhəddinə tamamlanır). 
Page - tipli bölümün başlanğıc ünvanının axırıncı 2 rəqəmi ‘00H’ ilə 
qurtarır. Ünvan 256–ya qalıqsız bölünür (256 bayt ölçülü səhifə sərhəddinə 
tamamlanır). 
Para - tipli bölümün başlanğıc ünvanının axırıncı rəqəmi ‘0H’ ilə qurtarır. 
Yəni, ünvan 16–ya qalıqsız bölünür (paraqraf sərhəddinə tamamlanır). 
Dword – bölümün başlanğıc ünvanı 4 bölünən olmalıdır (ikiqat söz 
sərhəddinə tamamlanır). 
Word - bölümün başlanğıc ünvanı 2–yə qalıqsız bölünən olmalıdır.
Byte –bölüm yaddaşın ixtiyarı ünvanından başlayır. 
Susmaya görə düzləmə tipi kimi Para götürülür. 
Əlaqə tipi, əlaqələr redaktoruna (LİNK.EXE və TLİNK.EXE proqramı) eyni 
adlı bölümlərin necə əlaqələndirilməsi haqqında məlumat verir. Əlaqə tipi kimi 
Private, Public, Common, Stac götürülə bilər. 
Private –tipli əlaqə zamanı eyni adlı bölümlər by moduldan kənarda 
birləşmir. Alınan yeni bölüm tam və kəsilməz olacaq. 
Public –tipli əlaqə ilə bütün eyni adlı bölümlər Link mərhələsində birləşdilir. 
Bütün əməliyyatlar bu bölümün başlanğıcına nəzərən aparılacaq. 
Common – tipli əlaqə ilə Link mərhələsində eyni adlı bölmələr üçün eyni 
ünvandan yer ayrılır. Bölümün ölçüsü ən böyük bölümə uyğun təyin edilir. 
Belə üsul ilə bəzən overley proqramlar tərtib edilir. 
Stac – tipli əlaqə bölmünlərin icra mərhələsində birləşəcəyini təyin edir. Bu 
tip əsasən Exe genişlənməli fayllardan istifadə edilir. Əməliyyatlar SS 
registrindəki ünvana nəzərən aparılır. 
M – bölümün Code, Data və Extra siniflərindən birinə aid olduğunu göstərir 
və onlar apastrof arasında yazılırlar. Proqram bir neçə molulların 
bölümlərindən ibarət olduqda əlaqələr redaktoruna uyğun bölümlər 
ardıcıllığını təyin etməkdə kömək edir. Əlaqələr redaktoru eyni adlı sinifləri 
bir ünvandan başlayaraq birləşdirir. 
L –atributu bölümlərin ölçü atributudur və Use16 və ya Use32 kimi təyni 
edilə bilər. İ80386-dan başlayaraq bölümlər 16 və ya 32 mərtəbəli ola bilərlər. 
Bu həm bölümlərin ölçüsünə, həm də seqment daxilində fiziki ünvanın tərtib 
dərəcəsinə təsir göstərir.


Download 1.61 Mb.
1   ...   11   12   13   14   15   16   17   18   ...   79




Download 1.61 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Dərs GİRİŞ Hesablama texnikası əsasən iki mühüm komponentin birgə fəaliyyətinə əsaslanır. Bunlar

Download 1.61 Mb.
Pdf ko'rish