Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Intel 8085 микропроцессоры

2.2.1. Микропроцессордың құрылымы

Микропроцессор (МП) – қазіргі заманның күрделі цифрлық құрылғыларының (мысалы, компьютердің) құрамына кіретін, информация өңдеуші басты блок.

Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіну үшін олардың нақтылы бір түрін қарастыру ыңғайлы. Осындай үлгі ретінде қарапайым Intel 8085 микропроцессоры алынды. Өзінің қартаң жасына қарамай, бұл микропроцессор осы күнге дейін өз маңыздылығын жоймай, әлі де өндірісте шығарылады. Әрине, оның қолданылым аймағы – компьютерлер емес, оларда қазіргі заманда одан қуаттырақ және өнімділеу микропроцессорлар қолданылады. Intel 8085 сияқты микропроцессорлар, негізінде, олардың мүмкіншілігі жететін басқару жүйелерінде пайдаланылады.

Intel 8085 микропроцессорының құрылымы 2.1-суретте көрсетілген. Микропроцессордың құрама блоктарының арасындағы информация алмастырылуы оның ішкі сегізразрядты дерек желісі арқылы жүзеге асырылады.

2.1 Сурет

Микропроцессордың құрама блоктарын қарастырайық.

AC (Accumulator) – екісатылы триггер арқылы құрылған және қатарынан екі сөз (операндтардың біреуін және операция нәтижесін) сақтай алатын регистр-аккумулятор.

TR (Temporary Register) – операндтардың біреуін уақытша сақтауға арналған регистр.

ALU (Arithmetic-Logic Unit) – кірістеріне берілген екі сөзге (операндтарға) жүргізілетін операциялардың орындалуын жүзеге асыратын арифметикалық-логикалық құрылғы. Операцияға қатысты операндтардың біреуі уақытша регистрде (TR), ал екіншісі аккумуляторда сақталады; операция нәтижесі де аккумуляторға түседі. ALU тікелей қосу, алу, ығыстыру, сөздерді салыстыру операцияларын және логикалық операцияларды (инверсия, конъюнкция, дизъюнкция, екілік қосу) ғана орындайды. Олардан күрделірек операциялар (көбейту, бөлу және т.б.) қосалқы бағдарламалар арқылы орындалады. ALU құрамында екілік сандарды екілік-ондық кодқа айналдыру схемасы (DA, Decimal Adjust) болады.

RF (Register Flags) – орындалған арифметикалық және логикалық операциялардың нәтижелерінің белгі биттерін көрсететін, ту регистрі. Intel 8085 микропроцессорында бес түрлі белгі пайдаланылады: Z (Zero) – нөлдік белгісі, С (Carry) – тасымал белгісі, AC (Auxiliary Carry) – қосалқы тасымал белгісі, S (Sign) – терістік белгісі, P (Parity) – жұптық белгісі. Нөлдік белгі операция нәтижесінің ноль болғандығын, тасымал белгісі ең үлкен разрядтан шығарылатын тасымалды (яғни, жетінші разрядтан; разряд номерінің нөлден басталатынын еске түсіріңіз), қосалқы тасымал белгісі үшінші разрядтан шығарылатын (яғни, сегізразрядты сөздің тетрадаларының арасындағы) тасымалды (ол екілік-ондық кодтарға операциялар жүргізуге қажет), терістік белгісі нәтиже таңбасын, жұптық белгісі нәтижедегі бірлік санының жұптығын сипаттайды. Бұл белгілер информацияның өңделу процесін басқару үшін пайдаланылады.

В, С, D, E, H, L – сегізразрядты жалпы қызмет регистрлері (ЖҚР), олар мультиплексор/демультиплексор (MUX/DMUX) арқылы ішкі дерек желісіне байланысқан. Олардың әрбіреуін жеке түрінде де, В-С, D-E, H-L түрінде қос-қостап (олар В, D, Н жұптары деп аталады), 16-разрядты регистр ретінде де пайдалануға болады. H-L жұбы, әдетте, регистрлік жанама сілтеуге қажетті адресті сақтауға пайдаланылады.

W және Z – уақытша регистрлер, олар жадыдан команданың шығарылуы кезінде деректерді уақытша сақтауға арналған.

SP (Stack Pointer) – 16-разрядты стек көрсеткіші. Стек сөз жинағын сілтеусіз сақтауға ыңғайланған жады құрылымы. Стектің негізгі қызметі – үзіліс бағдарламалары мен қосалқы бағдарламалардың жұмысын қамтамасыз ету. Стектің түбі мен төбесі болады. Стекпен жүргізілетін операциялар – Push (сөзді жау) және Pop (сөзді оқу). Стек ретінде қызмет жадысының нақтылы аймағы бөлінеді де, оның түбі стек көрсеткішінде (SP) стек түбі ретінде белгіленеді. Стекпен жұмыс кезінде стек көрсеткішінде соңғы жазылған ұяшықтың адресі (стектің төбесі) тұрады. Push және Pop командаларының орындалуы кезінде SP мәні кеміп немесе өсіп отырады. Жадының байтты ұйымдастырылымында және стекке регистр жұбындағы дерек енгізілу кезінде үлкен байт SP-1 адресі бойынша, ал кіші байт SP-2 адресі бойынша сақталады да, SP мәні екіге кемиді. Оқу кезінде стектің жоғарғы екі ұяшығындағы дерек сәйкесті регистрлерге орналастырылады да, SP мәні екіге ұлғаяды. Сонымен, стек жұмысы LIFO (Last In – First Out) тәртібімен жүргізіледі, яғни стекке соңғы жазылған сөз бірінші шығарылады.

IP (Instruction Pointer) – 16-разрядты команда санауышы. Онда кезекті орындалатын команданың адресі тұрады. Бастапқы қойылым кезінде ол нөл мәнін қабылдайды, демек, бастапқы қойылым бағдарламасының бірінші командасы нолінші ұяшықта болады. Команда ұзындығы 1...3 байт болады. Жадыдан кезекті байт шығарылғаннан кейін PC мәні ұлғайтылады, команда бірбайтты болса, онда келесі команданың адресі, ал өзгеше жағдайда кезекті команданың келесі байтының адресі шығады. Команданың екінші және үшінші байттары W және Z регистрлеріне түседі.

