PDP типті процессорлардың командалар жүйесі
Мысал ретінде қазіргі кезде жүзеге асатындай бөлшектеп зерттеуге ыңғайлы, DEC (АҚ) фирмасы мен әйгілі PDP-11 атымен белгілі машиналар сериясын алайық. Бұл мини- немесе микрокомпьютерлер типтері ұзақ уақыт бойы қолданыста келеді. 1970 жылы топтаманың алғашқы машинасы шыққан, DEC фирмасы 1997 жылдан бастап шығаруды тоқтатуды жоспарлаған.
PDP процессорын таңдау себебі: бұл процессордың командалар жүйесі қарапайым және көрнекі қағидаларға негізделген. Ол кезде басқа процессорлардың командалар жүйесі өте күрделі құрылған болатын және көптеген анықтама мәліметтерді есте сақтауды қажет етті.
PDP процессоры жалпы мақсаттағы сегіз регистрдан (ЖМР) және негізгі регистрдан құралған. Негізгі регистрда процессордың ағымдық күйі бейнеленеді. (RSW – Processor Status Word). Жалпы мақсаттағы кез келген регистр командаларда тең жағдайда қолданылады. Сонымен қоса екі ерекше регистр бар. Оларды процессор өзіне қажет жағдайда ғана қолданады. R7 регистрі бағдарламаның келесі нұсқауының адресі сақталатын команда санауышының рөлін орындайды. Басқа ерекше регистр болып R6 стек көрсеткіші саналады. Ол үзілісті өңдеуге өтуде және бағдарлама астарын шақыру кезінде ақпаратты сақтау үшін қолданылады.
Басқа 6 регистр былайша белгіленеді: R0, R1, R2, R3, R4, R5. Оларды бағдарламалаушы өз қалауы бойынша қолдана алады. Бір ескеретін жайт, PDP командалар жүйесінде R5 регистрімен жұмыс жасайтын бір жалғыз (МАRК) командасы бар.
6.3-сурет. PDP процессорының күй регистрiнiң сұлбасы
Процессордың күй регистрі (RSW) ЖМР сияқты 16 битті. Оның ерекшелігі: әрбір биттің өзіндік мәні болады және процессор оны басқалардан бөлек қолдана алады. Регистрдің басқарушы битінде орындалушы нәтижелер туралы ақпарат бейнеленеді. Сонымен қоса сол мезеттегі процессор күйі де сипатталады. Барлық қолданылатын биттерден жиі қолданылатыны екеуі: N және Z. N (Negative) басқарушы белгісі әрекет нәтижесінің белгісін бейнелейді. Егер сан теріс болса, онда N═1, оң болса N═0. Z (Zero) нәтиженің 0-ге тең немесе тең еместігі туралы бейнелейді. Бірінші жағдайда Z=1, екіншісінде Z═0 болады.
Суретте бейнеленген басқа басқарушы биттер келесі жағдайда қолданылады. Р-бит сыртқы құрылғылардан берілетін үзілістің жасыру есебін бейнелейді. (Р═0 үзіліс болады, Р═1 – жасырын болады). Т-бит «қақпан белгісі»; Т═1 болса үзілістен соң арнайы жүйелік бағдарлама орындалады. V-бит арифметикалық әрекет кезінде разрядтық торды толтыру белгісі. (Егер ол орындалса V ═1 болады). С-бит логикалық әрекет кезінде разрядтық торды толтыру белгісі. Ол кодтың ығысуымен бірге жүреді.
PDP процессорында командалар түрлері көп және қолдануға ыңғайлы болып келеді. Олардың негізгі бөлігі екі адресті және бір адресті болып табылады. Олар сәйкесінше 1 немесе 2 операнд орындайды. Кейбір басқарушы командаларды орындау үшін мәліметтер қажет болмайды (мысалы, бағдарлама тоқталысының командасы). Оларда операндқа сілтеме болмайды.
Бір немесе екі адрестік командалардың форматы төмендегі суретте бейнеленген. (6.4-сурет)
КОП | КМА | N POH | ||
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | ||||
КОП | KMA1 | N POH1 | KMA2 | N POH2 |
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | ||||
6.4-сурет. Бір адрестік және екі адрестік команда форматы. КОП - әрекет коды. КМА – адрестеу тәсілі, N РОН – жалпы мақсаттағы регистр номері (адрес коды)
6.1-кестесінде маңызды өрнектердің кейбір мысалдары келтірілген.
Біріншіден, өту командалары абсолютті және салыстырмалы болады. Бірінші типті өтулер көрнекі әрі кез келген ЖЕСҚ адресінде жүзеге асады. Салыстырмалы өтулер ЖЕСҚ-ның адресіне байланысты емес және есептеуден өту адресін талап етеді. Салыстырмалы өту қолданушы бағдарлама жадысының кез келген орнына жұмыс жасай алады. Салыстырмалы өтулер абсолютті өтулермен салыстырғанда жадыдан аз орын алады, сондықтан оның диапазоны шектеулі болады.
6.1-кесте. PDP процессорының маңызды командалары
Мнемоника командалар | Команданың мазмұны | Түсiндiрулер |
HLT | Тоқтау | Бағдарламаның орындауын тоқтайды |
CLR А | А Тазалау | А:=0 (0 операндқа А жіберіледі) |
INC А | А 1-ге үлкейту | А:=А+ 1 (А мәні 1-ге көбейеді) |
DEC A | А 1-ге кiшiрейту | А:=А-1 (А мәні 1-ге азаяды) |
MOV А,В | А-ны В-ға көшіру | В:=А (А мәні В-ны қабылдайды) |
ADD A,B | А-ны В-ға қосу | В:=А + В (В-ға қосынды меншіктеледі) |
SUB A,B | В-дан А-ны алу | В:=В-А (В-да айырма меншіктеледі) |
СМР А,В | А мен В-ны салыстыру | А-В айырмалар таңба бойынша бекiтiледi |
Бағдарлаушы биттер; А мен В сақталады | ||
JMP А | А-ға сөзсіз өту | А адресі бойынша сөзсiз өту |
BR К | К-ға сөзсіз өту. сөздер | К команды арқылы сөзсіз өту |
BEQ К | = 0 бойынша өткел | К сөздерге өткел, егер нәтиже = 0 |
BNE К | ≠ 0 бойынша өткел | К сөздерге өткел, егер нәтиже ≠ 0 |
BPL К | ≥ 0 бойынша өткел | К сөздерге өткел, егер нәтиже ≥ 0 |
ВМ1 К | < 0 бойынща өткел | К сөздерге өткел, егер нәтиже < 0 |
JSR А | А адресі бойынша iшкi бағдарламаны шақыру | RET командасы үшін қайтаруды есте сақтаумен, А адреске өткел |
RET | Iшкi бағдарламадан қайтаруы | Командаға қайта келу, келесі ішкі бағдарламадан оралу |
Екіншіден, өтулер шартты және шартсыз болып жіктеледі. Шартсыз өтулер атына сай әрдайым орындалады. Шартты өтулерді орындау кезінде басқарушы биттар талданады. Белгілер қажетті мәнге ие болса ғана, өту орындалады, әйтпесе өту орындалмайды және одан кейінгі бағдарлама жүреді.
BEQ және BNE командалары Z мәнін тексереді, ал BPL және BMI – N мәнін тексереді.
Өту командаларының кестесінде көрнекілікке адрестер немесе сөздердегі ығысу мәні көрсетілген. Осындай жолмен ЭЕМ жадысының командалары кодталады. Бірақ бағдарлама мәтінін жазуда бағдарламаның қажет орындарына таңба қойылады да белгілі бір адрестер мен ығысуды машина өздігінен есептейді.
Кестеде (кесте 6.1) көрсетілген командаларда А және В шартты белгілері берілген. PDP процессорының командалар жүйесі логикалық және заңды құрылған, сондықтан кез келген 1-ші, 2-ші операнд кез келген әрекетте бірдей беріледі. PDP процессорында әрекет орындау үшін қажет ақпарат орнын беру үшін 8 түрлі әдіс қолданылады. Әртүрлі ЖМР-ды қолдануға байланысты олар адрестеу әдістері деп аталады.
PDP процессорының негізгі адрестеу түрі байттық. Әрбір байттың жеке адресі бар. Процессор 16 разрядты болғандықтан оның бақылайтын адрестік кеңістігі 64 кбайт көлемді.
Байт кейбір командалар үшін операнд болуы мүмкін. Бірақ, көпшілік командалар 2 байт ұзындықты операндтар өңдейді. Ол «сөз» деп аталады. Сөз екі көршілес байттан құралады.
Сөз адресі болып құрамындағы байттың кішісінің адресі саналады.
6.2-кесте. Командаларда операндтарды көрсетудің кейбір әдістері
Атауы | Мнемоника | Түсіндірме |
Көрсеткiшi Жанама – көрсеткiшi Автоинкременттік Автодекременттік | Rn (Rn) (Rn)+ -(Rn) | Rn регистріндегі операнд ЖЕСҚ ұяшығындағы, Rn адресіндегі операнд Rn-ді оқығаннан кейін 1-ге артады Rn-ді оқудан бұрын 1-ге кемиді |
Мысал ретінде MOV(R1)+, R0 командасының орындалуын қарастырайық.
Бұл команда бойынша алдымен R1-де орналасқан адрес бойынша жадыдан ақпарат оқылады. Сонан соң бұл команданың келесі орындалуында кейінгі ұяшық өңделетіндей R1 мәні автоматты түрде өседі.
Әрекет ЖЕСҚ-нан оқылған ақпаратты R0 регистріне жазумен аяқталады.
Енді MOV(R7)+, R2 командасын қарастырайық және одан кейінгі сөзде 6 саны сақталған. ЖЕСҚ-нан команда алынғаннан соң R7 санауышы өсетінін ескерсек, команда орындалуы кезінде 6 саны сақталатын жады сөзінде оның мазмұны көрсетіледі. Сондықтан, көрсетілген әдіс операнд түрінде командада сақталатын тұрақтыны қолдануға мүмкіндік береді.
1-мысал. R1:=R2+R3; R4:=R3-R2 формулалары бойынша бағдарламаны есептеңіз.
131 бағдарлама.
MOV R2, R1 ; қосынды алмасатындықтан бірден қосу мүмкін емес
ADD R3, R1 ; екінші операнд
MOV R3, R4
SUB R2, R4
HLT
2-мысал. R1 және R2-де сан сақталған. Үлкенін R5-ке, кішісін R0 орналастыру керек.
132 бағдарлама
CMP R1, R2 ; R1 және R2 салыстыру
BPL L1 ; R1≥R2 болса өту; егер R2>R1 онда
MOV R1, R0
MOV R2, R5
BR L2; егер R1>R2
L1: MOV R1, R5
MOV R2, R0
L2: HLT
Ескерту! Бағдарлама мәтінінде белгіге өту көрсетілген, бірақ трансляция нәтижесінде олар берілген сөз саны бойынша автоматты түрде өтеді.
3-мысал. R1де ЖЕСҚ массивінің бастапқы адресі, ал R2-де ондағы ұяшықтар саны берілсін. Массив элементтерінің қосындысын есептеңіз.
133 бағдарлама
CLR R0 ; қосындыны тазалау
LI: ADD(R1)+, R0 ; қосындыға келесі элементті қосу
DEC R2 ; қалған элементтерінің санын 1-ге азайту
BNE L1 ; цикл, 0 элемент қалғанша орындалады
HLT
Ескерту! Бағдарламада DEC командасы автоматты түрде нәтижені 0-мен салыстыратыны қолданылған. Сондықтан CMP салыстыру командасын қолдану қажет емес.
Дата добавления: 2014-12-22; просмотров: 2919;