Şərtsiz keçidlər. MP qurğularının proqramlaşdırılmasının əsasları (Mühazirə) Nəzarətin ötürülməsi əmrləri

  • 10.01.2024

Mikroprosessorun təlimat sistemində arifmetik hesablama vasitələri ilə yanaşı verilənlərin məntiqi çevrilməsi vasitələri də vardır. Məntiqi dedikdə, əsaslanan bu cür məlumat çevrilmələrini nəzərdə tuturuq formal məntiq qaydaları.

Formal məntiq doğru və yalan ifadələr səviyyəsində işləyir. Mikroprosessor üçün bu adətən müvafiq olaraq 1 və 0 deməkdir. Kompüter sıfırların və birlərin dilindən doğmadır, lakin maşın təlimatlarının işlədiyi ən kiçik məlumat vahidi baytdır. Bununla belə, sistem səviyyəsində çox vaxt son dərəcə aşağı səviyyədə - bit səviyyəsində işləmək lazımdır.

düyü. 29. Məlumatların məntiqi emalı alətləri


Məntiqi verilənlərin çevrilməsi vasitələrinə məntiqi əmrlər və məntiqi əməliyyatlar daxildir. Assembler göstərişinin operandı ümumiyyətlə ifadə ola bilər, o da öz növbəsində operatorların və operandların birləşməsidir. Bu operatorlar arasında ifadə obyektləri üzərində məntiqi əməliyyatlar həyata keçirən operatorlar da ola bilər.

Bu vasitələri ətraflı araşdırmadan əvvəl məntiqi məlumatların özünün nə olduğunu və üzərində hansı əməliyyatların yerinə yetirildiyini nəzərdən keçirək.

Məntiqi məlumatlar

Məntiqi məlumatların emalının nəzəri əsası formal məntiq. Bir neçə məntiq sistemi var. Ən məşhurlarından biridir təklif hesabı. Bəyanat hər birinə deyilə bilən hər hansı bir ifadədir doğru, və ya yalan.

Təklif hesablaması bəzi ifadələrin birləşməsinin doğruluğunu və ya yanlışlığını müəyyən etmək üçün istifadə olunan qaydalar toplusudur.

Təklif hesablamaları kompüterin iş prinsipləri və onun proqramlaşdırılmasının əsas üsulları ilə çox ahəngdar şəkildə birləşdirilir. Bütün kompüter aparat komponentləri məntiq çipləri üzərində qurulur. Kompüterdə məlumatı ən aşağı səviyyədə təmsil etmək sistemi bit konsepsiyasına əsaslanır. Yalnız iki vəziyyətə malik olan bit (0 (yanlış) və 1 (doğru)) təbii olaraq təklif hesablamalarına uyğun gəlir.

Nəzəriyyəyə görə, ifadələr üzərində (bitlər üzərində) aşağıdakı məntiqi əməliyyatları yerinə yetirmək olar.


1. İnkar (məntiqi DEYİL) - nəticəsi orijinal operandın tərsi olan bir operand üzərində məntiqi əməliyyat.

Bu əməliyyat unikal olaraq aşağıdakı həqiqət cədvəli ilə xarakterizə olunur (Cədvəl 12).

Cədvəl 12. Məntiqi inkar üçün həqiqət cədvəli

2. Məntiqi əlavə (məntiqi daxil OR) - nəticəsi doğru (1) və ya hər iki operand doğrudursa (1) və hər iki operand yanlışdırsa (0) yanlışdır (0) iki operand üzərində məntiqi əməliyyat.

Bu əməliyyat aşağıdakı həqiqət cədvəlindən istifadə etməklə təsvir edilmişdir (Cədvəl 13).

Cədvəl 13. Məntiqi əhatəli OR üçün həqiqət cədvəli

3. Məntiqi vurma (məntiqi VƏ) - iki operand üzərində məntiqi əməliyyat, yalnız hər iki operand doğru (1) olaraq qiymətləndirildikdə doğru (1) kimi qiymətləndirir. Bütün digər hallarda, əməliyyatın dəyəri yanlışdır (0).

Bu əməliyyat aşağıdakı həqiqət cədvəlindən istifadə etməklə təsvir edilmişdir (Cədvəl 14).

Cədvəl 14. Məntiqi AND üçün həqiqət cədvəli

4. Məntiqi eksklüziv əlavə (məntiqi eksklüziv OR) - nəticəsi doğru olan (1) iki operanddan yalnız biri doğru olduqda (1) və hər iki operand yalan olduqda (0) və ya “həqiqət” (1) olduqda yalan (0) olan iki operand üzərində məntiqi əməliyyat. Bu əməliyyat aşağıdakı həqiqət cədvəlindən istifadə etməklə təsvir edilmişdir (Cədvəl 15).

Cədvəl 15. Məntiqi eksklüziv OR üçün həqiqət cədvəli

Mikroprosessorun təlimat sistemində bu əməliyyatları dəstəkləyən beş təlimat var. Bu göstərişlər operandların bitləri üzərində məntiqi əməliyyatları yerinə yetirir. Operandların ölçüləri təbii olaraq eyni olmalıdır. Məsələn, operandların ölçüsü sözdürsə (16 bit), onda məntiqi əməliyyat əvvəlcə operandların sıfır bitləri üzərində yerinə yetirilir və onun nəticəsi nəticənin 0 bitinin yerinə yazılır. Sonra əmr birincidən on beşə qədər bütün bitlərdə bu hərəkətləri ardıcıl olaraq təkrarlayır.

Məntiqi əmrlər

Mikroprosessorun təlimat sistemində məntiqi verilənlərlə işləməyi dəstəkləyən aşağıdakı əmrlər dəsti var:

1) və operand_1, operand_2 – məntiqi vurma əməliyyatı. Komanda operand_1 və operand_2 operandlarının bitləri üzərində bit üzrə məntiqi VƏ əməliyyatını (birləşmə) yerinə yetirir. Nəticə operand_1-ə yazılır;

2) og operand_1, operand_2 – məntiqi əlavə əməliyyatı. Komanda operand_1 və operand_2 operandlarının bitləri üzərində bit üzrə məntiqi YA əməliyyatı (dizyunksiya) yerinə yetirir. Nəticə operand_1-ə yazılır;

3) hog operand_1, operand_2 – məntiqi eksklüziv əlavə əməliyyatı. Təlimat operand_1 və operand_2 operandlarının bitləri üzərində bit üzrə məntiqi eksklüziv OR əməliyyatını yerinə yetirir. Nəticə operandın yerinə yazılır;

4) test operand_1, operand_2 – “yoxlama” əməliyyatı (məntiqi vurmadan istifadə etməklə). Komanda operand_1 və operand_2 operandlarının bitləri üzərində bit üzrə məntiqi AND əməliyyatını yerinə yetirir. Operandların vəziyyəti dəyişməz qalır, yalnız zf, sf və pf bayraqları dəyişir, bu da operandın ayrı-ayrı bitlərinin vəziyyətini onların vəziyyətini dəyişmədən təhlil etməyə imkan verir;

5) operand deyil – məntiqi inkar əməliyyatı. Komanda operandın hər bitinin bit istiqamətində inversiyasını (qiyməti əksi ilə əvəz etməklə) həyata keçirir. Nəticə operandın yerinə yazılır.

Mikroprosessorun təlimat sistemində məntiqi göstərişlərin rolunu başa düşmək üçün onların tətbiq dairəsini və proqramlaşdırmada onlardan istifadənin tipik üsullarını başa düşmək çox vacibdir.

Məntiqi əmrlərdən istifadə etmək mümkündür ayrılması məqsədi ilə operandda fərdi bitlər müəyyən bir dəyəri təyin etmək, sıfırlamaq, ters çevirmək və ya sadəcə yoxlamaq.

Bitlərlə belə işi təşkil etmək üçün operand_2 adətən maska ​​rolunu oynayır. Bu maskanın 1 bitində təyin edilmiş bitlərdən istifadə edərək, müəyyən bir əməliyyat üçün lazım olan operand_1 bitləri müəyyən edilir. Bunun üçün hansı məntiqi əmrlərdən istifadə oluna biləcəyini göstərək:

1) müəyyən bitləri 1-ə təyin etmək üçün og operand_1, operand_2 əmrindən istifadə edin.

Bu təlimatda maska ​​kimi çıxış edən operand_2 operand_1-də 1-ə təyin edilməli olan bitlərin yerinə bir bitdən ibarət olmalıdır;

2) müəyyən bitləri 0-a sıfırlamaq üçün əmrdən və operand_1, operand_2 istifadə edin.

Bu təlimatda maska ​​kimi çıxış edən operand_2 operand_1-də 0-a təyin edilməli olan bitlərin yerində sıfır bitdən ibarət olmalıdır;

3) hog operand_1, operand_2 əmri tətbiq edilir:

a) operand_1 və operandda hansı bitlərin fərqli olduğunu tapmaq;

b) operand_1-də göstərilən bitlərin vəziyyətini çevirmək.

Hog əmrini yerinə yetirərkən maskanın bizi maraqlandıran bitləri (operand_2) bir, qalanları isə sıfır olmalıdır;

Göstərilən bitlərin vəziyyətini yoxlamaq üçün test operand_1, operand_2 (operand_1-i yoxlayın) əmrindən istifadə edin.

Maskada (operand_2) operand_1-in yoxlanılan bitləri bir dəyərə malik olmalıdır. Test əmrinin işi və əmrinin alqoritminə bənzəyir, lakin operand_1-in qiymətini dəyişmir. Əmrin nəticəsi zf sıfır bayrağının dəyərini təyin etməkdir:

1) zf = 0 olarsa, onda məntiqi vurma sıfır nəticə ilə nəticələndi, yəni operandın müvafiq bitinə uyğun gəlməyən maskanın bir vahid biti;

2) zf = 1 olarsa, məntiqi vurma sıfırdan fərqli nəticə ilə nəticələndi, yəni. ən azı bir maskanın bir biti operand_1-in müvafiq bir bitinə uyğun gəlir.

Test əmrinin nəticəsinə reaksiya vermək üçün jnz etiketindən (Sıfır deyilsə Jump) - sıfır bayrağı zf sıfırdan fərqli olduqda tullanmaq və ya əks hərəkətli əmrdən istifadə etmək məsləhətdir - jz etiketi (Jump Sıfır olduqda) - sıfır bayrağı zf = 0 olarsa tullanmaq.

Növbəti iki əmr operandın 1-ə təyin edilmiş ilk bitini axtarır. Operandın əvvəlindən və ya sonundan axtarış edə bilərsiniz:

1) bsf operand_1, operand_2 (Bit Scanning Forward) – bitləri irəli skan edir. Təlimat operand_2-nin bitlərini ən az əhəmiyyətlidən ən əhəmiyyətliyə (bit 0-dan ən əhəmiyyətli bitə qədər) 1-ə təyin edilmiş ilk biti axtarır. Əgər biri tapılarsa, bu bitin sayı operand_1-ə tam dəyər kimi daxil edilir. Əgər operand_2-nin bütün bitləri 0-dırsa, zf sıfır bayrağı 1-ə təyin edilir, əks halda zf bayrağı 0-a sıfırlanır;

2) bsr operand_1, operand_2 (Bit Scanning Reset) – əks ardıcıllıqla bitləri skan edir. Təlimat operand_2-nin bitlərini ən əhəmiyyətlidən ən az əhəmiyyətliyə (ən əhəmiyyətli bitdən 0-a qədər) 1-ə təyin edilmiş ilk biti axtarır (skan edir). Əgər biri tapılarsa, bu bitin nömrəsi operand_1-ə daxil edilir. tam dəyər. Soldakı birinci bitin mövqeyinin hələ də bit 0-a nisbətən hesablanması vacibdir. Əgər operand_2-nin bütün bitləri 0-a bərabərdirsə, zf sıfır bayrağı 1-ə təyin edilir, əks halda zf bayrağı 0-a sıfırlanır. .

