Assembler proqramlaşdırma dili

Vəziyyət və idarə registrləri

Vəziyyət və idarə registrləri

Mikroprosessora mikroprosessorun özü və cari anda, əmrləri konveyerə yüklənən proqramın vəziyyəti haqqında informasiyanı saxlayan bir neçə registrlər qoşulub.

Bu registrlərə aşağıdakılar daxildir:

- EFLAGS/ FLAGS (Flags register) – bayraqlar re­gistri;

- EIP/ IP (Instruction Pointer register) – əmrlər gös­tə­ricisi registri.

 

Bu registrlərdən istifadə etməklə icra olunan əmrlərin nəticəsi haqqında məlumat almaq və prosessorun vəziyyətinə təsir göstərmək olar. Registrlərin təyinatına və məzmununa baxaq:

- EFLAGS/ FLAGS – bayraqlar registri. Bu registrin mərtəbələri uyğun olaraq 32/16 bitdir. Registrin hər bir mərtəbəsi müəyyən funksional təyinata malikdir və bu mərtəbələr bayraqlar adlanır. EFLAGS registrinin kiçik hissəsi i8086 mikroprosesorunun FLAGS registrinin analoqudur. Şəkil 3 -də bayraqların nömrəsi və məzmunu göstərilmişdir:

 

 

Proqramda çox vaxt icra istiqamətinin seçilməsi üçün cari əmrdən əvvəlki əmrin icrasından alınan nəticələrdən istifadə etmək lazım gəlir. Bu nəticələr 32 bitlik EFLAGS bayraqlar registrində əks olunur. Bayraqlar registrinin 32 mərtəbəsinin bilavasitə 21 –dən istifadə edilir. 0 və ya 1 yazılan bitlər INTEL firması tərəfindən ehtiyata alınmışdır. EFLAGS –in bitlərinin altısında yerinə yetiriləcək əmrdən əvvəlki əmrin icrasından alınan nəticələrin əlamətləri qeyd edilir. Qalan bayraqlar isə müstəsna halları, maskalanmış kəsilmələri, məsələlərin icra ardıcıllığını və s. idarə etmək üçündür. EFLAGS–in 16 kiçik mərtəbəsi FLAGS bayraqlar registrini təyin edir. FLAGS, I 8086... 80286 MP–lərı üçün yazılmış proqramların emalında istifadə edilir.

İstifadə xüsusiyyətlərinə əsaslanaraq EFLAGS/ FLAGS registrlərinin bayraqlarını üç qrupa bölmək olar:

1) 8 ədəd vəziyyət bayraqları. Bu bayraqların qiyməti maşın əmrinin icrasından sonra dəyişə bilər.FLAGS registrinin vəziyyət bayraqları hesab və məntiq əməliy­yatlarının yerinə yetirilməsinin nəticəsinin xüsusiyyətlərini özündə əks etdirir. Bu isə hesablama prosesinin vəziyyətini analiz etməyə, altproqrama müraciətlərin və şərti keçid əmrlərinin köməyi ilə, ona reaksiya verməyə imkan yaradır (hər birinin təyinatı aşağıda verilmişdir.

 

 

 

2) 1 ədəd DF (Direction Flag-10-cu bit) istiqamət bayrağı. Sətri verilənlər üzərində əməliyyatlarda istiqaməti müəyyənləşdirir. Başqa sözlə, bayrağın qiymətindən, element – element emal prosesində emalın istiqamətini müəyyənləşdirmək məqsədi ilə istifadə olunur. Əgər emal prosesi sətrin başlanğıcından sonuna döğru aparılarsa, DF =0, əks halda DF =1 olur. Bayrağın qiymətindən,əsasən, cld ( df bayrağını götürmək) və std (df bayrağını bərpa etmək) əmrlərinin icrası zamanı istifadə olunur.

3) 8 ədəd sistem bayraqları. Bu bayraqlardan giriş – çıxışın, maskalanmış kəsilmələrin, sazlanmanın, məsələlər arası qoşulmanın və 8086 virtual rejimin idarə olunmasında istifadə olunur (hər birinin təyinatı aşağıda verilmişdir). Ehtiyac olmadıqda tətbiqi proqramlarda bu bayraqları modifikasiya etmək məsləhət deyil. Çünki, əksər hallarda bu, proqramın kəsilməsı ilə nəticələnir.

 

 

EIP/IP(Instruction Pointer register) – əmrlər göstəricisi registri. EIP/IP registri 32/16 mərtəbəlidir və burada cari əmrlər seqmentində növbəti icra olunacaq əmrin blokun başlanğıcına nəzərən sürüşdürülməsi saxlanır. Bu registrə istifadəçilər birbaşa müraciət edə bilməz, ancaq onun yüklənməsi və qiymətinin dəyişdirilməsi müxtəlif idarəedici (bunlara şərti və şərtsiz keçid əmrləri, prosedura müraciət və prosedurdan qayıtma əmrləri daxildir) əmrlərin köməyi ilə mümkündür. İndi isə bir neçə termin haqqında qısa məlumat verək. Seqment – MP I8086–dan başlayaraq INTEL firması yaddaşın seqmentdərə ayrılması anlayışını daxil edib. Seqment ünvanlar fəzasının bloku kimi götürülür. MP 8086 –da seqmentin maksimal qiyməti 64kb, MP 386 –dan başlayaraq qalan modellər üçün 4 qb təyin edilib. Verilənlərin ünvanının təyinində aşağıdakı terminlərdən istifadə edilir. Nisbi ünvan – tələb olunan verilənin bazanın başlanğıcına nəzərən tutduğu yeri, yəni başlanğıca nəzərən sürüşməni göstərir. Deskriptor –veriləni təyin etmək üçün istifadə edilən verilənlər strukturudur (8 baytlıq blok). Selektor – hər hansı bir seqmentin deskriptorunu təyin edən göstərici. Seqment registrində yerləşir. Məntiqi ünvan –selektor ilə təyin edilən baza ünvanı ilə nisbi ünvanın cəminə görə təyin edilir. Yaxın göstərici – 32 mərtəbəli sürüşmənin qiyməti ilə təyin edilir (nisbi ünvan). Uzaq göstərici – 48 mərtəbəli məntiqi ünvan. Bu göstərici iki hissədən, 16 mərtəbəli məntiqi seqmentdən və 32 mərtəbəli nisbi ünvandan təşkli edilir.