INC/DEC (Increment/Decrement) схемасы ол арқылы жіберілген сөздерді бірге ұлғайтып немесе кемітіп отырады.

IR (Instruction Register) – команда регистрі. Ол жадыдан команданың бірінші байтын, яғни команда кодын қабылдайды.

DC – команда дешифраторы. Ол команда регистріндегі (IR) команда кодына сәйкесті операцияның машина циклдерін жүзеге асыруға қажетті сигналдар тудырады.

Synchronising and Control блогы команда дешифраторы мен машина циклдерінің шифраторының жағдайы негізінде ахуал сигналдары мен микропроцессорлық жүйені сыртқы құрылғылармен байланыстыратын, сыртқы желіні басқару сигналдарын тудырады.

МП мен жады немесе СҚ арасындағы информация алмасуы кезінде жадының сәйкесті ұяшығының немесе СҚ командасының құрамындағы немесе регистр жұптарының біреуіндегі адресі адрес буферіне (AB) жіберіледі. Үш жағдайлы адрес буфері адрестің үлкен разрядтарын адрес желісінің A15-8 жолдарына жібереді.

Үш жағдайлы адрес/дерек буфері (A/DB) уақыт бойынша кезектесіп, адрестің кіші байтын немесе дерек байтын жібереді.

Микропроцессордың әртүрлі ішкі регистрлерінің арасында дерек байттарының жіберілімі сегізразрядты ішкі дерек желісі арқылы, ал олардың МПЖ-нің басқа модулдерімен байланысы кезектелімді адрес/дерек желісі арқылы жүзеге асырылады.

Interrupt Control және Sequential I/O Control – үзілісті басқару және тізбекті енгізілім/шығарылымды басқару блоктары.

МП командаларының қалыпты жүргізілімінде олар жадыдан жазылым бағытымен HLT командасына жеткенше бір-бірден шығарылып орындалады. Жеке команданың шығарылуы мен орындалуы команда циклін (КЦ) құрады. Команда циклі бір немесе бірнеше машина циклінен (МЦ) тұрады. МП мен жады немесе СҚ арасында байт жіберуге арналған әрбір байланыс машина циклін қажет қылады. Өз кезегінде машина циклі бірнеше тактіге бөлінеді және такт саны машина циклінің түріне тәуелді болады.

Intel 8085 микропроцессорының келесі түрдегі машина циклдары бар:

1. Команда таңдалымы (OF, Opcode Fetch).

2. Жадыдан оқу (MR, Memory Read).

3. Жадыға жазу (MW, Memory Write).

4. Сыртқы құрылғыдан оқу (IOR, Input-Output Read).

5 Сыртқы құрылғыға жазу (IOW, Input-Output Write).

6. Үзілісті құптау (INA, Interrupt Acknowledge).

7. Желіні босату (BI, Bus Idle).

8. Тоқтатылым (HALT).

Әрбір машина циклінің басында цикл түрін сипаттаушы ахуал сигналдары тудырылады. Олар сыртқы құрылғыға жіберілетін қосалқы басқару сигналдарын қалыптастыруда пайдаланылады.

2.2.2. Микропроцессордың басқару сигналдары

Микропроцессордың шықпаларындағы сигналдар келесі қызметтерді атқарады:

- A15-8 – жады адресінің үлкен байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы шығыс жолдары. HOLD, HALT және RESET режимдерінде олардың шықпалары үшінші (жоғары кедергілі) жағдайға ауысады;

- AD7-0 – машина циклінің бірінші тактісінде жады адресінің кіші байтын немесе сыртқы құрылғының толық адресін шығаруға арналған үш жағдайлы кезектелімді жолдар. Адрес жіберілу тактісінен кейін олар дерек желісі ретінде пайдаланылады;

- ALE – машина циклінің бірінші тактісінде жіберілген жады адресінің кіші байтын сыртқы адрес регистріне енгізуге рұқсат беру стробы. Адресті регистрге енгізу ALE сигналының артқы ауытқымасымен жүзеге асырылады;

- , – сілтенген жады ұяшығына немесе сыртқы құрылғыға жіберілетін оқу және жазу стробтары. HOLD, HALT және RESET режимдерінде олардың шықпалары үшінші (жоғары кедергілі) жағдайға ауысады;

- READY – жадының немесе сыртқы құрылғының МП-мен информация алмасуға дайын екендігін көрсететін, кіріс сигналы. Жадының немесе сыртқы құрылғының дайын еместігінде, МП күту жағдайына кіреді де, бұл жағдай бірлік деңгейдегі READY сигналы түскенше созылады;

- S1, S0 – МП-дің сыртқы құрылғыға жіберетін ахуал сигналдары. Олар машина циклінің басында қалыптасып, бұл цикл біткенше сақталады;

- IO/М – жадыны немесе сыртқы құрылғыны таңдау сигналы. Оның жоғарғы деңгейінде сыртқы құрылғыға, ал төменгі деңгейінде жадыға байланыс жүзеге асырылады.

S1, S0 сигналдарымен бірге IO/М сигналы машина циклының түрін анықтайды. Ахуал сигналдары мен , және сигналдарының әртүрлі машина циклына байланысты мәндері 2.1-кестеде келтірілген.

2.1 К е с т е

МЦ түрі Ахуал сигналдары Басқару сигналдары
IO/M S1 S0
OF            
MR            
MW            
IOR            
IOW            
INA            
BI ҮЖ x x      
HALT ҮЖ     ҮЖ ҮЖ  

Келтірілген кестеде ҮЖ арқылы үшінші жағдай белгіленген.