Intel mikroprosessorlarının ən son modellərində operandın müəyyən bir bitinə daxil olmağa imkan verən məntiqi əmrlər qrupunda daha bir neçə əmr peyda oldu. Operand ya yaddaşda, ya da ümumi təyinatlı registrdə yerləşə bilər. Bit mövqeyi operandın ən az əhəmiyyətli bitinə nisbətən bitin ofseti ilə müəyyən edilir. Ofset dəyəri ya birbaşa dəyər kimi göstərilə bilər, ya da ümumi təyinatlı registrdə yer ala bilər. Siz bsr və bsf əmrlərinin nəticələrini ofset dəyəri kimi istifadə edə bilərsiniz. Bütün təlimatlar seçilmiş bitin qiymətini CE bayrağına təyin edir

1) bt operand, bit ofset (Bit Test) – biti yoxlayın. Komanda bit dəyərini cf bayrağına köçürür;

2) bts operand, bit ofset (Bit Test və Set) – bitin yoxlanılması və qurulması. Təlimat bit dəyərini CF bayrağına köçürür və sonra sınaqdan keçiriləcək biti 1-ə təyin edir;

3) btr əməliyyat, bit ofset (Bit Test və Reset) – bitin yoxlanılması və sıfırlanması. Təlimat bitin qiymətini CF bayrağına köçürür və sonra bu biti 0-a təyin edir;

4) btc operand, bit ofset (Bit Test və Convert) – biti yoxlayın və çevirin. Təlimat bitin qiymətini cf bayrağına köçürür və sonra həmin bitin qiymətini çevirir.

Shift Əmrləri

Bu qrupdakı təlimatlar həm də operandların ayrı-ayrı bitlərinin manipulyasiyasını təmin edir, lakin yuxarıda müzakirə olunan məntiqi göstərişlərdən fərqli şəkildə.

Bütün keçid təlimatları əməliyyat kodundan asılı olaraq operand sahəsində bitləri sola və ya sağa köçürür. Bütün növbəli təlimatlar eyni struktura malikdir - polis operand, shift_counter.

Köçürülən bitlərin sayı - shift_counter - ikinci operandın yerində yerləşir və iki şəkildə göstərilə bilər:

1) statik olaraq, dərhal operanddan istifadə edərək sabit dəyərin təyin edilməsini nəzərdə tutur;

2) dinamik olaraq, bu, yerdəyişmə təlimatını yerinə yetirməzdən əvvəl cl registrində sürüşmə sayğacının dəyərinin saxlanması deməkdir.

cl registrinin ölçüsünə əsasən, aydın olur ki, sürüşmə sayğacının dəyəri 0-dan 255-ə qədər dəyişə bilər. Amma əslində bu, tamamilə doğru deyil. Optimallaşdırma məqsədləri üçün mikroprosessor yalnız dəyəri qəbul edir beş ən az əhəmiyyətli bit sayğac, yəni dəyər 0 ilə 31 arasında dəyişir.

Bütün shift əmrləri daşıma bayrağını təyin edir cf.

Bitlər operandın hüdudlarından kənara keçdikdə, onlar əvvəlcə daşıma bayrağını vuraraq onu operanddan kənarda bitən növbəti bitin dəyərinə bərabərləşdirirlər. Bu bitin sonrakı gedəcəyi yer sürüşmə təlimatının növündən və proqram alqoritmindən asılıdır.

Fəaliyyət prinsipinə əsasən, keçid əmrləri iki növə bölünə bilər:

1) xətti sürüşmə əmrləri;

2) siklik yerdəyişmə əmrləri.

Xətti sürüşmə əmrləri

Bu tip əmrlərə aşağıdakı alqoritmə uyğun yerdəyişmə yerinə yetirən əmrlər daxildir:

1) növbəti "itələnmiş" bit CF bayrağını təyin edir;

2) operanda digər ucundan daxil edilən bit 0 qiymətinə malikdir;

3) növbəti bit dəyişdirildikdə, o, CF bayrağına keçir və əvvəlki dəyişdirilmiş bitin dəyəri itirilir! Xətti sürüşmə əmrləri iki alt növə bölünür:

1) məntiqi xətti sürüşmə əmrləri;

2) arifmetik xətti sürüşmə əmrləri.

Məntiqi xətti sürüşmə əmrlərinə aşağıdakılar daxildir:

1) shl operand, shift_counter (Shift Logical Left) – sola məntiqi sürüşdürmə. Operandın məzmunu shift_count dəyəri ilə müəyyən edilən bitlərin sayına görə sola sürüşdürülür. Sağda (ən az əhəmiyyətli bit mövqeyində) sıfırlar daxil edilir;

2) shr operand, shift_counter (Shift Logical Right) – məntiqi sağa sürüşdürmə. Operandın məzmunu shift_count dəyəri ilə müəyyən edilən bitlərin sayına görə sağa sürüşdürülür. Solda (ən əhəmiyyətli, işarə biti mövqeyində) sıfırlar daxil edilir.

Şəkil 30 bu əmrlərin necə işlədiyini göstərir.

düyü. 30. Xətti məntiqi yerdəyişmə komandalarının iş sxemi


Arifmetik xətti yerdəyişmə göstərişləri məntiqi yerdəyişmə təlimatlarından operandın işarə bitində xüsusi şəkildə işləməsi ilə fərqlənir.

1) sal operand, shift_counter (Shift Arithmetic Left) – arifmetik sola sürüşdürmə. Operandın məzmunu shift_count dəyəri ilə müəyyən edilən bitlərin sayına görə sola sürüşdürülür. Sağda (ən az əhəmiyyətli bit mövqeyində) sıfırlar var. Sal əmri işarəni saxlamır, amma işarə ilə/işarə dəyişikliyi halında bayrağı təyin edir başqa bir geri çəkilə bilən bit. Əks halda sal əmri shl əmrinə tamamilə bənzəyir;

2) sar operand, shift_counter (Shift Arithmetic Right) – arifmetik sağa sürüşdürmə. Operandın məzmunu qiymətlə müəyyən edilən bitlərin sayına görə sağa sürüşdürülür shift_counter. Solda sıfırlar operanda daxil edilir. Sar əmri işarəni qoruyur, hər növbəti biti dəyişdikdən sonra onu bərpa edir.

Şəkil 31 xətti arifmetik yerdəyişmə təlimatlarının necə işlədiyini göstərir.


düyü. 31. Xətti arifmetik yerdəyişmə komandalarının iş sxemi

Əmrləri Döndürün

Rotate shift əmrləri dəyişdirilən bitlərin dəyərlərini saxlayan əmrlərdir. İki növ fırlanma əmri var:

1) sadə tsiklik yerdəyişmə əmrləri;

2) daşıma bayrağı vasitəsilə dövri yerdəyişmə əmrləri bkz.

Komandalara sadə tsiklik növbələrə daxildir:

1) rol operand, shift_counter (Sola fırladın) – sola tsiklik sürüşmə. Operandın məzmunu operand tərəfindən müəyyən edilmiş bitlərin sayına görə sola sürüşdürülür shift_counter. Sola sürüşdürülmüş bitlər sağdakı eyni operanda yazılır;

2) gog operand, shift_counter (Rotate Right) – sağa tsiklik sürüşmə. Operandın məzmunu operand tərəfindən müəyyən edilən bitlərin sayına görə sağa sürüşdürülür shift_counter. Sağa sürüşdürülmüş bitlər solda eyni operanda yazılır.

düyü. 32. Sadə tsiklik yerdəyişmə komandalarının iş sxemi


Şəkil 32-dən göründüyü kimi, sadə siklik sürüşmə təlimatları işləyərkən bir faydalı hərəkəti yerinə yetirir, yəni: siklik olaraq dəyişdirilmiş bit nəinki digər ucundan operanda itələnir, eyni zamanda onun dəyəri əməliyyatın dəyərinə çevrilir. CE bayrağı

Əmrləri Döndürün daşıma bayrağı CF vasitəsilə sadə siklik sürüşmə əmrlərindən onunla fərqlənir ki, yerdəyişdirilən bit dərhal operanda digər ucundan getmir, lakin əvvəlcə CE daşıma bayrağına yazılır. Bu yerdəyişmə təlimatının yalnız növbəti icrası (bir dövrədə yerinə yetirildiyini nəzərə alsaq) əvvəllər dəyişdirilmiş bitin operandın digər ucunda yerləşdirilməsinə səbəb olur.(Şəkil 33).

Siklik keçid əmrlərinə daşıma bayrağı vasitəsilə aşağıdakılar bağlıdır:

1) rcl operand, shift_counter (Sol daşıma ilə fırladın) – daşıma vasitəsilə sola dövri sürüşmə.

Operandın məzmunu operand tərəfindən müəyyən edilmiş bitlərin sayına görə sola sürüşdürülür shift_counter. Köçürülən bitlər növbə ilə daşıma bayrağının dəyərinə çevrilir bkz.

2) rcg operand, shift_counter (Rotate through Carry Right) – daşıma vasitəsilə sağa tsiklik sürüşmə.

Operandın məzmunu operand tərəfindən müəyyən edilən bitlərin sayına görə sağa sürüşdürülür shift_counter. Köçürülən bitlər növbə ilə daşıma bayrağının CF dəyərinə çevrilir.

düyü. 33. CF daşıma bayrağı vasitəsilə siklik sürüşmə əmrləri


Şəkil 33-dən aydın olur ki, daşıma bayrağından keçərkən ara element görünür, onun köməyi ilə, xüsusən də dövri olaraq dəyişdirilmiş bitləri əvəz etmək mümkündür, xüsusən də uyğunsuzluq bit ardıcıllığı.

Bundan sonra bir az ardıcıllığın uyğunsuzluğu dedikdə, bu ardıcıllığın lazımi hissələrini hansısa şəkildə lokallaşdırmağa və çıxarmağa və onları başqa yerə yazmağa imkan verən hərəkəti nəzərdə tuturuq.

Əlavə keçid əmrləri

Ən son Intel mikroprosessor modellərinin komanda sistemi, i80386 ilə başlayan, əvvəllər müzakirə etdiyimiz imkanları genişləndirən əlavə keçid əmrlərini ehtiva edir. Bunlar shift əmrləridir ikiqat dəqiqlik: 1) shld operand_1, operand_2, shift_counter – ikiqat dəqiqlikli sola sürüşdürmə. shld əmri operand_1-in bitlərini sola sürüşdürərək, sağdakı bitlərini Şəkil 1-dəki diaqrama uyğun olaraq operand_2-dən yerdəyişən bitlərin qiymətləri ilə dolduraraq dəyişdirmə həyata keçirir. 34. Köçürüləcək bitlərin sayı qiymətlə müəyyən edilir shift_counter, operand_2 dəyişmir.


düyü. 34. shld əmrinin sxemi


2) shrd operand_1, operand_2, shift_counter – ikiqat dəqiqlikli sağa sürüşdürmə. Təlimat operand_1-in bitlərini sağa sürüşdürməklə, onun soldakı bitlərini Şəkil 35-dəki diaqrama uyğun olaraq operand_2-dən yerdəyişən bitlərin qiymətləri ilə doldurmaqla dəyişdirməni həyata keçirir. Köçürülən bitlərin sayı qiymətlə müəyyən edilir. shift_counter, 0... diapazonunda ola bilər 31. Bu dəyər dərhal operand kimi göstərilə və ya cl registrində yer ala bilər. Məna operand_2 dəyişmir.

düyü. 35. shrd əmrinin sxemi


Qeyd etdiyimiz kimi, shld və shrd əmrləri 32 bitə qədər yerdəyişmələri yerinə yetirir, lakin operandların və əməliyyat alqoritminin dəqiqləşdirilməsinin xüsusiyyətlərinə görə bu əmrlərdən uzunluğu 64 bitə qədər olan sahələrlə işləmək üçün istifadə etmək olar.

