Командалар жүйесі
Процессор орындай алатын командалар жүйесіне кірісейік. Машиналық команда операциялық және адрестік бөліктерден тұратынын білеміз. Операциялық команда мәліметтермен жасалатын әрекеттерді көрсетеді, ал адрестік команда ол мәліметтерді қайдан алу керектігін және нәтижені қайда орналастыру қажеттігін көрсетеді.
«Е97» командаларының құрылымын қарастырайық (7.5-сурет). Команданың әрбіреуі 4 биттен болатын 4 бөліктен құралады: МОД модификатор, КОП операция коды және 2 ОП1 және ОП2 операнда. Операндтар мен КОП мақсаты алдындағы тарауда көрсетілген. МОД қарастыратын болсақ, команданың жүзеге асу нұсқаларын көрсетеді. Мысалы, байтты немесе сөзді адрестеу, т.с.с.
Ең қарапайым команда форматы операция жоқ (коды 0) және тоқтау (коды F). 7.5 суретте көрсетілгендей мұндай командаларда КОП қатысқан, қалған 12 биттің мәні жоқ. Коды 0 мен В интервалындағы командалар екі адресті болып табылады. 7.1 суретінде көрсетілген бөлімге сәйкес келеді. Оларға:
1 – тіркеу
2 – қосу
3 – алу
4 – салыстыру
6 – бөлу
7 – логикалық «және»
8 – «немесе»
9 – «емес»
А – порттан енгізу
В – порттан шығу
|
|
|
|
б) (КОП = 1-В)
в) (КОП = С)
г) (КОП = D)
д) (КОП = Е)
7.5-сурет. «Е97» процессорының командалар форматы
Тіркеу әдісі келесідей орындалады: ОП1 ақпарат оқылады және ОП2-ге көшіріледі. Портқа енгізу мен шығару осыған сәйкес жұмыс жасайды. Тек порт нөмірі ретінде операндтардың бірі көрсетіледі. Барлық басқа 2-9 кодты екі адресті командалар әмбебап сұлбамен орындалатын 2 мәліметпен әрекет етеді. Ол:
ОП2 әрекет ОП1 =>ОП2
Мысалы, бөлу командасында процессор ОП2 алып, оны ОП1-ге бөледі және ОП2-ң алғашқы мәнінің орнына орналасады.
Салыстыру командаларының аз ғана ерекшелігі бар. Оның орындалуы кезінде ОП2-ОП1 айырмасы есептеледі, бірақ нәтиже ешқайда сақталмайды.
Арифметикалық әрекеттер бүтін сандармен жүзеге асады және олардың нәтижелері «16-битті таңбасы бар бүтін сан» форматында болады. Бөлу кезінде бүтіннің бөлігі пайда болады. Нақты сандармен әрекеттер бағдарламалық жолмен жүзеге асады (сәйкес бағдарламалар мысалы, бір ТЕСҚ-на орналасуы мүмкін).
Енді өту командаларын қарастырайық. Олар абсолютті және салыстырмалы болады. Осыған сәйкес «Е97» процессорінде С және D әрекет коды бар 2 түрлі өтулер бар. Олардың форматтары 4.20 в, г суреттерінде көрсетілген.
Коды С-ға тең абсолют өтуді қарайық. Егер процессор бағдарламадан екі сөзден тұратын команда кездестірсе
1C0D
0056,
онда келесі 56 адресті команда орындалады. Өту адресі команданың өзінен алынады. 1C0D командасында үлкен он алтылық сан- модификатор болып табылады және ол шартсыз өтуге сәйкес келеді. С-әрекет коды. 0-қолданылмайтын сан. D-көрсетілген адрес келесі сөзде сақталатындығын көрсететін операнд. Ол 1C0D бүтін бөлігін құрайды.
Коды D-ға тең салыстырмалы өтуді қарастырайық. Мысал ретінде келесі команданы алайық:
1D06,
Бұл команда 42 адресті жадыда сақталған болсын. Процессор жұмысының негізгі алгоритміне сәйкес қарастыратын команда таңдалған соң РС команда адресінің санауышы автоматты түрде 44-ке артады. Сонан соң өту командасын шифрлеп процессор 06-ға ығысқан PC-дің ағымдық мазмұнына келеді және 44+6=4А адресіне өтуді жүзеге асырады. Салыстырмалы өту кезінде нәтиже адресі ЖЕСҚ-ға өту командаларының орналасуына байланысты.
МОД командасы өту қандай шарт бойынша жүзеге астындығын көрсетеді. «Е97»-де қолданылатын барлық модификатор мәндері төменде көрсетілген:
0-бағдарлама астарынан қайта оралу;
1-шартсыз өту;
2-N=0(≥0);
3-N=1(<0);
4-Z=0(≠0);
5-Z=1(=0);
6-N=1 or Z=1(≤0);
7-N=1 and Z=0(>0);
9-бағдарлама астарын шақыру.
Шартты өтумен жұмыс жасау үшін келесі ережелерді есте сақтау қажет:
«Егер талданушы шарт ақиқат болса немесе басқарушының анықтау күйі талапқа сай болса, онда өту орындалады. Керісінше жағдайда ешқандай әрекет болмайды және процессор келесі команданы таңдайды»
Командалардың соңғы тобы – ығысуды қарастырайық. Олардың коды ЕА-ЕС. Олардың барлығы ОП1 кодын ДКОП мәніне байланысты бір разрядқа солға немесе оңға ығыстырады. Солға ығысу көбейтуге, ал оңға ығысу 2-ге бөлуге сәйкес келеді.
ЕС командасы арифметикалық ығысу деп аталады, ол ЕВ қарапайым ығысуына қарағанда үлкен таңбалық разряд арифметикалық ығысу кезінде өзінің мәнін сақтап қалады. Мысалы:
ОП1 –дің шығыс мәні: 1111 0000 1111 0000
ЕВ командасының нәтижесі: 0111 1000 0111 1000
ЕС командасының нәтижесі: 1111 1000 0111 1000
Арифметикалық ығысу теріс санды бөлу үшін қажет, себебі үлкен разрядта бірлік автоматты түрде теріс таңбамен сақталады.
Дата добавления: 2014-12-22; просмотров: 4243;