- x1, x2 – МП-дың ішкі синхроимпульстер генераторының жұмысын қамтамасыз етуші кварцты резонатордың немесе одан басқа жиілік тиянақтаушы тізбектердің қосылатын шықпалары. МП-дың ішкі схемаларының жұмысын сәйкестіруші синхроимпульстер (CLK) шығару үшін генератор импульстері санау триггеріне жіберіледі де, ол қарсы фазалы екі импульстер тізбесін (Ф1 және Ф2) қалыптастырады. Олардың жиілігі (яғни, микропроцессордың жұмыс жиілігі) генератор жиілігінен 2 есе төмен болады. ALE сигналы Ф1 тізбесінен бірінші тактіде бөліп алынған біреуі ретінде қалытастырылады;

- () – МП-ды бастапқы жағдайына қайтару кірісі. Бұл сигнал қорек көзі қосылған кезде өздігінен қалыптасады, оның кез келген уақытта оператордың командасы арқылы да түсуі мүмкін. Оның әрекетімен PC және IR регистрлері, үзіліс рұқсаты мен желі ұсталымының құпталым триггерлері және т.б. тазартылады;

- CLK – микропроцессорлық жүйеге жіберілетін синхроимпульстер шығысы. Бұл импульстердің фазасы Ф2 импульстерінің фазасындай, ал жиілігі микропроцессордың x1 және x2 шықпаларындағы жиіліктен екі есе кем болады;

- RESET – жүйенің сыртқы модулдерін тазарту сигналы, ол тактілік CLK импульстеріне байланыстырылған және оның фазасы сигналынан өзгеше болады;

- INTR (Interrupt Request) – векторлық үзіліс сұранысының кірісі. Бағдарлама арқылы үзіліске рұқсат берілген жағдайда, бұл сигнал стробын тудырады. Бұл сұранысқа сәйкес шақырылатын қосалқы бағдарламаның адресін сыртқы құрылғы жібереді. Тазартылым кезінде сұраныс сигналы қабылданбайды (үзіліске тиым салынған);

- (Interrupt Acknowledge) – кезекті команда циклі біткеннен кейін жіберілетін, векторлық үзілісті құптау стробы. Ол үзіліс векторын оқу үшін пайдаланылады;

- RST 5,5; RST 6,5; RST 7,5 – RSTn (n = 5,5; 6,5; 7,5) түріндегі радиалды үзіліс сұранысының кірістері. Бұл сұраныстарға сәйкесті қызмет атқаратын қосалқы бағдарламалардың бастапқы адресі – 8n. Кіріс мәртебелері бекітілген, ең жоғарғы мәртебе RST 7,5 кірісінде. Бұл сұраныс тобының мәртебесі INTR сұранысының мәртебесінен жоғары болады. Бұл сұраныстардың әрбіреуіне және бір-біріне тәуелсіз тиым салуға болады;

- TRAP – мәртебесі ең жоғарғы дәрежедегі, тиым салынбайтын үзіліс сұранысының кірісі;

- SID, SOD (Serial Input Data, Serial Output Data) – деректерді тізбекті жіберу кірісі мен шығысы. RIM командасымен кіріс биті аккумулятордың жоғарғы разрядына енгізіледі, SIM командасымен шығыс биті осы разрядтан шығарылады;

- HOLD – желіні иелену сұранысы. Оны сыртқы құрылғы қалыптастырады;

- HLDA (Hold Acknowledge) – желінің иеленілуін құптау сигналы. Ол HOLD сигналына жауап ретінде кезекті машина циклының аяғында қалыптастырылады да, МП-дың жүйе желісінен ажыратылғандығын куәлайды. Бұл кезде желілер мен басқарушы , , IO/M және ALE сигналдарының жолдары үшінші жағдайға ауыстырылады.

2.2.3. Микропроцессордың жұмыс тәртібі

Команда циклы КЦ команда таңдалымынан басталады (Opcode Fetch, OF). Бірінші машина циклі Ml әрқашан OF, онда МП команданың бірінші байтын алады. Одан кейін, команданың бірбайтты, екібайтты немесе үшбайтты болуына байланысты бір немесе екі MR (Memory Read) түрлі машина циклінің болуы мүмкін.

Команданың бірінші байтында (b1) операция коды, сілтеу тәсілі жөніндегі мәліметтер, ал егер команда бірбайтты болса, онда операндтың адресі де болады. Бұндағы адрес қысқа адресті “регистр-регистр” түріндегі операцияларға ғана байланысты болады. Жалпы қызметтік 8 регистрді сілтеуге үшразрядты, ал регистр жұптарын сілтеуге екіразрядты адрес жеткілікті. Команданың екінші байтында (b2) операндқа қатысты жады ұяшығының адресінің кіші бөлігі немесе сыртқы құрылғының адресі немесе операндтың тікелей өзі болады (соңғылар команданың екібайттылық жағдайында). Команданың үшінші байтында (b3) операнд адресінің үлкен бөлігі немесе тікелей берілетін деректің екінші байты (регистрлер жұбына енгізу кезінде) болады. Регистрлер мен регистр жұптарының адрестері 2.2-кестеде берілген.

2.2 К е с т е

Регистрлер Регистр жұптары
B C D E H L M A B D H SP
                       

 

Команданың таңдалып, айқындалғанынан кейін, оны орындауға қосымша машина циклдарының қажет болуы мүмкін. Командада небәрі бірден беске дейін машина циклы болуы мүмкін.

Машина циклі, төменде қарастырылатын қалыпты әрекеттер жүргізілетін, тактілерден тұрады. Әртүрлі машина циклындағы такт саны –3…6, бірақ олардың көпшілігі үш тактіден тұрады.

Команда циклінде 4...18 такт болуы мүмкін.

Әртүрлі машина циклын жүзеге асырушы сигналдарды команданың бірінші байтындағы информация негізінде МП тудырады.