2. Köçürmə əmrlərinə nəzarət edin

Biz təşkil edən komandaların bəziləri ilə tanış olduq xətti proqramın bölmələri. Onların hər biri ümumiyyətlə məlumatları çevirmək və ya ötürmək üçün bəzi hərəkətləri yerinə yetirir, bundan sonra mikroprosessor idarəetməni növbəti əmrə ötürür. Ancaq çox az proqram belə ardıcıl şəkildə işləyir. Adətən proqramda növbəti hansı əmrin yerinə yetiriləcəyi barədə qərar verilməli olan məqamlar var. Bu həll ola bilər:

1) şərtsiz - bu zaman idarəetməni növbəti komandaya deyil, cari komandadan müəyyən məsafədə yerləşən digərinə ötürmək lazımdır;

2) şərti - növbəti hansı əmrin yerinə yetiriləcəyi barədə qərar bəzi şərtlərin və ya məlumatların təhlili əsasında qəbul edilir.

Proqram müəyyən bir RAM sahəsi tutan əmrlər və məlumatların ardıcıllığıdır. Bu yaddaş sahəsi ya bitişik ola bilər, ya da çoxlu fraqmentlərdən ibarət ola bilər.

Mikroprosessor bir cüt registrin məzmunundan sonra hansı proqram əmrinin yerinə yetirilməli olduğunu bilir. cs:(e)ip:

1) cs – cari kod seqmentinin fiziki (əsas) ünvanını ehtiva edən seqment kodu registridir;

2) eip/ip – cari kod seqmentinin başlanğıcına nisbətən yerinə yetiriləcək növbəti təlimatın yaddaş ofsetini təmsil edən dəyəri ehtiva edən təlimat göstərici registridir.

Hansı xüsusi registrdən istifadə ediləcəyi ünvanlama rejiminin use16 və ya use32 olaraq təyin olunmasından asılıdır. Əgər istifadə 16 göstərilibsə, o zaman ip istifadə olunur, əgər use32 isə eip istifadə olunur.

Beləliklə, idarəetmənin ötürülməsi təlimatları cs və eip/ip registrlərinin məzmununu dəyişdirir, nəticədə mikroprosessor icra üçün növbəti proqram əmrini deyil, proqramın hansısa başqa bölməsindəki əmri seçir. Mikroprosessorun içindəki konveyer sıfırlanır.

Proqramda keçidlərin təşkilini təmin edən mikroprosessor əmrlərini iş prinsipinə əsasən 3 qrupa bölmək olar:

1. Nəzarətin qeyd-şərtsiz ötürülməsi üçün əmrlər:

1) qeyd-şərtsiz atlama əmri;

2) proseduru çağırmaq və prosedurdan qayıtmaq əmri;

3) proqram təminatının kəsilməsini çağırmaq və proqram kəsilməsindən qayıtmaq əmri.

2. İdarəetmə əmrlərinin şərti ötürülməsi:

1) səhifənin müqayisəsi əmrinin nəticəsi əsasında keçid əmrləri;

2) müəyyən bayrağın vəziyyətinə əsaslanan keçid əmrləri;

3) ecx/cx registrinin məzmunu arasında hərəkət etmək əmrləri.

3. Döngüyə nəzarət əmrləri:

1) ecx/cx sayğacı ilə dövrü təşkil etmək əmri;

2) ecx/cx sayğacı ilə dövrəni əlavə şərtlə dövriyyədən erkən çıxmaq imkanı ilə təşkil etmək əmri.

Şərtsiz atlamalar

Əvvəlki müzakirədə keçid mexanizminin bəzi detalları açıqlandı. Keç təlimatları eip/ip təlimat göstərici registrini və ehtimal ki, cs kodu seqment registrini dəyişdirir. Dəyişdirilməli olan şeydən asılıdır:

1) qeyd-şərtsiz keçid əmrində operandın növü üzrə (yaxın və ya uzaq);

2) atlama ünvanından əvvəlki işarədən (atlama əmrində) dəyişdirici; bu halda keçid ünvanının özü ya birbaşa əmrdə (birbaşa atlama), ya da registrdə və ya yaddaş hüceyrəsində (dolayı keçid) yerləşə bilər.

Modifikator aşağıdakı dəyərləri qəbul edə bilər:

1) ptr yaxınlığında – cari kod seqmentində etiketə birbaşa keçid. Yalnız eip/ip registrində dəyişiklik edilir (kod seqmentinin müəyyən edilmiş növündən asılı olaraq istifadə16 və ya istifadə32) komandada göstərilən ünvan (etiket) və ya dəyər çıxarma simvolundan istifadə edən ifadə əsasında - $;

2) far ptr – başqa kod seqmentindəki etiketə birbaşa keçid. Keçmə ünvanı dərhal operand və ya ünvan (etiket) kimi müəyyən edilir və müvafiq olaraq cs və ip/eip registrlərinə yüklənən 16-bit seçici və 16/32-bit ofsetdən ibarətdir;

3) ptr sözü – cari kod seqmenti daxilində etiketə dolayı keçid. Yalnız eip/ip dəyişdirilir (əmrdə göstərilən ünvanda yaddaşdan və ya registrdən ofset dəyəri ilə). Ofset ölçüsü 16 və ya 32 bit;

4) dword ptr – başqa kod seqmentindəki etiketə dolayı keçid. Hər iki registr – cs və eip/ip – dəyişdirilir (yaddaşdan alınan dəyərlə – və yalnız yaddaşdan, registrdən). Bu ünvanın ilk sözü/dword ofseti təmsil edir və ip/eip-ə yüklənir; ikinci/üçüncü söz cs-ə yüklənir. jmp qeyd-şərtsiz atlama əmri

Şərtsiz keçid əmrinin sintaksisi jmp [dəyişdirici] jump_address - qayıdış nöqtəsi haqqında məlumat saxlamadan qeyd-şərtsiz atlamadır.

jump_address ya etiket ünvanı, ya da keçid göstəricisinin yerləşdiyi yaddaş sahəsinin ünvanıdır.

Ümumilikdə, mikroprosessorun təlimat sistemi bir neçə jmp şərtsiz keçid maşını təlimat kodunu ehtiva edir.

Onların fərqləri keçid məsafəsi və hədəf ünvanının təyin edilməsi üsulu ilə müəyyən edilir. Aralığı keçid operandın yeri ilə müəyyən edilir keçid_ünvanı. Bu ünvan cari kod seqmentində və ya başqa seqmentdə ola bilər. Birinci halda, keçid adlanır intraseqmental, və ya sevdiklərim, ikincidə - seqmentlərarası, və ya uzaq Seqmentdaxili sıçrayış yalnız eip/ip registrinin məzmununun dəyişdirildiyini nəzərdə tutur.

jmp əmrinin seqmentdaxili istifadəsi üçün üç variant var:

1) düz qısa;

2) düz;

3) dolayı.


Prosedurlar

Assembly dili proqram kodunun bölmələrinin təkrarlanması problemini həll edən bir neçə alətə malikdir. Bunlara daxildir:

1) prosedurların mexanizmi;

2) makro assembler;

3) kəsmə mexanizmi.

Prosedura tez-tez çağırılır alt proqram - bu, bəzi tapşırıqların parçalanmasının (bir neçə hissəyə bölünməsinin) əsas funksional vahididir. Prosedur müəyyən bir alt tapşırığın həlli üçün əmrlər qrupudur və daha yüksək səviyyəli tapşırığın çağırılması nöqtəsindən nəzarəti əldə etmək və nəzarəti bu nöqtəyə qaytarmaq üçün vasitələrə malikdir.

Ən sadə halda proqram bir prosedurdan ibarət ola bilər. Başqa sözlə desək, prosedur düzgün formatlaşdırılmış əmrlər toplusu kimi müəyyən edilə bilər ki, onlar təsvir edildikdən sonra, lazım gələrsə, proqramın istənilən yerində çağırıla bilər.

Komandalar ardıcıllığını prosedur kimi təsvir etmək üçün montaj dili iki direktivdən istifadə edir: PROC və ENDP.

Proseduru təsvir etmək üçün sintaksis aşağıdakı kimidir (şək. 36).


düyü. 36. Proqramda prosedurun təsviri üçün sintaksis


Şəkil 36-dan görünə bilər ki, prosedur başlığında (PROC direktivi) yalnız prosedur adı tələb olunur. PROC direktivinin çoxlu sayda operandları arasında [məsafə] xüsusi qeyd olunmağa layiqdir. Bu atribut yaxın və ya uzaq dəyərləri qəbul edə bilər və başqa bir kod seqmentindən proseduru çağırmaq imkanını xarakterizə edir. Varsayılan olaraq, [məsafə] atributu yaxın olaraq təyin edilir.

Prosedur proqramın istənilən yerinə yerləşdirilə bilər, lakin elə bir şəkildə yerləşdirilə bilər ki, idarəetmə təsadüfən onun üzərinə düşməsin. Əgər prosedur sadəcə olaraq ümumi komanda axınına daxil edilirsə, onda mikroprosessor prosedur əmrlərini bu axının bir hissəsi kimi qəbul edəcək və müvafiq olaraq prosedur əmrlərini yerinə yetirəcək.

Şərti atlamalar

Mikroprosessorda 18 şərti keçid göstərişi var. Bu əmrlər sizə yoxlamağa imkan verir:

1) imzalanmış operandlar arasındakı əlaqə ("daha çox - az");

2) işarəsiz operandlar arasındakı əlaqə (“yuxarıda – aşağıda”);

3) arifmetik bayraqların ZF, SF, CF, OF, PF halları (lakin AF deyil).

Şərti keçid əmrləri eyni sintaksisə malikdir:

jcc keçid_etiketi

Gördüyünüz kimi, bütün əmrlərin mnemonik kodu sözdən “j” ilə başlayır tullanmaq(sıçrayış), onun - komanda tərəfindən təhlil edilən xüsusi vəziyyəti müəyyən edir.

Operandla bağlı keçid_etiketi, onda bu etiket yalnız cari kod seqmentində yerləşə bilər; şərti keçidlərdə nəzarətin seqmentlərarası ötürülməsinə icazə verilmir. Bu baxımdan qeyd-şərtsiz keçid əmrlərinin sintaksisində mövcud olan dəyişdirici sualı aradan qalxır. İlkin mikroprosessor modellərində (i8086, i80186 və i80286) şərti atlama təlimatları yalnız qısa tullanışlar edə bilərdi - şərti keçid təlimatından sonra təlimatdan -128 ilə +127 bayt məsafə. 80386 mikroprosessor modelindən başlayaraq, bu məhdudiyyət aradan qaldırılır, ancaq gördüyünüz kimi, yalnız cari kod seqmentində.

Şərti atlama əmri ilə idarəetmənin hara köçürüləcəyi barədə qərar qəbul etmək üçün əvvəlcə idarəetmənin ötürülməsi qərarının veriləcəyi şərt yaradılmalıdır.

Belə bir vəziyyətin mənbələri ola bilər:

1) arifmetik bayraqların vəziyyətini dəyişdirən hər hansı əmr;

2) iki operandın dəyərlərini müqayisə edən müqayisə əmr səhifəsi;

3) ecx/cx registrinin vəziyyəti.


cmp müqayisə əmri

Müqayisə səhifəsi əmrinin maraqlı iş prinsipi var. Bu, çıxma əmri ilə tamamilə eynidir - alt operand, operand_2.

Səhifə əmri, alt komanda kimi, operandları çıxarır və bayraqlar təyin edir. Etmədiyi yeganə şey birinci operandın yerinə çıxma əməliyyatının nəticəsini yazmaqdır.

Səhifə əmrinin sintaksisi səhifə operand_1, operand_2 (müqayisə) - iki operandı müqayisə edir və müqayisə nəticələrinə əsasən bayraqlar təyin edir.

