Assembler proqramlaşdırma dili

Struktur tip verilənlər

Struktur tip verilənlər

Eyni tipli elementlər yığımı kimi təsvir olunan massiv­lərdən fərqli olaraq, struktur tip verilənlər (sadəcə, olaraq strukturlar) müxtəlif tipli sonlu sayda nizamlanmış ele­ment­lər çoxluğudur. Müxtəlif praktiki məsələrin həllində struk­tur tip verilənlərdən istifadə etmək zərurəti daha çox ya­ranır. Məsələn, verilənlər bazası proqramlarında müxtəlif tip elementlərin bir obyektdə əlaqələndirilməsi tələbi yaran­dıqda struktur tiplərdən istifadə olunur. Odur ki, assembler dilindən səmərəli istifadəni artırmaq məqsədi ilə ona bu tip verilənlər daxil edilmişdir. Strukturun tərkibinə daxil olan elementlər struktur sahəsi adlanır. Hər bir struktur sahəsi, onun məzmununa müraciət etmək üçün ada malikdir. Müəy­yən müəssisənin işçiləri haqqındakı məlu­matlar mə­sə­lən: işçinin soyadı, adı, atasının adı, doğulduğu tarix, iş ye­ri, iş stajı və s. hər biri struktur sahəsinə misal ola bilər. Struk­turlar sadə və mürəkkəb olur. Əsasən mürəkkəb struk­turlardan cədvəlləri modelləşdirmək və onlarla işi təkil etmək üçün istifadə olunur.

Ümumi halda struktur sahəsinin özü struktur ola bilər. Belə struktur ierarxik konstruksiyaya malikdir və aşağıdakı kimi göstərilə bilər.

Şəkildəki ağacın budaqlarında onlara müraciət etmək üçün məlumatlar saxlanır. Bunun üçün identifikatorlar ardıcıllığını elə formada təşkil etmək lazımdır ki, birinci identifikator strukturun, növbəti identifikator aralıq qovşaqların və axırıncı identifikator isə lazımı budağın adını göstərsin. Ancaq, assemblerdə uyğun sxemi çox məhdud şəkildə, yəni birinci və axırıncı identifikatorları göstərmək olar.

Proqramda strukturlardan istifadə etmək üçün aşa­ğıdakı üç mərhələni yerinə yetirmək lazımdır:

Strukturların şablonunu vermək. Yəni, yeni tip veri­lənləri təyin etmək və ondan bu tip dəyişənlərin təyini üçün istifadə etmək.

Strukturların nüsğələrini (ekzemplyarını) təyin etmək. Yəni, əvvəlcədən struktur şablonun köməyi ilə təyin olunmuş konkret dəyişən inisiallaşdırılsın.

1. Strukturun elementlərinə müraciəti təşkil etmək.

Strukturların təşkilində əvvəlcədən proqramda struk­turun yazılışı ilə onun təyinin fərqini müəyyənləşdirmək əsas məsələdir.

Proqramda strukturu yazmaq onun yalnız sxemini və ya şablonunu göstərmək deməkdir. Onun üçün yaddaşda yer ayrılmayır. Bu şablona ancaq translyator üçün sahələrin yerləşməsinin vəziyyəti və susmaya görə onların qiymətləri haqqında informasiya kimi baxmaq olar. Strukturun təyini dedikdə, translyatora struktur üçün yaddaş sahəsi ayırmaq və bu yaddaş sahəsinə simvolik ad vermək göstərişi başa düşülür. Proqramda strukturu ancaq bir dəfə yazmaq və istənilən qədər onu təyin etmək olar.

Strukturun şablonun yazılışı aşağıdakı kimidir:

strukturun_adı STRUC

sahələrin təsviri

strukturun_adı ENDS

Burada sahələrin təsviri verilənləri təsvir edən DB, DW, DD, DQ və DT direktivlər ardıcıllığıdır. Onların operandları sahələrin ölçüsünü və lazım gəldikdə onların başlanğıc qiymətini təyin edir. Bu qiymətlərdən strukturun təyinində zamanı uyğun sahələrin inisiallaşmasında istifadə oluna bilər.