Айтылғанды мысал арқылы суреттелік. Аккумулятордағы деректі жады ұяшығына тура сілтеумен (яғни, адрестің командада көрсетілуі арқылы) жіберуші STA D3D2 (Store Accumulator Direct) командасының орындалуын қарастыралық. Команда – үшбайтты, оның МП-ға жіберілуі үшін үш машина цикліыкерек, оның біріншісінде b1 байты команда регистрына (IR) жіберіліп, келесілерінде b2 және b3 байттары уақытша регистрлерге (W және Z) жіберіледі. Бүкіл команда қабылданғаннан кейін МП аккумулятордағы дерек байтын, адресі МП-ға түскен, жады ұяшығына жіберу жұмысын жүзеге асырады. Сонымен, команда циклы OF-MR-MR-MW тәртібімен жүргізілетін төрт машина циклынан құрылады.

Әрбір машина циклы, тактілік импульстердің аттас ауытқымаларының аралығымен анықталатын, тактілерге (жағдайларға) бөлінеді.

Машина циклының тактілерінде орындалатын қалыпты әрекеттер:

T1 – жадының немесе СҚ-ның адресі AD7-0 және A15-8 желілеріне қойылып, AD7-0 биттерін бекітуге ALE сигналы тудырылады. IO/M, S1 және S0жолдарында цикл түрін анықтаушы информация қойылады. HALT туы тексеріледі.

Т2 – Ready және Hold кірістері тексеріледі. Егер осы машина циклы команда таңдалымының бір бөлігі болса, онда бағдарлама санауышы бірге ұлғайтылады. BI (освобождения шин) циклінен басқа машина циклдарында басқару стробтарының (, немесе ) біреуі бірлік жағдайынан жандандырылған нөлдік жағдайына ауысады.

TW (Wait) – жадының немесе СҚ-ның дерек алмасуға дайын еместігінде (READY жолында төменгі деңгейлі кернеу тұрғанда) туады. Адрес, дерек және басқару жолдарының жағдайы такт аяғындағы қалпында қалады. READY сигналы әрбір күту тактісінде тексеріледі.

Т3 – команда немесе дерек байты микропроцессорға немесе одан жіберіледі. Жандандырылған басқару стробының деңгейі бірлік деңгейіне өзгертіледі.

Т4 – команда регистріндегі код айқындалады.

Т5,6 – кейбір командалардың бітірілуіне қажет кезінде пайдаланылады.

Жүйе желілері пайдаланылмайды.

Машина циклында әрқашан Т1....Т3 тактілері болады, кейде такт саны одан көбірек болуы мүмкін, бірақ оқу мен жазуға үш такт ғана қажет.

2.2.4. Микропроцессордың үзіліс жүйесі

Микропроцессорлық жүйенің жұмысы кезінде оның ішінде немесе сыртында кезексіз әрекет қажетті уақиғалар тууы мүмкін. Бұндай әрекет негізгі бағдарламаны үзіп, үзіліс сұранысының жұмысын орындауға ауысу арқылы жүзеге асырылады. Жүйе ішіндегі сұраныстар оның жұмыс ахауынан разряд торының асып кетуінде нөлге бөлу кезінде және сыртқы құрылғылардың қызмет талабынан туады. Сыртқы сұраныстардың басқарылым объектілерінің қауіптілік жағдайында қорек көздерінің ахаулығында және т.б. жағдайларда түсуі мүмкін.

Баяу істейтін сыртқы құрылғылардың сұраныстары бойынша үзілістер, микропроцессор уақытын олардың информация алмасуға дайын кезінде ғана алуына мүмкіндік беріп, бұндай ұйымдастырылым нәтижесінде жалпы жүйенің жұмыс тиімділігі көтеріледі. Сыртқы құрылғыға микропроцессор қажет болғанда, ол үзіліс сұранысының триггерін бірлік жағдайға қояды да, бұл үзіліс сигналын микропроцессордың қабылдап, сәйкесті өңдегенінше ол осы жағдайында қалады. Қабылданған үзіліс сұранысына жауап ретінде микропроцессорлық жүйеде кезекті команданың орындалуы бітіріледі, микропроцессор жағдайы еске сақталады, үзіліс қызметінің қосалқы бағдарламасы орындалады, сосын жүйенің басқарылуы негізгі бағдарламаның сәйкесті командасына қайтарылады.

Intel 8085 микропроцессорының бес үзіліс кірісі мен оларды басқарушы INTA шығысы болады. Үзіліс, оған рұқсаттың бар кезінде, CALL командасының әрекетімен басталады: бағдарлама сануышының (PC) жағдайы стекке жіберіледі, ал оның өзіне орындалатын қосалқы бағдарламаның адресі енгізіледі де, үзіліс сұранысына қажетті жұмыс орындалады.

Микропроцессордың үзілістерге байланысты кірістері: TRAP; RST 5,5; RST 6,5; RST 7,5; INTR. Үзіліс жүйесінің ұйымдастырылымында сұраныстарды жасыру мәселелері шешіліп, олардың мәртебелік деңгейлері анықталады.

Жасыру дегеніміз – сәйкесті кірістің әрекетіне тиым салу. Үзіліс сұраныстарының кірістерінің жасырылымды немесе жасырылмайтын (яғни, әрқашан қабылдайтын жағдайында) болуы мүмкін.

TRAP кірісі – жасырылмайтын кіріс және оның мәртебесі ең жоғарғы деңгейде болады. Оған бағдарлама командалары арқылы тиым салбайды. Бұл кіріске микропроцессорлық жүйедегі, кезексіз әрекет қажет қылатын, маңызды уақиғалардың (мысалы, қорек көзінің ахауының) хабарлау сигналдары беріледі.

TRAP үзілісіне сайланысты қызметтің қосалқы бағдарламасының бастапқы адресі жадының бекітілген, адресі 24Н ұяшықта орналастырылған.