Səhifə əmri ilə təyin olunan bayraqlar xüsusi şərti budaq əmrlərindən istifadə etməklə təhlil edilə bilər. Onlara nəzər salmazdan əvvəl bu şərti keçid əmrlərinin mnemonikasına bir az diqqət yetirək (cədvəl 16). Şərti keçid əmrlərinin adlarını formalaşdırarkən qeydi başa düşmək (bizim tərəfindən təyin edilmiş jcc əmrinin adındakı element) onları yadda saxlamağı və sonrakı praktik istifadəni asanlaşdıracaq.

Cədvəl 16. jcc komanda adında abbreviaturaların mənası
Cədvəl 17. Operand_1, operand_2 komanda səhifəsi üçün şərti keçid əmrlərinin siyahısı

Eyni bayraq dəyərlərinin şərti atlama əmrlərinin bir neçə müxtəlif mnemonik kodlarına uyğun gəlməsinə təəccüblənməyin (onlar Cədvəl 17-də bir-birindən kəsiklə ayrılıb). Ad fərqi mikroprosessor konstruktorlarının müəyyən qrup təlimatlarla birlikdə şərti keçid təlimatlarından istifadəni asanlaşdırmaq istəyi ilə bağlıdır. Buna görə də, müxtəlif adlar fərqli funksional istiqamətləri əks etdirir. Bununla belə, bu əmrlərin eyni bayraqlara cavab verməsi onları proqramda tamamilə ekvivalent və bərabər edir. Buna görə də, Cədvəl 17-də onlar adlarına görə deyil, reaksiya verdikləri bayraq qiymətlərinə (şərtlərinə) görə qruplaşdırılıblar.


Şərti Filial Təlimatları və Bayraqlar

Bəzi şərti keçid əmrlərinin mnemonik notasiyası onların işlədiyi bayrağın adını əks etdirir və aşağıdakı struktura malikdir: “j” simvolu birinci gəlir. (Tullanmaq, keçid), ikincisi ya bayraq təyinatı, ya da “n” inkar simvolu, ardınca bayrağın adı. Bu komanda strukturu öz məqsədini əks etdirir. Əgər “n” simvolu yoxdursa, bayrağın vəziyyəti yoxlanılır, 1-ə bərabərdirsə, keçid etiketinə keçid edilir. Əgər “n” simvolu varsa, bayrağın vəziyyəti 0 bərabərliyi üçün yoxlanılır və uğurlu olarsa, atlama etiketinə keçid edilir.

Komanda mnemonik kodları, bayraqların adları və keçid şərtləri Cədvəl 18-də verilmişdir. Bu əmrlərdən müəyyən edilmiş bayraqları dəyişən istənilən əmrlərdən sonra istifadə etmək olar.

Cədvəl 18. Şərti keçid əmrləri və bayraqlar

Cədvəl 17 və 18-ə diqqətlə baxsanız, görə bilərsiniz ki, onlardakı bir çox şərti keçid əmrləri ekvivalentdir, çünki hər ikisi eyni bayraqların təhlilinə əsaslanır.


Şərti keçid təlimatları və ecx/cx reyestri

Mikroprosessorun arxitekturası bir çox registrlərin xüsusi istifadəsini nəzərdə tutur. Məsələn, akkumulyator kimi EAX/AX/AL registrindən, steklə işləmək üçün isə BP və SP registrlərindən istifadə olunur. ESH/CX registrinin də xüsusi funksional məqsədi var: o, rolu yerinə yetirir sayğac loop nəzarət əmrlərində və simvol sətirləri ilə işləyərkən. Ola bilsin ki, funksional olaraq ecx/cx registrinə aid şərti keçid əmri bu komandalar qrupu kimi daha düzgün təsnif olunsun.

Bu şərti budaq əmrinin sintaksisi:

1) jcxz jump_label (əgər ex Sıfırdırsa atla) – cx sıfırdırsa tullanma;

2) jecxz jump_label (Jump Equal exx Zero) – exx sıfırdırsa tullanma.

Bu əmrlərdən döngə təşkil edərkən və simvol sətirləri ilə işləyərkən istifadə etmək çox rahatdır.

Qeyd etmək lazımdır ki, jcxz/jecxz əmrinə xas olan məhdudiyyət var. Digər şərti idarəetmə ötürmə təlimatlarından fərqli olaraq, jcxz/jecxz təlimatı yalnız qısa atlamalara müraciət edə bilər - növbəti təlimatdan -128 bayt və ya +127 bayt.

Dövrlərin təşkili

Dövr, bildiyiniz kimi, əhəmiyyətli bir alqoritmik quruluşdur, istifadəsi olmadan, ehtimal ki, heç bir proqram edə bilməz. Proqramın müəyyən bir hissəsinin tsiklik icrasını təşkil edə bilərsiniz, məsələn, şərti köçürmə əmrləri və ya qeyd-şərtsiz keçid əmri jmp. Bu tip dövriyyə təşkili ilə onun təşkili ilə bağlı bütün əməliyyatlar əl ilə həyata keçirilir. Lakin, dövr kimi alqoritmik elementin əhəmiyyətini nəzərə alaraq, mikroprosessor tərtibatçıları dövrlərin proqramlaşdırılmasını asanlaşdırmaq üçün komanda sisteminə üç komandadan ibarət bir qrup təqdim etdilər. Bu əmrlər ecx/cx registrindən də istifadə edir dövrə sayğacı.

Bu əmrlərin qısa təsvirini verək: 1) loop jump_label (Loop) – dövrü təkrarlayın. Komanda, döngə sayğacının avtomatik azalması ilə yüksək səviyyəli dillərdə for looplarına bənzər döngələr təşkil etməyə imkan verir. Komandanın işi aşağıdakıları etməkdir:

b) ESX/CX registrinin sıfırla müqayisəsi: əgər (ECX/CX) = 0 olarsa, onda idarəetmə dövrədən sonra növbəti komandaya keçirilir;

2) loop/loopz keçid_etiketi

Loop və loopz əmrləri mütləq sinonimdir. Əmrlərin işi aşağıdakı hərəkətləri yerinə yetirməkdən ibarətdir:

a) ESH/CX registrinin azalması;

c) sıfır bayrağının vəziyyətinin təhlili ZF əgər (ECX/CX) = 0 və ya XF = 0 olarsa, idarəetmə dövrədən sonra növbəti əmrə keçirilir.

3) loopne/loopnz keçid_etiketi

Loopne və loopnz əmrləri də mütləq sinonimdir. Əmrlərin işi aşağıdakı hərəkətləri yerinə yetirməkdən ibarətdir:

a) ESH/CX registrinin azalması;

b) ESX/CX registrinin sıfırla müqayisəsi;

c) ZF sıfır bayrağının vəziyyətinin təhlili: əgər (ECX/CX) = 0 və ya ZF = 1 olarsa, idarəetmə dövrədən sonra növbəti komandaya keçirilir.

Loope/loopz və loopne/loopnz əmrləri iş prinsipinə görə tərsdir. Onlar zf bayrağını əlavə olaraq təhlil edərək loop əmrinin hərəkətini genişləndirirlər ki, bu da bu bayrağı göstərici kimi istifadə edərək dövrədən erkən çıxışı təşkil etməyə imkan verir.

Loop, loope/loopz və loopne/loopnz komandalarının dezavantajı ondadır ki, onlar yalnız qısa atlamaları həyata keçirirlər (-128-dən +127 bayta qədər). Uzun döngələrlə işləmək üçün şərti budaq əmrlərindən və jmp əmrindən istifadə etməli olacaqsınız, ona görə də dövrələrin təşkili üçün hər iki üsula yiyələnməyə çalışın.

MP cihazlarının proqramlaşdırılmasının əsasları (Mühazirə)

MÜHAZİRƏ PLANI

1. Mikroprosessor əmrlərinin təsnifatı

2. Ünvanlaşdırma növləri

3. MP KR580VM80-in strukturu və əmr formatları

1. Mikroprosessor əmrlərinin təsnifatı

Artıq qeyd edildiyi kimi, MP-nin əsas üstünlüyü proqramlaşdırıla bilməsidir. Bu o deməkdir ki, MP girişinə əmrlər tətbiq etməklə, istənilən əməliyyat ardıcıllığını təmin etmək olar, yəni. konkret alqoritmin həyata keçirilməsi.Həll olunan məsələnin alqoritmi istədiyiniz qədər mürəkkəb ola bilər, sadəcə olaraq bu alqoritmin MP-nin əmr sisteminə uyğun olaraq mərhələlərə bölünməsi lazımdır.Ona görə də əmr sistemi vacib deyil. yalnız millət vəkilinin nə edə biləcəyi nöqteyi-nəzərindən, həm də alqoritmin necə icra olunduğundan. Hər hansı bir əmrin və ya komandalar qrupunun olması və ya olmaması müəyyən bir tətbiq üçün MP seçiminə əhəmiyyətli dərəcədə təsir göstərə bilər.

MP komandalarının təsnifatı Şəkil 8-də verilmişdir.

Bir əmri yerləşdirmək üçün tələb olunan yaddaş hüceyrələrinin sayına əsasən uzunluğu bir, iki və ya üç sözdən ibarət komandalar fərqləndirilir. Uzunluğu iki və ya üç sözdən ibarət olan təlimatların alınması üçün müvafiq olaraq iki və ya üç yaddaşa giriş dövrü tələb olunur.

Bir çox hallarda, xüsusən də oxşar arxitekturalı MP-ləri müqayisə edərkən, MP-nin memarlıq xüsusiyyətlərinə uyğun olaraq əmrləri təsnif etmək faydalıdır.

Funksional baxımdan komandalar üç böyük qrupa bölünür: ötürülmə, idarəetmə və məlumatların emalı. Funksional xüsusiyyətlərə görə təsnifatdan istifadə edərək MP-də istifadə olunan əsas əmrləri ətraflı nəzərdən keçirək. Əmrlərin adları yerinə yetirilən əməliyyatların mənasını bildirən rus sözləri ilə işarələnəcək.

Məlumat ötürmə əmrləri heç bir emal əməliyyatı etmədən məlumatın sadə ötürülməsini təmin edir. Bu qrupdakı əmrlər yaddaşa daxil olmaq, qeydiyyatdan keçmək əmrləri və giriş/çıxış əmrləri ilə bağlı əmrlərə bölünür.

Yaddaş girişi ilə əlaqəli əmrlərə aşağıdakılar daxildir:

UNUTMAYIN(YAZ), onun vasitəsilə reyestrin məzmunu yaddaş hüceyrəsinə göndərilir.

Baytın və ya sözün ötürülməsi ilə bağlı əmrlər xüsusi registr nömrəsini, yaddaş xanasının ünvanını və zəruri hallarda yaddaş modulunun nömrəsini göstərməlidir.

Registrlərə girişlə bağlı əmrlər məlumat mənbəyinin nömrəsini və nəticə registrinin nömrəsini göstərməlidir.Məlumatların ötürülməsi əmrlərinin bu altqrupuna aşağıdakı əmrlər daxildir:

BİRBAŞA YÜKLƏ, burada əmr kodunda göstərilən sabit reyestrə yazılır;

İrəli, onun vasitəsilə bir reyestrin məzmunu digərinə göndərilir.

I/O əmrlərinə aşağıdakılar daxildir:

ENTER, onun vasitəsilə daxiletmə qurğusunun məzmunu MP-nin daxili reyestrinə göndərilir;

NƏTİCƏ, burada MP-nin daxili registrinin məzmunu (adətən akkumulyator) çıxış cihazına göndərilir.

Nəzarət əmrləri , tez-tez keçid əmrləri adlanır, sistem daxilində yaradılan xarici siqnalların və ya şərtlərin dəyərinə uyğun olaraq müxtəlif hərəkətləri yerinə yetirməyə imkan verir.Bütün idarəetmə əmrləri şərtsiz və şərti keçid əmrlərinə bölünür.