Proqramda şablon ixtiyari ardıcıllıqla yerləşdirilə bilər, ancaq bir gedişli translyatorun işləmə məntiqinə uyğun olaraq şablonlar verilmiş tip strukturları təyin edən dəyişəndən əvvəl yerləşdirilməlidir. Yəni, verilənlər seq-mentində dəyişəni hər hansı bir struktura tipi ilə təsvir etmək istəyiriksə, onda struktur tipinin şablonunu seqmentin əvvəlində, ya da dəyişəndən əvvəl təsvir etmək lazımdır.

Strukturla işin təşkilinə universitetin kafedralarının işçiləri haqqındakı verilənlər bazası modelinin yaradılması misalında baxaq. Sadəlik (yəni girişdə informasiyanın çevirilməsi prosesini nəzərə almaqla) üçün strukturun bütün sahələri simvol tipli olduğunu qəbul edək. Bu verilənlər bazasının yazılarının strukturunu aşağıdakı şablonla təyin edək:

isci	STRUC
soy	DB	30 DUP (” ”)	; soyadı, adı, atasının adı
cins	DB	” ”	; jinsi
vazifa	DB	30 DUP (” ”)	; vəzifəsi
elm	DB	7 DUP (” ”)	; elmi dərəcəsi
yas	DB	2 DUP (” ”)	; yaşı
staj 	DB	2 DUP (” ”)	; stajı
maas	DB	7 DUP (” ”)	; maaşı
anagun	DB	8 DUP (" ")	; doğulduğu tarix
isci	ENDS

Bu şablonun köməyi ilə təsvir olunan strukturdan proqramda istifadə etmək üçün verilmiş struktur tipə uyğun dəyişən təyin etmək lazımdır. Bunun üçün aşağıdakı konstruksiyadan istifadə olunur.

Dəyişənin_ adı strukturların_ adı <qiymətlər_ siyahısı>

Burada dəyişənin_ adı –verilmiş struktur tipli dəyişənin adıdır. Dəyişənin adının verilməsi məcburi deyil. Əgər o göstərilmirsə, onda sadəcə olaraq strukturun bütün elementlərinin ölçülərinin cəmi qədər yaddaş sahəsi ayrılacaqdır.

Qiymətlər_siyahısı – bir-birindənvergüllə ayrılan bucaq mötərizələr içərisində göstərilən strukturanın elementlərinin başlanğıc qiymətlərinin siyahısıdır. Onun verilməsi də məcburi deyil. Əgər siyahı tam göstərilməyibsə, onda verilmiş dəyişən üçün strukturun bütün sahələri şablondakı (əgər o, verilibsə) qiymətlər ilə inisiallaşır. Ayrıca sahələri də inisiallaşdırmaq mümkündür. Bu halda buraxılmış sahə vergüllə ayrılmalıdır. Buraxılmış sahə strukturun şablonunda verilmiş qiymətlərə uyğun inisiallaşacaqdır.

Verilmiş struktur tipli yeni dəyişənin təyin edilməsi zamanı dəyişənin bütün sahələrinin qiymətləri, şablondakı uyğun sahələrin qiymətləri ilə uyğunlaşmalıdır. Bunu sadəcə olaraq, “<>” kimi göstərmək lazımdır. Məsələn,

Məmməd işçi  <>
Misal üçün yuxarıda yazılmış struktur tipli bir neçə dəyişəni təyin edək:
Data seqment
cod1 işçi <”Eyyubov Fərid Fəzail oğlu ”,”K”,“dosent ”,“T.E.N”,,, “16.01.1960”>
cod2 işçi <”Nurulu Səməd Faiq oğlu”, “K”, “professor”, “T.E.D.”, “38”, “18”, “1920000”, “12.07.1976”>
cod3 işçi<”Allahmanlı Ramin Rəhman oğlu”,“K”, “dosent”, “26”, “8”, “257000”,“24.11.1978”>
cod4 işçi <> ;Burada bütün qiymətlər susmaya görə verilir
Data  ends