RSTn (n = 5,5; 6,5; 7,5) кірістерінің белгілемесі Restart сөзінен алынған. Бұл кірістердің үзілістері – жасырылмалы, яғни оларға EI (Enable Interrupt) және DI (Disable Interrupt) командалары арқылы рұқсат беруге немесе тиым салуға болады (олардың бәріне қатарынан). Микропроцессордың бастапқы тазартылымы бұл сұраныстардың барлығына да тиым салады, оларға бұдан әрі рұқсат беру үшін EI командасын беру керек. RSTn сұраныстарына жеке тиым салу мүмкіндігі де бар, ол арнайы SIM (Set Interrupt Mask) командасымен аккумулятордың А0...А2 биттерінің алдын ала енгізілген мәндеріне сәйкесті қойылады. RSTn кірістерінің мәртебелері RST 7,5; RST 6,5; RST 5,5 тәртібінде бекітілген. RSTn үзілістерінің қызметінің қосалқы бағдарламаларының бастапқы адрестері n мәнімен анықталады, сәйкесті бағдарламаның жұмысы бағдарлама санауышына 8n мәнін (002СН, 0034Н немесе ООЗСН) енгізуден басталады. Өзгеше айтқанда, бұл кірістердің үзіліс векторлары өздігінен анықталады, яғни оларды сыртқы құрылғыдан жіберудің қажеті болмайды.

RST 7,5 кірісі – динамикалық кіріс, ол сигналдың тура ауытқуына әрекет етеді, яғни сұраныс сигналы динамикалы кірісті триггерге енгізіледі де, оның алып тасталғанында, бұл үзіліс сұранысының қызметі орындалғанша немесе SIM немесе RESET командаларына дейін, онда сақталады. RST 6,5 және RST 5,5 кірістері – статикалық кірістер, олар сигнал деңгейіне әрекет етеді, демек, сұраныс сигналы жойылысымен, алып тасталынады.

INTR (Interrupt) кірісіне түсетін сұраныстың үзіліс векторы МП-ға сырттан жіберілу керек. Бұл кіріске көптеген жағдайда үзілістер контроллері қосылады, ол бірнеше сыртқы құрылғылардың сұраныстарын қабылдап, олардың мәртебелік жасырым мәселелерін шешіп, МП-ға жіберілетін жалғыз INTR сигналы мен сұранысқа сәйкесті үзіліс векторын қалыптастырады. Бұл жағдайда да RSTn командасы орындалады, бірақ n мәні үзіліс көзіне тәуелді болады. Үзілістерге рұқсат бар кезінде INTR сұранысының түсуіне жауап ретінде, микропроцессор сигналымен үзіліс берілгендігін хабарлайды. Бұл сигнал буферлік күшейткіштердің шығыстық рұқсат кірістеріне түседі.

Үзілістің өңделуі кезінде, EI командасы орындалғанша, TRAP үзілісінен басқа үзілістерге тиым салынады. Жасырылмайтын TRAP үзілісі өзге үзілістерді жібергізбейді, бірақ бұрынғы түскен сұраныстың рұқсаттық жағдайын сақтайды.

2.2.5. Микропроцессордың тізбекті енгізу/шығару жүйесі

Микропроцессордың тізбекті деректерді жіберуге арналған екі кірісі бар: SOD және SID (Serial Output Data және Serial Input Data).

SOD шықпасы SIM командасымен басқарылады, ал SID шықпасындағы сигнал RIM командасымен оқылады. Бұл командалар бұрын RSTn үзілістерінің жасырылымын қою және тазарту командалары ретінде таныстырылғанды, олар тізбекті енгізу/шығаруды басқаруға да пайдаланылады.

SIM командасының орындалуынан бұрын аккумуляторда, биттері 2.3-кестедегі мағынада түсінілетін, сөз қалыптастырылады:

2.3 К е с т е

               
SOD SOE x R7,5 MSE M7,5 M6,5 M5,5

 

Мұндағы SOD – деректердің тізбекті шығысы, SOE (Serial Input Enable) –бірлік мәнінде тізбекті SOD деректерін микропроцессордың сәйкесті шығысына жіберетін сигнал, 5-бит пайдаланылмайды, R 7,5 сәйкесті RST 7,5кірісін тазартады (осы кірістегі сигналдың динамикалы басқарылымды триггерге қабылданатындығын еске түсіреміз), MSE (Mask Set Enable) – 2...0биттерінің әрекетін жандандырушы сигнал, М 7,5...М 5,5 биттерінің бірлік мәні оларға сәйкесті RST 7,5...RST 5,5 сұраныстарын жасырады, яғни оларға тиым салады.

Мысалы, SOD = 1, RST 6,5 кірісіне рұқсат берілуі, RST 7,5 триггерінің тазартылуы және RST 7,5 мен RST 5,5 кірістерінің жасырылуы екі командамен жүзеге асырылады:

 

MVI А, b2; аккумулятор биттерін қою

SIM; жасырым биттерін және SOD битін өзгерту

MVI А, b2 командасы аккумуляторға b2 байтын жібереді, яғни аккумуляторға тіке сілтеу арқылы дерек жіберу операциясын (A) ← (b2) орындайды. Бұл жағдайдағы b2 байтының түрі: 11x11101.

Тізбекті деректерді SID шықпасы арқылы енгізу үшін RIM командасы пайдаланылады. RIM командасының орындалғанынан кейін аккумуляторда биттерінің мағынасы 2.4-кестеде келтірілген сөз қалыптасады:

2.4 К е с т е

               
SID I7,5 I6,5 I5,5 IE M7,5 M6,5 M5,5

 

Бұндағы SID – тізбекті енгізілетін деректер; I 7,5; I 6,5; I 5,5 – RST7.5; RST6.5 және RST5.5 шықпаларындағы логикалық деңгейлер, IE – үзіліске рұқсат сигналы, М 7,5...М 5,5 – маскалардың логикалық деңгейлері.

I 7,5... I 5,5 биттері сәйкесті логикалық деңгейлерді RIM командасының кезінде қалыптастырады. IE биті EI және DI командаларының қайсысы соңғы орындалғандығын көрсетеді, оған бұл кезде үзіліс режимінің болуы да (оның IE триггерін тазартып, басқа үзілістерге тиым салатындығына байланысты) әсер етеді. М 7.5...М 5,5 биттері үзіліс маскаларының кезекті жағдайларын суреттейді.