Şərtsiz atlama əmrlərinə aşağıdakılar daxildir:

QEYDİ-şərtsiz tullanma(BP), buna görə BP əmrinin ünvan sahəsinin məzmunu proqram sayğacına yazılır, yəni. proqramda əmrdə göstərilən ünvana keçidi təmin edir;

GERİ ÖDƏNİŞLƏ ŞƏRTSİZ Köçürmə(alt proqrama keçid), ona uyğun olaraq proqram sayğacına yeni məzmunlar yazılır (alt proqramın ilk əmrinin ünvanı), lakin BP əmrindən fərqli olaraq, proqram sayğacının və bəzi digər registrlərin vəziyyəti yaddaşda saxlanılır. . Alt proqram onun sonuncu RETURN əmri ilə yerinə yetirildikdə, proqram sayğacının məzmunu və bütün registrlər bərpa olunur.

Şərti atlama təlimatları registr bitinin vəziyyətini, flip-flop və ya digər parametrləri yoxlayır. Yoxlamanın nəticəsi keçidin həyata keçirilib-keçirilməyəcəyini müəyyən edir. Tipik olaraq, keçid yoxlamanın nəticəsi əmrdə göstərilən şərtə uyğun olduqda həyata keçirilir. İdarəetmə əmrlərinin bu alt qrupuna aşağıdakılar daxildir:

ŞƏRTLİ TUTULMA(UP) ünvan üzrə.YUKARI əmrinin kodu yoxlanılan şərti, bunun üçün MT-nin nəticənin sıfır və ya sıfırdan fərqli dəyərini, nəticənin müsbət və ya mənfi işarəsini, daşımaların olub-olmamasını göstərməlidir. siqnallar, daşqınlar və s.Şərt yerinə yetirildikdə, ünvan sayğacının məzmunu proqram sayğacına yazılır.UE əmr sahələri, yəni. proqramda əmrdə göstərilən ünvana keçidi təmin edir. Şərt yerinə yetirilmədikdə, idarəetmə proqramın növbəti əmrinə verilir;

GERİ DÖNÜŞLƏ ŞƏRTLİ KEÇİD, bu, QAYDIRMA İLƏ QEYDİ-ŞƏRTDƏ KEÇİLMƏ əmrindən onunla fərqlənir ki, alt proqrama keçid yalnız göstərilən şərt yerinə yetirildikdə baş verir.

Tipik olaraq, MP komanda sisteminə şərti keçidlərin yerinə yetirilməsinə təsir edən registrlərin və ya tetikleyicilərin vəziyyətinə nəzarət etməyə imkan verən daha bir neçə köməkçi əmr daxildir, məsələn: SET BAYRAĞI, RESET FLAG, SET BATTERY BIT, RESET BATTERY HIGH BIT və s. .

Məlumatların emalı əmrləri arifmetik və məntiqi bölünür. Arifmetik olanlara aşağıdakılar daxildir:

QAT iki registr və ya registr və yaddaş xanasının məzmunu;

ÇIXAR yaddaş xanasının və ya registrinin məzmunundan;registrin məzmunundan;

1 ARTIRIN(ARTIM) yaddaş xanasının və ya registrinin məzmunu (stek göstəricisi, indeks registri, akkumulyator);

1 AZALIN(AZALMA) yaddaş xanasının və ya registrinin məzmunu;

YAPMAK İLE ƏLAVƏ EDİN, hansı əlavə ötürmə tetikleyicisinin vəziyyəti nəzərə alınmaqla həyata keçirilir. Bu, böyük ədədlərin işlənməsini təşkil etməyi asanlaşdırır;

KREDİTİN UÇOTUNU ÇIXARIN;

SHIFT yaddaş hüceyrəsinin və ya registrinin məzmunu (adətən bir bit).

Məntiqi əmrlərin alt qrupuna aşağıdakı əmrlər daxildir:

(LOGICAL MULTIIPLY), hansı ki, iki registr və ya yaddaş xanası ilə registr məzmunu arasında birləşmə əməliyyatı həyata keçirilir;

YA(MƏNTİQİ ƏLAVƏ), onun vasitəsilə iki registr və ya yaddaş xanası ilə registr məzmunu arasında ayırma əməliyyatı həyata keçirilir;

ETİRSİZLİK, iki registr və ya yaddaş xanası və registr məzmununun bit üzrə müqayisəsini həyata keçirən;

İNVERSİYA yaddaş hüceyrəsinin və ya qeydiyyatının məzmunu.

2. Ünvanlaşdırma növləri

MP-nin ən mühüm memarlıq xüsusiyyətlərindən biri yaddaşa daxil olmanın mümkün üsullarının və ya ünvanlama növlərinin siyahısıdır. Millət vəkilinin ünvanlama imkanları iki baxımdan əhəmiyyətlidir.

Birincisi, böyük həcmli yaddaş böyük ünvan uzunluğu tələb edir, çünki n-bit ünvan 2n söz tutumlu yaddaşa daxil olmağa imkan verir. Tipik 8 bitlik MP sözləri birbaşa yalnız 256 yaddaş hüceyrəsinə daxil olmağa imkan verir ki, bu da açıq şəkildə kifayət deyil. Nəzərə alsaq ki, yaddaşa daxil olmaq ən geniş yayılmış əməliyyatdır, onda aydın olur ki, MP-dən istifadənin səmərəliliyi əsasən MP-nin kiçik bit tutumu ilə böyük həcmli yaddaşın ünvanlanması üsulları ilə müəyyən edilir.

İkincisi, proqramlaşdırmanın asanlığı üçün massivlər, cədvəllər və göstəricilərlə işləyərkən verilənlərin ünvanlarını yaratmaq üçün sadə sistemin olması arzu edilir. Gəlin bu problemlərin həlli yollarına baxaq.

Əgər komandanın ünvan sahəsi məhduddursa və hər hansı yaddaş xanasına birbaşa daxil olmaq üçün kifayət deyilsə, belə hallarda yaddaş səhifələrə bölünür, burada 2n yaddaş xanası səhifə hesab olunur.

Kiçik bitli əmrin ünvan sahəsini böyük tutumlu yaddaşla uyğunlaşdırmaq üçün ("səhifə" problemini həll etmək üçün) MP-də müxtəlif ünvanlama növləri istifadə olunur:

Cari səhifəyə birbaşa müraciət . Bu ünvanlama ilə proqram sayğacı iki sahəyə bölünür; yüksək səviyyəli bitlər səhifə nömrəsini, aşağı sıra bitləri isə səhifədəki xananın ünvanını göstərir. Komandanın ünvan sahəsi səhifədəki xananın ünvanını ehtiva edir və səhifənin ünvanı başqa bir şəkildə, məsələn, xüsusi əmrdən istifadə etməklə təyin edilməlidir.

Səhifə registrindən istifadə edərək birbaşa ünvanlama. MP-də xüsusi komanda ilə yüklənmiş proqram baxımından əlçatan səhifə registrinə malik olmalıdır. Bu registr bütün yaddaşın ünvanlanması üçün lazım olan təlimatın ünvan sahəsinə bir neçə bit əlavə edir.

Qoşa sözlərdən istifadə edərək birbaşa ünvanlama. Komandanın ünvan sahəsinin uzunluğunu artırmaq üçün ünvan üçün əlavə bir söz ayrılır (lazım olduqda iki).

Proqram sayğacına nisbətən ünvanlama. Təlimat ünvanı sahəsi icra ünvanını formalaşdırmaq üçün proqram sayğacının məzmununa əlavə olunan imzalanmış tam ədəd kimi qəbul edilir. Bu nisbi ünvanlama üsulu üzən səhifə yaradır və proqramların yaddaşda hərəkətini asanlaşdırır.

İndeks registrinə nisbətən ünvanlanma. İcra ünvanı indeks registrinin məzmunu ilə işarələnmiş tam ədəd hesab edilən komandanın ünvan sahəsinin cəmlənməsi ilə formalaşır. İndeks reyestri xüsusi əmrlərlə yüklənir.

Dolayı ünvanlama . Dolayı ünvanlama istifadə edildikdə, komandanın ünvan sahəsi icraedici ünvanın saxlandığı cari səhifədəki ünvanı göstərir. Bu halda, komanda sahəsində əlavə bir bit tələb olunur - dolayı ünvanlama əlaməti. İcraedici ünvan yaddaş xanasında deyil, ümumi təyinatlı registrdə saxlanıla bilər. Bu halda dolayı ünvanlama registr ünvanlanması adlanır.

3. MP KR580VM80-in strukturu və əmr formatları

KR580VM80 seriyasının MP komanda sistemi üç formatda əmrləri ehtiva edir: tək bayt, iki bayt və üç bayt.

Birinci baytın məzmunu əmr formatını, əməliyyat kodunu, ünvanlanma növünü, əgər onlar əməliyyatda iştirak edirsə, registrləri və ya registr cütlərini göstərir.Lakin ilk üçünə ayrılan xüsusi bitləri müəyyən etmək mümkün deyil. əmrin müəyyən edilmiş komponentləri, çünki onlar əmrin istənilən bitində yerləşə bilər. Ancaq buna baxmayaraq, onların əməliyyat kodu sahəsi adlanan bir sahə kimi kodlandığını güman edəcəyik. Komandanın birinci baytı üçün formatların variantları Şəkil 9-da göstərilmişdir.

Əgər əməliyyatda registrlər iştirak edirsə, komandanın birinci baytında onlardan biri və ya ikisi göstərilə bilər. Bu halda, komanda sahəsində registr nömrələrinə kifayət qədər spesifik bitlər təyin olunur: üç aşağı səviyyəli bit (b2 – b0) operandı ehtiva edən mənbə registrinin nömrəsini və üç orta olanı (b5 – b3) kodlayır. – əməliyyatın nəticəsinin göndərildiyi təyinat registrinin nömrəsi Bu registrlərin hər ikisi və ya biri əməliyyatın icrasında iştirak etmədikdə əməliyyat kodu üçün müvafiq bitlərdən istifadə edilir.

Aşağıdakı registr kodlaşdırması qəbul edilir:

000 – B qeydiyyatı, 100 – H qeydiyyatı,

001 – C reyestri, 101 – L reyestri,

010 – registr D, 110 – yaddaş xanası,

011 - registr E, 111 - batareya A.

Kod 100 H və L registrlərində yerləşən 16 bitlik ünvandan istifadə edərək dolayı yaddaş ünvanlanmasının əlamətidir.Bu kodun komandada yerləşməsindən asılı olaraq müvafiq yaddaş xanasına ya operand üçün, ya da nəticələrin yazılması üçün daxil olur. əməliyyat.

Bir sıra MP əmrləri ikiqat uzunluqlu nömrələrin işlənməsini və ya ötürülməsini təmin edir. Bu hallarda B və C, D və E və ya H və L registrlərinin cütləri müvafiq olaraq 00, 01 və 10 nömrəli 16 bitlik registrlərə birləşdirilir. Komandalardakı registr cütlərinin nömrələri b2 və b1 (mənbə registr), b5 və b4 (təyinat registr) bitlərinə təyin edilir, əməliyyat kodunu göstərmək üçün isə b0 və b3 bitlərindən istifadə olunur.

MP-də iki baytlı əmrlərə birbaşa ünvanlama və giriş/çıxış əmrləri olan əmrlər daxildir.Müvafiq olaraq, bu qrupun əmrinin ikinci baytında 8 bitlik operand və ya giriş və ya çıxış qurğusunun 8 bitlik ünvanı var.

Üç baytlıq təlimatlarda ikinci və üçüncü baytlarda 16 bitlik ünvanlar (birbaşa ünvanlama təlimatlarında) və ya 16 bitlik operandlar (registr cütlərinin və yığın göstəricisinin yüklənməsi təlimatlarında) olur.