2.2.6. Микропроцессордың командалар жүйесі

МП командалары 2.5-кестеде келтірілген. Кестенің бірінші бағанасында командалардың мнемокодтары (жазылым түрі) берілген. Онда регистрлер – r, регистр жұптары – rp, жанама сілтеумен байланысатын жады ұяшығы – М, команданың үшінші және екінші байттары – b3b2, сыртқы құрылғының адресі – port арқылы берілген.

2.5 К е с т е

Мнемокод Код Тулар Байт саны Такт саны Цикл саны Түсініктеме
             
Жіберім командалары
MOV r1, r2 01DDDSSS       r1 ← (r2)
MOV M, r 01110SSS       [(HL)] ← (r)
MOV r, M 01DDD110       (r) ← [(HL)]
MVI r, b2 00 DDD110       r1 ← b2
MVI M, b2         [(HL)] ← b2
LXI rpb3b2 00PP0001       rp ← b3b2
LDA b3b2 3A       A ← b3b2

2.5 кестенің жалғасы

             
STA b3b2         b3b2 ← (A)
LHLD b3b2 2A       HL ← b3b2
SHLD b3b2         b3b2 ← (HL)
LDAX rp 00PP0010       A ← [(rp)]
STAX rp 00PP1010       [(rp)] ← (A)
XCHG EB       (HL) ↔ (rp)
Арифметикалық және логикалық операциялардың командалары
ADD r 10000SSS +       A ← (A) + (r)
ADD M   +       A ← (A) + [(HL)]
ADI b2 C6 +       A ← (A) + b2
ADC r 10001SSS +       A ← (A) + (r) + (TC)
ADC M 8E +       A ← (A) + [(HL)] + (TC)
ACI b2 CE +       A ← (A) + b2 + (TC)
SUB r 10010SSS +       A ← (A) – (r)
SUB M   +       A ← (A) – [(HL)]
SUI b2 D6 +       A ← (A) – b2
SBB r 10011SSS +       A ← (A) – (r) – (TC)
SBB M 9E +       A ← (A) – [(HL)] – (TC)
SBI b2 DE +       A ← (A) – b2 – (TC)
INR r 00DDD100 (+)       r ← (r) + 1
INR M   (+)       [(HL)] ← [(HL)] + 1
DCR r 00DDD101 (+)       r ← (r) – 1
DCR M   (+)       [(HL)] ← [(HL)] – 1
INX rp 00PP0011       rp ← (rp) + 1
DCX rp 00PP1011       rp ← (rp) – 1
DAD rp 00PP1001       [(HL)] ← [(HL)] + (rp)
DAA   +       A ← (A)2-10
ANA r 10100SSS +       A ← (A) ۸ (r)
ANA M A6 +       A ← (A) ۸ [(HL)]
ANI b2 E6 +       A ← (A) ۸ b2
XRA r 10101SSS +       A ← (A) (r)
XRA M AE +       A ← (A) [(HL)]
XRI b2 EE +       A ← (A) b2
ORA r 10110SSS +       A ← (A) ۷ (r)
ORA M B6 +       A ← (A) ۷ [(HL)]
ORI b2 F6 +       A ← (A) ۷ b2
CMP r 10111SSS +       (A) – (r)
CMP M BE +       (A) – [(HL)]
CPI b2 FE +       (A) – b2
CMA 2F       A ←

2.5 кестенің жалғасы

             
STC   C       TC ← 1
CMC 3F C       TC
RLC   C       A7-1 ← (A6-0), A0 ← (TC), TC←A7
RRC 0F C       A6-0 ← (A7-1), A7 ← (TC), TC←A0
RAL   C       A7-1 ← (A6-0), A0 ← (A7), TC←A7
RAR 1F C       A6-0 ← (A7-1), A7 ← (A0), TC←A0
Басқару командалары
JMP b3b2 C3       PC ← b3b2
Jcond b3b2 11CCCC01       Cond = 1: PC ← b3b2
CALL b3b2 CD       SP ← (PC), PC ← b3b2
Ccond b3b2 11CCC100   2/5 9/18 Cond = 1: SP ← (PC), PC ← b3b2
RET C9       PC ← [(SP)]
Rcond 11CCC100   17/11 5/3 Cond = 1: PC ← [(SP)]
RST n 111nnn111       PC ← 8n
SPHL E9       SP ← (HL)
Арнайы командалар
PUSH rp 11PP0101       SP ← (SP) – 2; [(SP)];[(SP) + 1]← (rp)
PUSH PSW F5       SP ← (SP) – 2; [(SP)],[(SP) + 1]←(A),(F)
POP rp 11PP0001       rp ← [(SP)],[(SP) + 1], SP ← (SP) + 2
POP PSW F1       F,A ← [(SP)],[(SP) + 1]; SP ← (SP) + 2
XTHL E3       (HL) ↔ [(SP)],[(SP) + 1]
PCHL F9       PC ← (HL)
IN port DB       A ← (port)
OUT port D3       port ← (A)
EI FB       Үзіліске рұқсат
ВI F3       Үзіліске тиым салу
HLT         Тоқтатылым
NOP         Операция жоқ
RIM         Үзіліс маскасын оқу
SIM         Үзіліс маскасын жазу

 

Екінші бағанадағы команданың бірінші байтының (b1) кодтары операндтардың адресінің көрсетілуі қажет жағдайда, сегізразрядты екілік сан түрінде, өзге жағдайларда оналтылық сан түрінде берілген. Регистрлердің жалпылама адрестерінің разрядтары дерек көзі үшін S (Data Source) символдарымен, деректің жеткізілетін жері D (Data Destination) символдарымен, регистр жұптары P (Pair) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының 2.2-кестеде келтірілген адресін қою арқылы нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 2.6-кестеде келтірілген.

2.6 К е с т е

ССС Мнемокод (cond) Шарттар
  NZ Нолге тең болмау
  Z Нолге тең болу
  NC Тасымалдың тумауы
  C Тасымалдың тууы
  PO Тақтық
  PE Жұптық
  P Плюс
  M Минус

 

Операцияның орындалу белгілері ту регистрінде (2.7-кесте) қалыптасады.

2.7 К е с т е

S Z   AC   P   C

 

RST командасының кодындағы nnn әріптерімен белгіленген үш разрядтың мәнін үзіліс жүйесі қояды немесе оны бағдарлаушы көрсетеді.

Салыстыру операцияларында операндтарға алу операциясы жүргізіліп, оның нәтижесіне байланысты Z және S белгілері қойылады (бірақ, нәтиже ешқайда сақталмайды).

Үшінші бағанадағы “–” символы команданың орындалуында ешқандай ту көтерілмейтіндігін, “+” символы барлық белгінің қойылатындығын, “(+)” символы тасымал белгісінен басқа белгілердің қойылатындығын, “С” символы тасымал белгісінің ғана қойылатындығын білдіреді.

2.2.7. Микропроцессорда қолданылатын сілтеу тәсілдері

Бағдарламадағы нақтылы командаға сәйкесті операцияның орындалуы үшін, онда команданың түрін анықтаушы кодымен қатар, операцияға қатысты операндтардың қайдан алынатындығы және орындалған операцияның нәтижесінің қайда орналастырылатындығы көрсетілуі керек.

Intel 8085 микропроцессорында сілтеу адрестерін қалыптастыру төрт түрлі тәсілмен жүзеге асырылады, олар – тура сілтеу, регистрлік сілтеу, жанама сілтеу және тіке сілтеу тәсілдері.

Тура сілтеу тәсілінде адрес коды орындалушы команданың құрамында болады. Бұл тәсіл – ыңғайлы тәсіл, бірақ үлкен көлемді жадының адрес разрядтарының саны да үлкен болатындықтан, ол команданы ұзартады. Мысалы, 216 ұяшықтан тұратын жады сілтеу оналтыразрядты адреспен сілтенеді. Сондықтан, бұндай командалар үшбайтты болады. Сыртқы құрылғыларға сілтеу сегізразрядты адрес арқылы жүзеге асырылады да, бұндай командалар екібайтты болады.

Регистрлік сілтеу тәсілінде операнд микропроцессордың ішкі регистрлерінің біреуінде болады. Intel 8085 микропроцессорының ішкі регистрлерінің саны сегізден аспайтындықтан оларға сілтеуге үшразрядты адрес жеткілікті болады, сондықтан бұндай командалар бірбайтты болады.

Жанама сілтеу тәсілінде командада орындалатын операцияға қатысты операндтың адресі тұрған регистр көрсетіледі. Бұндай командалар да, тура сілтемді командалар сияқты, ықшамды келеді, бірақ олардың орындалуы үшін бұл регистрге (жанама сілтеу регистріне) қажетті адрес алдын ала енгізілуі керек. Жанама сілтеу регистрі ретінде Intel 8085 микропроцессорында H және L регистрлері (HL жұбы) пайдаланылады. Жанама сілтеу тәсілі тізбе түрінде берілген деректерді өңдеуге аса ыңғайлы келеді, бұл кезде адрес бір рет қойылады да, кезекті адрес оның алдыңғы мәнін бірге өзгерту арқылы алынады.

Тіке сілтеу тәсілінде операцияға қатысты операнд тікелей команда құрамында беріледі. Бұндай командалар екібайтты (сыртқы құрылғымен байланысқа) немесе үшбайтты (жадымен байланысқа) болады.

Суреттелген сілтеу тәсілдерінен күрделірек келетін сілтеу тәсілдері де (индексті сілтеу, қатынасты сілтеу және т.б.) бар, бірақ олар Intel 8085 микропроцессоры сияқты қарапайым микропроцессорларда пайдаланылмайды.

Әртүрлі сілтеу тәсілдерін пайдалану бағдарламалардың көлемі мен олардың орындалу уақытын қысқартуға мүмкіндік береді.

Нақтылы тәсілмен сілтеуші адрес арқылы, микропроцессорлық жүйенің адрестік желісі арқылы микропроцессордың байланысатын жады ұяшығын немесе сыртқы құрылғыны таңдайтын іс жүзіндегі адрес коды қалыптастырылады.

Қарапайым микропроцессорлық жүйелерде адрес коды екі бөліктен тұратындай түрде қарастырылады. Оның бір бөлігі жүйенің адрестік кеңістігінің сілтенуші объект орналасқан парағын, ал екінші бөлігі объектінің осы парақтағы нақтылы адресін көрсетеді. Жүйенің адрестік кеңістігінің парақтарға бөліну тәртібі жады модулінің құрушы микросхемалардың ұйымдастырылым принциптеріне байланысты.

Жады мен сыртқы құрылғылардың адрестік кеңістігінің пайдаланылу тәртібіне байланысты, “ортақ желілі” және “жеке желілі” деп аталатын, екі түрлі тағұлұм ажыратылады.

Бірінші “ортақ желілі” тағұлұм шегінде жады мен сыртқы құрылғыларды сілтеуге ортақ адрестік кеңістіктің жеке бөліктері бөлінеді. Бұл жағдайда жадыға немесе сыртқыға байланыс бірдей командалармен және бір желі арқылы жүзеге асырылады, ал бұл бағдарламаның параметрлерінің жақсатылуына және олардың қарапайым болуына жол ашады. Бірақ, адрестік кеңістіктің бір бөлігінің сыртқы құрылғыларға пайдаланылуына байланысты, жадыға бөлінген адрес кеңістігінің мөлшері кемиді.