Hər bir ALU əməliyyatı yerinə yetirildikdən sonra dəyərləri sonrakı məlumatların işlənməsi və şərti idarəetmənin ötürülməsi əmrlərinin yerinə yetirilməsinə təsir göstərə bilən beş işarə yaradılır.Lakin nəzərə almaq lazımdır ki, müxtəlif əmrlər ayrı-ayrı işarələrə fərqli təsir göstərir.

Fasilələr və alt proqramlara keçidlər zamanı MP-nin vəziyyətini saxlamaq və bərpa etmək rahatlığı üçün göstərilən bütün xüsusiyyətlər xüsusi registrdə - xüsusiyyətlər registrində saxlanılır. Registr bitlərində işarələrin yeri cədvəldə göstərilmişdir.

burada S “işarə” atributudur (ən əhəmiyyətli bitin qiymətini alır

nəticə);

Z – nəticənin sıfır işarəsi;

AC köməkçi köçürmə əlamətidir (əgər köçürmə varsa

bayt tetradları arasında, sonra AC=1, əks halda AC=0;

P – nəticənin paritet əlaməti (baytda olanların sayı

nəticə cütdür, onda P=1, əks halda P=0);

C - köçürmə və ya borc əlaməti (əgər əmrləri yerinə yetirərkən,

Böyük rütbədən yuxarı rütbəyə və ya kreditə keçid olduqda-

Ən yüksək rəqəm C=1, əks halda C=0).

Qeyd: Məntiqi vurma əmrləri üçün köməkçi daşıma işarəsi AC nəticənin dördüncü bitinin qiymətini alır.

KR580VM80 MP seriyasının tam komanda sistemi “Mikroprosessorlar və mikroprosessor sistemləri” dərsliyinin əlavəsində verilmişdir. Orada hər bir əmr üçün, icra edildikdən sonra hər bir atributun dəyərinin necə dəyişdiyi göstərilir: əməliyyatın nəticəsinə uyğun olaraq təyin olunur (+), dəyişmir (-), sıfıra sıfırlanır (0). ) və ya birinə təyin edin (1).

Ümumiyyətlə, əmr aşağıdakı məlumatları ehtiva etməlidir:

–MP-nin yerinə yetirməli olduğu əməliyyatı göstərən əməliyyat kodu;

–iki operandın ünvanları (əlavələr, əlavələr və s.). Əgər operandlardan hər hansı biri sabitdirsə, onda onun ünvanı əvəzinə, operandın özünün qiyməti əmrdə göstərilə bilər. Lakin bu hal əməliyyat kodunda öz əksini tapmalıdır ki, MP əmrin müvafiq hissəsindən təyinatı üzrə istifadə etsin;

– əməliyyatın nəticəsinin yerləşdirilməli olduğu yaddaş xanasının ünvanı;

- növbəti əmrin ünvanı.

Bunlar. komanda ümumiyyətlə dörd ünvanlıdır.Lakin bu komanda strukturu daha uzun komanda formatına gətirib çıxarır ki, bu da öz növbəsində daha mürəkkəb emal prosesi və prosessor strukturu ilə əlaqələndirilir. Buna görə də MP texnologiyasında sadə prosessor qurmağa imkan verən ünvansız və unicast əmrləri ən çox yayılmışdır.Lakin mürəkkəb əməliyyatları yerinə yetirərkən müxtəlif əmr formatlarından istifadə olunur.

580 seriyalı MP təlimat sistemində tək bayt, iki bayt və üç bayt təlimatlar var.

Ünvan veriləcək əmr haqqında məlumat əmrin birinci baytının əməliyyat kodunda var.

Hesablamaları sürətləndirmək üçün bəzi operandlar RON blokunda saxlanılır. Bu operandlar üzərində işləyən təlimatlar qısaldılmış ünvan kodlarından istifadə edir (registr ünvanlanması).

Bu əmrlər RAM-a daxil olmağın nisbətən uzun dövrünü aradan qaldırmağa və bununla da əməliyyatların sürətini əhəmiyyətli dərəcədə artırmağa imkan verir. RON-un məhdud tutumuna görə və geniş məlumat massivi ilə işləyərkən MP-dən kənar yaddaşda yerləşən operandlara daxil olmağa imkan verən digər ünvanlama metodlarından istifadə olunur. Ən çox yayılmış HL registr cütündən istifadə edən registr dolayı ünvanlanmasıdır.

Nəzarət ötürmə əmrləri qrupunda dörd növ əmr var: şərtsiz budaqlar, şərti budaqlar, döngələr və kəsilmələr .

Şərtsiz atlama əmrləri. Üç mnemonik kod daxildir: JMP (şərtsiz atlama), CALL (alt proqram çağırışı) və RET (alt proqramdan qayıt).

JMP əmri proqramın həm cari proqram seqmentində, həm də başqa seqmentdə yerləşən istənilən nöqtəsinə keçməyə imkan verir. Cari proqram seqmentində atlayış zamanı ilk üç JMP təlimat formatından istifadə olunur.

Birinci format cari proqram seqmenti daxilində proqramın ixtiyari nöqtəsinə keçidi təmin edir, bunun üçün ikinin tamamlayıcı kodunda IP məzmununa 16 bitlik ofset əlavə edilir, ən əhəmiyyətli biti imzalanır. İkinci, qısaldılmış format, proqramda JMP təlimatından -128-f-127 ünvanından çox olmayan bir nöqtəyə keçməyə imkan verir. Nəhayət, üçüncü format təlimat göstəricisini postbayt tərəfindən təyin olunan EA icraedici ünvanında yerləşən 16 bitlik nömrə ilə yükləyir. Bu keçid dolayı adlanır, çünki dolayı ünvanlama istifadə olunur.

CS seqment registrinin yenidən yüklənməsi tələb olunduqda cari proqram seqmentindən kənarda yerləşən proqram nöqtəsinə qeyd-şərtsiz keçidi həyata keçirmək üçün dördüncü və beşinci JMP təlimat formatlarından istifadə olunur.

Dördüncü format birbaşa seqmentlərarası keçidi müəyyənləşdirir, burada formatın ikinci və üçüncü baytları keçid nöqtəsinin nisbi ünvanını, dördüncü və beşinci baytları isə yeni CS dəyərini göstərir. Postbaytdan istifadə edən beşinci format, keçid nöqtəsinin nisbi ünvanının yerləşdiyi EA icraedici ünvanını (EA, EA+1 ünvanları olan yaddaş baytlarında) və yeni CS dəyərini (yaddaş baytlarında) təyin etməyə imkan verir. EA+2, EA+3).

CALL əmri ya cari proqram seqmentində, ya da başqa yaddaş sahəsində yerləşən alt proqrama zəng etməyə imkan verir. Daha qısa olması istisna olmaqla, JMP əmri ilə eyni formatlara malikdir. Bənzər bir formatın JMP əmrindən fərqli olaraq, CALL əmri, IP və ya IP və CS dəyərlərini dəyişdirməzdən əvvəl, bu registrlərin cari dəyərlərini avtomatik olaraq yığına yazır ki, bu da alt proqramdan qayıtma nöqtəsinin yadda saxlanmasını təmin edir.

Alt proqramdan qayıtmaq üçün əvvəlki CALL əmrini yerinə yetirərkən idarəetməni yığının üzərinə itələnmiş qayıdış ünvanına ötürən RET əmrindən istifadə edin. Cari proqram seqmentində yerləşən alt proqramlardan qayıdarkən RET təlimatının ilk iki formatından istifadə olunur, ikinci format birincidən onunla fərqlənir ki, təlimatın 2-ci və 3-cü baytlarında yazılmış sabitin məzmununa əlavə olunur. yığın göstəricisi. Bu, alt proqramdan qayıtmaqla eyni vaxtda bu alt proqramın icrası zamanı yığına yazılan və gələcəkdə istifadə edilməyən parametrləri sıfırlamağa imkan verir.

Seqmentlərarası qayıdış üçün həm təlimat göstəricisinin, həm də proqram seqmentinin məzmununun bərpasını təmin edən üçüncü və dördüncü RET formatlarından istifadə olunur.

Şərti atlama əmrləri.Əvvəlki əməliyyatların nəticələrindən asılı olaraq nəzarətin ötürülməsi. İşarəli ədədlər, işarəsiz ədədlər və ixtiyari ədədlər arasında əlaqə yaratmaq üçün istifadə olunan üç növ şərti sıçrayış var. İlk iki növdə nömrələr arasındakı eyni əlaqələr üçün fərqli əmr mnemonik kodları seçilir, çünki fərqli bayraq dəyərləri imzalanmış və imzasız nömrələr arasında eyni əlaqələrə uyğundur.

Şərti keçid əmrlərinin mnemonik kodlarında imzalanmış rəqəmləri müqayisə edərkən hərf “böyük” şərtini göstərmək üçün istifadə olunur. G (Böyük- daha çox) və təyin etmək üçün - "az" hərfi L (Az- az). Bənzər şərtlər üçün imzasız rəqəmləri müqayisə edərkən müvafiq olaraq hərflərdən istifadə olunur A (Yuxarıda- yuxarıda) və Aşağıda- altında). Bərabərlik şərti hərflə qeyd olunur E (bərabər- bərabərdir) və bəzi şərtin yerinə yetirilməməsi - məktubla N(Yox- Yox). Qeyd etmək lazımdır ki, hər bir əmr üçün iki müxtəlif mnemonik koddan istifadə etməyə icazə verilir; məsələn, JL və JNGF mnemonik kodları ekvivalentdir, çünki “kiçik” və “böyük deyil və ya bərabər” şərtləri eynidir.

Komanda mnemonik kodlarının tam siyahısı, yoxlanılan şərtlər, habelə bayraqların müvafiq Boolean birləşmələri və onların dəyərləri Cədvəldə verilmişdir. 1.4.

Cədvəl 1.4

Mnemonik kod əmri Vəziyyət Bayraqların mənası
İmzalanmış nömrələr üçün
JL/JNGE Az/çox və ya bərabər deyil SF + OF = l
JNL/JGE az/böyük və ya bərabər deyil SF + OF = 0
JG/JNLE Çox/az və ya bərabər deyil (SF + OF) V ZF = 0
JNG/JLE İmzasız nömrələr üçün böyük/kiçik və ya bərabər deyil (SF + OF) V ZF = l
JB/JNAE Az/çox və ya bərabər deyil CF=1
JNB/JAE az/böyük və ya bərabər deyil CF=0
JA/JNBE Daha çox CF V ZF = 0
JNA/JBE Başqa məlumatlar üçün yox CF V ZF = 1
JE/JZ Bərabər/sıfır ZF = 1
JNE/JNZ Bərabər/sıfır deyil ZF = 0
JS Minusla SF = 1
JNS Müsbət tərəfdə SF = 0
JO Daşqın OF = l
JNO Daşmanın olmaması ilə OF = 0
JP/JPE Hətta paritetlə PF = 1
JNP/JPO Qəribə paritetlə PF = 0

Bütün şərti keçid təlimatları eyni iki baytlıq formata malikdir, birinci bayt əməliyyat kodudur (OPC), ikincisi isə imzalanmış nömrə kimi qəbul edilən 8 bitlik ofsetdir və buna görə də diapazonda ünvan dəyişikliklərinə imkan verir. -128 ilə + 127 arasında. Şərt yerinə yetirildikdə daha uzaq (“uzaq”) keçid tələb olunarsa, əlavə qeyd-şərtsiz keçid əmrindən istifadə edilir.

Şərti sıçrayış göstərişlərinin hər birinin icra müddəti iki hal üçün göstərilir: 1) şərt ödənilir və ofsetə uyğun olaraq idarəetmə faktiki ötürülür, 2) şərt təmin olunmur, ona görə də idarəetmə növbəti göstərişə keçirilir.