“Жеке желілі” тағұлұмда жады мен сыртқы құрылғылардың әрбіреуінің меншікті жеке адрестік кеңістіктері болады. Бұл кезде қай объектімен байланыс болып жатқандығын анықтаушы басқару сигналдары керек болады. Мысалы, IO/М сигналымен жады немесе сыртқы құрылғының сілтенуі көрсетіледі. Бұл жағдайда жады бүкіл адрестік кеңістікті пайдалана алады. Сыртқы құрылғымен дерек алмастыруға IN port және OUT port командалары ғана пайдаланылады да, оған микропроцессордың көптеген ыңғайлы командаларын пайдалануға мүмкіндік болмайды.

Микропроцессордың байланысатын адрестік кеңістігінің мөлшері адрес желісінің разрядының санына тәуелді. Мысалы, 16-разрядты адрес желісі арқылы 216 = 64К, ал 20-разрядты желі арқылы 220 = 1М көлеміндегі объектілермен байланысуға болады.

Адрестік кеңістіктің микропроцессор байланысатын қызмет жадысының, тұрақты жадының және сыртқы құрылғылардың блоктарына таратылып бөлінуін жүйені жобалаушы, нақтылы пайдаланылған микропроцессордың ерекшеліктерін ескере отырып, тағайындайды.

2.3 Микропроцессорлық жүйенің жұмысын бағдарлау

Микропроцессорлық жүйенің жұмысы, шешілетін мәселеге байланысты құрылған командалар тізбесі түріндегі, бағдарламаның басқаруымен жүзеге асырылады. Бұндай бағдарламалар, әдетте, командалардың мнемокодтары арқылы суреттелетін, ассемблер тілінде жазылады. Мнемокодтарды машина тіліне (екілік кодтарға) аударушы (translation) арнайы бағдарлама да Ассемблер деп аталады. Машина тіліндегі бағдарлама микропроцессорлық жүйенің жадылық модулінде сақталады да, оның құрамындағы команда кодтары нақтылы тәртіппен таңдалып (оқылып), ол команда кодтарында берілген мәліметтер (операция коды, сілтеу тәсілі, деректер) негізінде орындалады.

Ассемблер тіліндегі бағдарлама нақтылы тәртіппен келесі түрде жазылады (2.2-сурет).

 

{Белгі:} Мнемокод {Операнд(тар)} ; {Түсініктеме}

2.2 Сурет

Көрнекі жақшаларда болуы да, болмауы да мүмкін элементтер келтірілген. Белгі, мнемокод және операндтар бос орын арқылы ажыратылады.

Белгі – команданың символды адресі. Белгілер ауыстыру арқылы баратын командаларда ғана қойылады. Белгі артында қоснүкте қойылады. Белгі аталымының бірінші символы әріп немесе “?”, “.”, “@”, “_”, “$” символдарының біреуі болу керек. Ауыстыру немесе қосалқы бағдарламаларды шақыру командаларында белгі аталымы операнд ретінде пайдаланылады.

Мнемокод – команданың ассемблер тіліндегі жазылымы. Мнемокод ретінде команда қызметінің ағылшын тіліндегі мағынасының қысқартылымы пайдаланылады: ADD (ADDition), SUB (SUBtraction), XCHG (eXCHanGe).

Операндтар үтір арқылы бөлінеді. Екі операнд берілген жағдайда оның біріншісі информация қабылдаушысы, ал екіншісі информация көзі болады.

Түсініктеме командалардың қызметін суреттеуге ғана пайдаланылады, ол машина тіліне аударылмайды және әрқашан үтір-нүктеден басталады.

Бұдан әрі бірнеше қарапайым есептерді шешуге арналған бағдарламалар құрамыз. Бұл бағдарламалардың кемістігін анықтап, олардың кейбір командаларын басқа командалармен ауыстыру арқылы жетілдіріп, микропроцессордың командалар жүйесіндегі әртүрлі командалардың қызметі мен қолданылым жағдайына байланысты ыңғайлылықтарын түсіндіреміз.

Құрылған бағдарламалардың жұмысын оқу жүйесінде пайдаланылатын микропроцессорлық жүйелердің зертханалық құрылымдарында тексеруге болады. Көптеген жағдайда бұндай құрылымдардың құрамына ассемблер тілінде құрылған бағдарламаларды машина тіліне аударушы Ассемблер бағдарламасы енгізілмеген. Бұндай жағдайда аудару жұмысы қолдан жүргізіледі. Ол бағдарламадағы командалардың 2.5-кесте арқылы алынатын кодтары, операндтар және олардың жазылатын (сақталатын) жады ұяшықтарының адрестері оналтылық жазылым түрінде суреттеледі. Оналтылық сандар сәйкесті символымен қойылады. Бұл бағдарламаларды зертханалық құрылымға енгізіп, олардың жұмысын тексеруге болады.

Соңғы айтылғандарды ескере отырып, 2.2-суретте келтірілген бағдарлама жазылымының алдына үш бағана қосылды: оның біріншісінде бағдарлама жолдарының жолдарының нөмірлері (олар бағдарламаны түсіндіруге ғана пайдаланылады), екіншісінде сәйкесті дерек енгізілетін жады ұяшығының адресі, үшіншісінде оларға енгізілетін команда кодтары мен операндтар көрсетіледі. Құрылған бағдарламалар жадының 2100 адресті ұяшығынан бастап жазылып, келесі бағдарламалар одан әрі жалғастырыла береді. Жеке бағдарлама әдетте RST 7 командасымен аяқталады. Кейбір бағдарламалардың келесі құрылатын бағдарламалардың құрамына қосалқы бағдарлама ретінде енгізілу мүмкіндігін қамтамасыз ету мақсатымен, олар RET командасымен аяқталды.

Команда кодтарын жоғарыда айтылғандай, 2.5-кесте арқылы алуға болады, бірақ бұл оңай жұмыс емес. Сондықтан, команда кодтарының алыну жолын жеңілдету мақсатында бұл кестенің ықшамдалған суреттелімін (2.8-кесте) беруді дұрыс деп санадық. Бұл кестеден қажетті команданың коды ол орналасқан горизонталь және вертикаль жолдарды

<== предыдущая лекция | следующая лекция ==>
Санауыштар | Дебиеттер тізімі
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 2336; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.147 сек.