Dövrlərin təşkili üçün komandalar. Hesablama dövrlərinin yerinə yetirilməsinin rahatlığı üçün CPU-ya daxil edilmişdir. Bunlara aşağıdakı mnemonik kodlar daxildir: LOOP ((CX) 0-a bərabər olmayan dövrə), LOOPNZ/LOOPNE (sıfıra qədər döngə/bərabər deyil), LOOPZ/LOOPE (sıfıra qədər döngə/bərabər) və JCXZ (atlama üzrə) SH-də sıfır). Bu əmrlərin hər biri iki baytlıq formata malikdir, ikinci bayt sıçrayışı təşkil etmək üçün istifadə olunan 8 bitlik ofseti təyin edir. Bu ofset imzalanmış nömrə kimi qəbul edilir və keçid ünvanı hesablanmazdan əvvəl 16 bitə qədər imzalanır.

Döngə əmrləri ilə birlikdə sətir elementlərini manipulyasiya etmək üçün əmrlərdən istifadə edərək, kifayət qədər mürəkkəb sətir çevirmə proqramları yarada bilərsiniz. Onaltılıq say sistemində yazılmış verilənlər silsiləsini XLAT üçün cədvələ çevirmə əmrindən istifadə etmək üçün tələb olunduğu kimi BX-də göstərilən başlanğıc ünvandan konvertasiya cədvəlinin yaddaşda yerləşdiyi bəzi koda çevirmək üçün proqram tərtib etmək nümunəsini nəzərdən keçirək. kodlar. Daha sonra fərz edək ki, mənbə sətri 80 elementdən ibarətdir və yaddaşda nisbi başlanğıc ünvandan 100-dən, nəticə sətri isə nisbi ünvandan 200-dən yerləşdirilməlidir. Mənbə sətrini nəticə sətirinə çevirən proqram istiqamət bayrağının dəyəri DF=0, formaya sahib olacaq:

MOVSI, 100
MOV DI, 200
MOV CX, 80

Burada 1.2-də təsvir olunan XLAT cədvəlinin çevrilməsi əmrindən istifadə olunur.

Kəsmə əmrləri.Üç mnemonika daxildir: INT (kəsmə), INTO (daşma zamanı kəsmə) və IRET (kəsilmənin qaytarılması).

INT əmrini kəsin v=1 iki baytlıq formata malikdir, ikinci baytında növü müəyyən edən 8 bitlik nömrə var (növ) və ya kəsmə səviyyəsi. INT əmri ilə növü Prosessor müəyyən edilmiş səviyyəli kəsmə xidmət proqramını icra etməyə davam edir və kəsilmə nöqtəsinə qayıtmağı təmin etmək üçün lazım olan hərəkətlər avtomatik olaraq yerinə yetirilir. Bu hərəkətlər aşağıdakılardır: F bayraqları registrinin məzmunu yığına (PUSHF) yazılır, IF və TF bayraqları sıfırlanır, CS registrinin cari qiymətləri və IP təlimat göstəricisi stekə yazılır.

Qiymətə uyğun olaraq xidmət proqramının başlanğıc ünvanını müəyyən etmək növü Kəsmə səviyyəsi cədvəlindən istifadə olunur. Bu cədvəldəki 256 kəsilmə səviyyəsinin hər biri üçün dörd bayt ayrılır: ilk iki bayt IP təlimat göstəricisinin dəyərini, ikincisi - CS seqment registrinin dəyərini müəyyənləşdirir. Bu dörd bayt xidmət proqramlarının başlanğıc ünvanlarını (CS cütləri, IP dəyərləri) müəyyənləşdirir, bunlar əvvəlcə mütləq 0-3FFH ünvanlarında yaddaş hüceyrələrinə yazılmalıdır. INT əmrində göstərilənə uyğun olan cədvəl ünvanı növü fasilə səviyyəsi CPU-da aşağıdakı kimi müəyyən edilir. CS və GR-nin cari dəyərlərini yığında saxladıqdan sonra yükləmə aparılır: CS = növü x 4 + 2 və IP = növü x 4. Ünvan hüceyrələrindən müvafiq olaraq yeni CS və IP dəyərləri götürülür növü x 4 + 2 növü x 4, tələb olunan texniki xidmət proqramının başlanğıc ünvanını müəyyən edin.

Sahə dəyəri olduqda yuxarıda müzakirə edilən INT kəsmə əmri v=0 bir baytlıq formata malikdir, yəni kəsilmə səviyyəsinin xüsusi göstərilməsini tələb etmir. Bu əmr prosessor tərəfindən avtomatik olaraq 3-cü səviyyənin kəsilməsi kimi qəbul edilir. (növ=3) və proqramlarda adətən yoxlama nöqtəsi kimi istifadə olunur.

INTO overflow interrupt əmri dördüncü səviyyəli fasiləyə xidmətə keçidə səbəb olur (növ = 4) daşqın bayrağının dəyəri olduqda OF = 1. INTO əmri adətən imzalanmış arifmetik əmrlərdən sonra istifadə olunur. Tipik olaraq, ilk bir neçə kəsmə səviyyəsi (32-yə qədər) sıfıra bölmə cəhdi, daşqın və s. kimi bir sıra xüsusi vəziyyətlərin işlənməsi üçün qorunur.

Qorunan səviyyələrin kəsilmələrinin işlənməsinin özəlliyi ondan ibarətdir ki, prosessor IF kəsilməsini aktivləşdirmə bayrağının qiymətindən asılı olmayaraq onlara xidmət göstərməyə davam edir.

Bir baytlıq IRET təlimatı hər kəsmə xidməti proqramının sonunda yerləşdirilir və kəsilmənin qaytarılmasını təmin edir. Bu komanda ilə prosessor stekdən İP göstəriş göstəricisinin və CS proqram seqmentinin qiymətini alır, həmçinin F bayraqları registrinin əvvəlki məzmununu bərpa edir (POPF əmrində olduğu kimi). Zəruri hallarda, kəsilmiş proqrama uyğun gələn qalan CPU registrlərinin məzmunu xidmət proqramına keçərkən stekdə saxlanıla bilər və sonra stekə giriş təlimatlarından istifadə edərək ondan qayıtdıqda bərpa edilə bilər.

Dolayı ünvanla

PCHL – keçid ünvanı HL registr cütlüyündə saxlanılır. İcra edildikdə (HL) → PC.

Şərti atlama əmrləri

Jcon @, burada con ingiliscə şərt sözündən olan mnemonik şərtdir.

Əvvəllər qeyd edilmişdir ki, keçid şərti kimi RgP (F) bitlərinin (bayraqlarının) vəziyyəti istifadə olunur. Bu vəziyyətlərə uyğun gələn mnemonikalar Şəkildə təqdim olunur. 6.18.

Məsələn: JC 8BFE – C=1 8BFE ünvanına getdikdə, C=0 olduqda ünvanda növbəti əmr yerinə yetirilir.

PP-yə zəng etmək və geri qayıtmaq üçün əmrlər

Əvvəllər qeyd edildi ki, qaytarma ünvanı avtomatik olaraq yığında saxlanılır, yəni. (PC) ® yığını.

Şərtsiz əmrlər

CALL @ – alt proqram zəngi;

RET – alt proqramdan qayıdış.

Şərti əmrlər

Ccon @ – alt proqram çağırışı;

Rcon – alt proqramdan qayıdış.

Əmrlərin hərəkəti şərti atlama əmrlərinin hərəkətinə bənzəyir, yəni. şərt doğrudursa, zəng edin və ya qayıdın. Əgər belə deyilsə, onda aşağıdakı əmrlər yerinə yetirilir.

Digər idarəetmə əmrləri

RST n, burada n = 0.1,...,7 – kəsilmə vektoru n-ə uyğun olaraq yenidən işə salın.

Bu əmr yerinə yetirildikdə, idarəetmə bu kəsməyə xidmət edən alt proqrama ötürülür. RST göstərişinin icrası zamanı PC proqram sayğacının məzmunu stekdə saxlanılır və müvafiq kəsilmə vektorunun ünvanı PC-yə yazılır.

Bu ünvan aşağıdakı kimi təyin edilir. RST əmri 11NN N111 strukturuna malikdir, yəni. bir bayt. Üç bitlik NNN birləşməsi n (n = 0...7) dəyəri ilə müəyyən edilir. 0000 0000 00NN N000 dəyəri müvafiq kəsmə vektorunun ünvanı kimi xidmət edən PC komanda sayğacına daxil edilir.

Beləliklə, n-nin müəyyən bir qiymətini təyin etməklə, 8 kəsmə vektorundan birinin ünvanını yarada bilərsiniz. Bu ünvanlar ünvan sahəsinin 0000H-dən 0038H-ə qədər olan zonada yerləşir və 8 baytdan keçir, yəni. İlk 64 yaddaş hüceyrəsi onlar üçün ayrılmışdır (8 vektorun hər birinə 8 bayt ayrılmışdır). Bu zonalarda (hər biri 8 bayt) yalnız digər yaddaş sahələrində yerləşən müvafiq alt proqramlara (işləyicilərə) keçid üçün əmrlər yazılır.

Alt proqramların kəsilməsi (normal alt proqramlar kimi) RET əmri ilə bitməlidir. Bu əmrin yerinə yetirilməsi zamanı stekdən kəsilmənin baş verdiyi əsas proqram əmrinin ünvanı seçilir və PA ünvan registrinə ötürülür və proqram sayğacına 1 artırılmış qiymət daxil edilir.

EI – kəsilməyə imkan verir. Bu əmr fasilənin aktiv olduğu proqram bölməsinin əvvəlində yerləşdirilir. Bu əmrlə MP idarəetmə blokunda kəsilmənin aktivləşdiricisi 1 vəziyyətinə təyin edilir.

DI – kəsilmənin dayandırılması. Bu əmr fasilənin aktiv edildiyi proqram bölməsinin sonunda yerləşdirilir və tətiyi 0 vəziyyətinə qaytarır.

NOP "boş" əmrdir. 4 tədbir keçir. Yalnız PC dəyişir.

HLT - dayandırmaq. Proqramın icrasının dayandırılmasına və dayandırılmış vəziyyətə daxil olmasına səbəb olur. MP xarici ünvandan və məlumat avtobuslarından ayrılır (yəni, onların buferləri Z vəziyyətinə keçir). WAIT (gözləmə) çıxışı 1-ci səviyyəyə təyin edilib. Bu vəziyyət MP başlanğıc siqnalları ilə və ya onu kəsmə vəziyyətinə qoymaqla kəsilə bilər.

ÖZÜNÜ TEST SUALLARI

1. Sadə mikrokompüter yaratmaq üçün hansı qurğular lazımdır?

2. Mikrokompüter strukturları üçün 5 variantı sadalayın.

3. Aralıq interfeysdən istifadə.

4. “PU nəzarətçisi” anlayışına nə daxildir?

5. I8080 prosessorunun xüsusiyyətlərini sadalayın.

6. Məlumat registrləri. Onların məqsədi.

7. Qeyd registrlərini imzalayın. Bu registrlərdə hansı atributlar saxlanılır?

8. Daxili və xarici ŞD arasında iki istiqamətli məlumat mübadiləsi prinsipini təsvir edin.

9. Proqramçı hansı registrlərdən istifadə edə bilər?

10. MP KR580VM80 əsasında mikrokompüterin blok-sxemini göstərin.

11. Maşın dövrü hansı dövrlərdən ibarətdir?

12. MP KR580VM80 məlumat formatlarını sadalayın.

13. MP KR580VM80-nin komanda formatlarını sadalayın.

14. MP KR580VM80-də hansı ünvanlama metodlarından istifadə olunur?

15. MP KR580VM80 komandaları hansı qruplara bölünə bilər?

16. Tək baytlı köçürmələr. Bu qrupdan olan əmrlərə nümunələr verin.

17. İki baytlı köçürmələr. Bu qrupdan olan əmrlərə nümunələr verin.

18. Batareyanın hansı əməliyyatlarını bilirsiniz?

19. RON və yaddaşda əməliyyatlar. Onlara hansı əməliyyatlar daxildir?

20. İdarəetmə əmrlərini sadalayın.

NƏZARƏT VƏZİFƏLƏRİ

1. Cavab vərəqlərində qrupun nömrəsi, tələbənin soyadı və onun variantının nömrəsi göstərilməlidir.

2. Sualların nömrələri şagird tərəfindən qiymət kitabçasındakı son iki rəqəminə uyğun seçilir. Cədvəl 6.1-də n-1 ədədin sondan əvvəlki rəqəmi, n isə sonuncu rəqəmdir. Cədvəlin xanalarında yazılı cavab verilməli olan sualların nömrələri var.

Sual nömrələri Cədvəl 6.1

a n a n-1
1,5,9, 13,16 2,6,10,14,17 3,7,11,15,18 4,8,12,13,19 1,9,11,14,20 2,10,12,15,18 3,5,8, 13,17 4,6,7, 14,19 1,8,10,13,17 2,5,7, 14,18
3,6,8, 15,19 4,7,9, 13,16 1,5,12,14,20 2,6,11,15,16 3,7,10,13,17 4,8,9, 14,18 1,7,12,13,18 2,8,10,14,19 3,5,11,15,20 4,6,9, 13,17
2,7,9, 13,20 1,8,11,15,19 4,5,10,15,17 3,6,12,14,16 1,5,9, 13,16 2,6,10,14,17 3,7,11,15,18 4,8,12,13,19 1,9,11,14,20 2,10,12,15,18
3,5,8, 13,17 4,6,7, 14,19 1,8,10,13,17 2,5,7, 14,18 3,6,8, 15,19 4,7,9, 13,16 1,5,12,14,20 2,6,11,15,16 3,7,10,13,17 4,8,9, 14,18
1,7,12,13,18 2,8,10,14,19 3,5,11,15,20 4,6,9, 13,17 2,7,9, 13,20 1,8,11,15,19 4,5,10,15,17 3,6,12,14,16 1,5,9, 13,16 2,6,10,14,17
3,7,11,15,18 4,8,12,13,19 1,9,11,14,20 2,10,12,15,18 3,5,8, 13,17 4,6,7, 14,19 1,8,10,13,17 2,5,7, 14,18 3,6,8, 15,19 4,7,9, 13,16
1,5,12,14,20 2,6,11,15,16 3,7,10,13,17 4,8,9, 14,18 1,7,12,13,18 2,8,10,14,19 3,5,11,15,20 4,6,9, 13,17 2,7,9, 13,20 1,8,11,15,19
4,5,10,15,17 3,6,12,14,16 1,5,9, 13,16 2,6,10,14,17 3,7,11,15,18 4,8,12,13,19 1,9,11,14,20 2,10,12,15,18 3,5,8, 13,17 4,6,7, 14,19
1,8,10,13,17 2,5,7, 14,18 3,6,8, 15,19 4,7,9, 13,16 1,5,12,14,20 2,6,11,15,16 3,7,10,13,17 4,8,9, 14,18 1,7,12,13,18 2,8,10,14,19
3,5,11,15,20 4,6,9, 13,17 2,7,9, 13,20 1,8,11,15,19 4,5,10,15,17 3,6,12,14,16 1,5,9, 13,16 2,6,10,14,17 3,7,11,15,18 4,8,12,13,19

Şərtsiz keçid əməliyyatı (BP) nəzarətin qeyd-şərtsiz ötürülməsi əməliyyatlarına aiddir və aşağıdakılardan ibarətdir. Əməliyyatın əvvəlində, BP-dən (qaytarma ünvanı) sonra gələn əmri göstərən CC-nin məzmunu, proqram geri qaytarmağı nəzərdə tutursa, P1 AU-ya göndərilir; bu, P1 məzmununu daha sonra yaddaşa köçürməklə (məsələn, 3G əməliyyatı ilə) qaytarılma ünvanını saxlamağa imkan verir. Bunun üçün keçidin aparıldığı proqram bölməsinin ilk əmrlərində müvafiq əməliyyat olmalıdır. Əməliyyatın növbəti mərhələsində SchK-da BP əmrində göstərilən ünvanla RAM və ya ROM xanasından keçid ünvanı olan 1-14 bitin məzmunu oxunur. Bu ünvanda, daha sonra keçidin edildiyi əmr üçün ROM-a sorğu göndərilir.

Sürüşmə əməliyyatı

Sürüşmə formatında (FSD) “Arifmetik sürüşmə sağa (sola)” və “Məntiqi sağa (sola) sürüşdürmə” əməliyyatları kodlaşdırılmışdır. Onlar icra olunduqda AC-də yerləşən nömrə üzərində hərəkətlər edilir. Əmrdə atributlar göstərilir: növbənin istiqaməti (5 r), növbələrin növləri (8,9 r) və onların sayı (1-4 r). Əməliyyat zamanı P2 registrinin bitləri yerdəyişdirilir, nəticə P2 və РСм registrlərində qeyd olunur və sağa sürüşmə eyni vaxtda 3 bit həyata keçirilir, sola sürüşmə 1 bit təşkil edir. 5-ci bitin "1"-ə bərabər dəyəri sola, "0"-a bərabər - sağa sürüşməyi müəyyənləşdirir.

Əməliyyatlar tsiklikdir. Dəyişmə dövrlərinin sayı dövrə sayğacı (CC) tərəfindən hesablanır. Əməliyyatın tsiklik hissəsini yerinə yetirməzdən əvvəl sabit və sürüşmə işarəsi olan komandanın 1-5 bitinin məzmunu mərkəzə göndərilir. Sonra P2-nin məzmunu RSM-ə göndərilir. Dəyişmənin özü P2 və Pcm registrlərinin məzmununun müvafiq olaraq P2' və Pcm'-ə "çəp" surətinin çıxarılması səbəbindən həyata keçirilir. Sonra PCm' və P2'-dən SM1 və SM2-yə keçidin nəticəsi P2 və PSM-ə yenidən yazılır. Əməliyyatın başa çatması SchT =0 dəyəri ilə göstərilir.

Sürüşmə növündən (L və ya A) asılı olaraq ya bütün 16 bit (L) və ya işarəsi olmayan (A) yalnız 15 bit (mantis) dəyişdirilir. A sağa sürüşdürüldükdə, boşaldılmış yüksək dərəcəli bitlər işarə ilə, sola keçdikdə isə boşalmış aşağı dərəcəli bitlər sıfırlarla doldurulur. Sağa və ya sola məntiqi sürüşmə zamanı boşaldılmış bitlər sıfırlarla doldurulur.

Siz həmçinin proqramlı şəkildə sürüşmə sabitini dəyişə bilərsiniz.

32 Şərti keçid əməliyyatlarını yerinə yetirərkən CB prosessorunun blok-sxeminin qovşaqlarının və elementlərinin qarşılıqlı əlaqəsi.

Şərti atlama əməliyyatları



Əməliyyatın yerinə yetirilməsi əvvəlki əməliyyatın nəticə atributunun qiymətini komandadakı “maska” kodu ilə müqayisə etməklə keçid şərtinin mümkünlüyünün yoxlanılması ilə başlayır. Şərt yerinə yetirilərsə, ünvanı PFU formatının ünvan-operand hissəsində olan əmrin icrasına keçid baş verir. Keçid şərti yerinə yetirilmədikdə, proqramda “Şərti atlama” əmrindən sonrakı əmr yerinə yetirilir.

"Şərti Atlama" (JJ) əmri iki bitişik ROM xanasını tutur. Birinci xanada əmr, ikinci xanada keçid ünvanı var. Şərti atlama komandanın 7-9 bitində kombinasiya ilə müəyyən edilir, qayıdış ünvanının yerləşdirilməsi şərti 6-cı bit ilə müəyyən edilir.

Şərt yerinə yetirildikdə, keçid ünvanı proqram sayğacına daxil edilir, ona görə də növbəti əmrin kodu bu ünvanlı xanadan oxunacaq. Qayıdış ünvanı 6-cı bit 0-a bərabər olarsa P1-ə və bu bitin qiyməti 1-ə bərabərdirsə Pcm-ə daxil edilir.

Keçid şərti yerinə yetirilmədikdə, i+2 ünvan kodu olan xanadan növbəti təlimat seçilir. Bu zaman əmrin 6-cı bitinin qiymətindən asılı olmayaraq, göstərilən kod (qaytarma ünvanı) P1-ə daxil edilir. Sonuncu, UE əməliyyat kodunu deşifrə edərkən SV prosessorunun iş alqoritmi ilə müəyyən edilir.

Qayıdış ünvanının PCM-də daxil edilməsi, AC-dən kod şinasına çıxışın yalnız müəyyən edilmiş registrə malik olması ilə əlaqədardır.

NC əməliyyatının icrasının özəlliyi ondan ibarətdir ki, komandanın “maska” bitlərində 111 və ya 000 kodu varsa, şərti keçid müvafiq olaraq qeyd-şərtsiz və ya əsas registrlərə göndərmə əməliyyatına çevrilir. Bu hallarda keçid ünvanları və ya əsas registrlərə göndərmə ünvanı təlimatın ünvan-operand hissəsinin (AOC) məzmunudur.

BR-yə göndərmə əməliyyatını yerinə yetirərkən, AOC-nin məzmunu əmrin 15-17 bit məzmunundan asılı olaraq bir və ya bir neçə BR-yə göndərilir. Bu halda qaytarılma ünvanı P1 və RSM-ə göndərilmir.



NC əməliyyatını TCU əməliyyatı kimi yerinə yetirmək, kəsilən proqramlara keçmək üçün kəsilmələrdə istifadə edilə bilər. Bunun üçün əmrin 5-ci bitində proqramlaşdırılmış keçidin (PNT) atributu təyin edilir. Bu halda əmr fasilə siqnalı (ISR) vasitəsilə ROM-dan prosessora oxunur. Bu halda, ROM-a giriş ünvanı (kesinti ünvanı) prosessorun kəsilmə sxemi tərəfindən yaradılır.

Bu halda əməliyyatın özəlliyi ondan ibarətdir ki, fasilələrin qaytarılması ünvanı FUP formatında əmrdən sonra gələn əmrin ünvanı deyil, əvvəl kəsilmənin baş verdiyi komandanın ünvanıdır. NPP siqnalı aşağıdakı kimi işlənir. Bu siqnal əsasında prosessorun kəsmə sxemi FUP(i) formatında keçid instruksiyasının birinci xanasının ünvanına bərabər olan kəsmə ünvanı (APr) yaradır. Bu ünvan keçid və ROM ünvan reyestri vasitəsilə yaddaşa ötürülür. Kəsmə ünvanları elə seçilir ki, əmrin birinci xanasının ünvanı (i) cüt, ikinci xananın ünvanı isə (i+1) tək olsun. İkinci ünvan CC-nin iştirakı olmadan ən az əhəmiyyətli rəqəmi sıfırdan birə dəyişdirməklə əldə edilir (aparatda). ROM-dan əmrin oxunması və yerinə yetirilməsi prosesində SchK (K+1) məzmunu AC-nin P1 registrində, əmrin ikinci xanasının məzmunu isə (i+1), j ünvanlı komandaya keçidin ünvanı olan SchK-ya daxil edilir. CC-nin yeni məzmunu ilə bağlı ROM-a sorğu verilir. Beləliklə, kəsilmə zamanı növbəti göstərişin ünvanı (K+1) P1 registrində saxlanılır. Kesinti emal edildikdən sonra bu ünvan kəsilmiş proqrama qayıtmaq üçün istifadə olunur.

33 Prosessor və sistemin idarəetmə əməliyyatlarını yerinə yetirərkən SV prosessorunun blok-sxeminin qovşaqlarının və elementlərinin qarşılıqlı əlaqəsi.