2 Микропроцессорлар және микропроцессорлық жүйелер
2.1 Микропроцессорлық жүйелердің құрылым принциптері
Микропроцессорлық жүйенің негізін қалаушы және оның жұмысын жүзеге асырушы басты бөлігі – микропроцессор (МП). Микропроцессор жүйеде информацияның өңделуін және оның жан-жақты жіберілімін бағдарлама арқылы басқарады. Қойылған мәселенің орындалу тәртібі сәйкесті бағдарламаға, яғни алынған микропроцессорға тән (яғни, оның командалар жүйесіне кіретін) командалар тізбесінің орындалуы арқылы жүзеге асырылады.
Микропроцессорлық жүйенің құрамына микропроцессормен қатар жады құрылымдары және информацияны енгізу/шығару құрылғылары (сыртқы құрылғылар) кіреді. Микропроцессорлық жүйенің құрамында бірге қолдануға жарамды (яғни, архитектурасы мен электрлік параметрлері бойынша сәйкестірілген) микросұлбалар жинағы микропроцессорлық жинам деп аталады.
Микропроцессорлық жүйелердің (МПЖ) құрылым негізіне үш принцип алынған:
модулдік;
магистралдік;
микробағдарламалы басқару.
Модулдік принцип жүйенің, қызметі жағынан толықтай бітірілген, жеке блоктар негізінде құрылатындығын сипаттайды. Әрбір модулдің, оны іске қосатын, рұқсат кірісі болады; ондағы сигнал деңгейі модулдің үшінші (жоғары кедергілі) жағдайын, яғни оның жүйе желісіне қосылу/қосылмауын басқарады.
Магистралдік принцип МПЖ-нің қызмет блоктарының арасындағы байланыс сипатын анықтайды; жүйенің барлық блогы өзара жүйелік магистраль (жүйе желісі) арқылы жалғанады және сол арқылы информация алмасады.
Микробағдарламалы басқару принципі жүйе бағдарламасын құруға пайдаланылатын командалардың әрбіреуінің қарапайым операциялар – микрокомандалар (информация жіберілімі, арифметикалық операциялар, ығыстырымдар және т.б.) арқылы жүзеге асырылу мүмкіндіктерін сипаттайды.
Жүйелік магистралға негізгі үш информациалық желі кіреді: олар – адрес желісі АВ (Address Bus), дерек желісі DB (Data Bus) және басқарым желісі СВ (Control Bus).
Дерек желісі – жүйе модулдерінің арасында дерек алмастыратын, негізгі желі. Дерек желісі, оның деректерді екі бағытта да жіберуін қамтамасыз етуі керек болғандықтан, ол әрқашан екібағытты болады.
Адрес желісі – жадыға (немесе сыртқы құрылғыларға) байланысымды қамтамасыз етуші желі.
Магистралдың байланыс жолдарының толық санын кеміту үшін көбіне адрес желісі мен дерек желісін кезектестіру тәсілі қолданылады, яғни байланыс жолдары арқылы әртүрлі уақыт мезетінде адрес пен дерек кезектеп жіберіледі (цикл басында – адрес, цикл аяғында – деректер).
Басқару желісінің жолдарындағы сигналдар кезекті цикл түрін анықтайды және оның әртүрлі бөліктеріне немесе кезеңдеріне сәйкесті уақыт мезеттерін бекітеді. Онымен қатар, басқару сигналдары процессор (немесе магистралдың өзге қожасының, бастаушының, master) жұмысын жадының немесе енгізу/шығару құрылғыларының (орындаушы құрылғының, slave) жұмысымен келістіреді.
Негізгі басқару сигналдары – алмастыру стробтары, яғни жазу (шығару) стробы мен оқу (енгізу) стробы болып табылады. Бұл сигналдарды процессор қалыптастырады, олар деректердің желі арқылы сәйкесті бағытта жіберілу мезеттерін анықтайды.
Микропроцессорлық жүйенің құрамындағы құрылғылардың барлығы да жүйе магистралына қосылған және олардың өзара информация алмасуы да осы магистраль арқылы жүзеге асырылады.
Енгізу/шығару құрылғыларын немесе сыртқы құрылғыларды (ЕШҚ немесе СҚ) жүйе магистралына қосу үшін олардың сигналдары, сәйкесті енгізу/шығару интерфейстері арқылы жүзеге асырылатын, нақтылы стандарттарға сәйкес болуы керек.
Процессордың деректерді жазу және оқу операцияларын орындауы бағдарламалы-басқарылымды алмасу, үзіліс және жадыға тура шығу режимдерінде жүзеге асырылуы мүмкін, олардың ішіндегі ең бастысы – біріншісі.
2.2 Intel 8085 микропроцессоры
2.2.1 Микропроцессордың құрылымы
Микропроцессор (МП) – қазіргі заманның күрделі цифрлық құрылғыларының (мысалы, компьютердің) құрамына кіретін, информация өңдеуші басты блок.
Микропроцессорлардың негізгі құрылым принциптері мен жұмыс тәртібін түсіну үшін олардың нақтылы бір түрін қарастыру ыңғайлы. Осындай үлгі ретінде қарапайым Intel 8085 микропроцессоры алынды. Өзінің қартаң жасына қарамай, бұл микропроцессор осы күнге дейін өз маңыздылығын жоймай, әлі де өндірісте шығарылады. Әрине, оның қолданылым аймағы – компьютерлер емес, оларда қазіргі заманда одан қуаттырақ және өнімділеу микропроцессорлар қолданылады. Intel 8085 сияқты микропроцессорлар, негізінде, олардың мүмкіншілігі жететін басқару жүйелерінде пайдаланылады.
Intel 8085 микропроцессорының құрылымы 2.1-суретте көрсетілген. Микропроцессордың құрама блоктарының арасындағы информация алмастырылуы оның ішкі сегізразрядты дерек желісі арқылы жүзеге асырылады.
2.1 Сурет
Микропроцессордың құрама блоктарын қарастырайық.
AC (Accumulator) – екісатылы триггер арқылы құрылған және қатарынан екі сөз (операндтардың біреуін және операция нәтижесін) сақтай алатын регистр-аккумулятор.
TR (Temporary Register) – операндтардың біреуін уақытша сақтауға арналған регистр.
ALU (Arithmetic-Logic Unit) – кірістеріне берілген екі сөзге (операндтарға) жүргізілетін операциялардың орындалуын жүзеге асыратын арифметикалық-логикалық құрылғы. Операцияға қатысты операндтардың біреуі аккумуляторда (AC), ал екіншісі уақытша регистрде (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 байт болады. Жадыдан кезекті байт шығарылғаннан кейін IP мәні ұлғайтылады, команда бірбайтты болса, онда келесі команданың адресі, ал өзгеше жағдайда кезекті команданың келесі байтының адресі шығады. Команданың екінші және үшінші байттары 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
|
0
|
1
|
1
|
0
|
1
|
1
|
MR
|
0
|
1
|
0
|
0
|
1
|
1
|
MW
|
0
|
0
|
1
|
1
|
0
|
1
|
IOR
|
1
|
1
|
0
|
0
|
1
|
1
|
IOW
|
1
|
0
|
1
|
1
|
0
|
1
|
INA
|
1
|
1
|
1
|
1
|
1
|
0
|
BI
|
ҮЖ
|
x
|
x
|
1
|
1
|
1
|
HALT
|
ҮЖ
|
0
|
0
|
ҮЖ
|
ҮЖ
|
1
|
Келтірілген кестеде ҮЖ арқылы үшінші жағдай белгіленген.
x1, x2 – МП-дың ішкі синхроимпульстер генераторының жұмысын қамтамасыз етуші кварцты резонатордың немесе одан басқа жиілік тиянақтаушы тізбектердің қосылатын шықпалары. МП-дың ішкі сұлбаларының жұмысын сәйкестіруші синхроимпульстер (CLK) шығару үшін генератор импульстері санау триггеріне жіберіледі де, ол қарсы фазалы екі импульстер тізбесін (Ф1 және Ф2) қалыптастырады. Олардың жиілігі (яғни, микропроцессордың жұмыс жиілігі) генератор жиілігінен 2 есе төмен болады. ALE сигналы Ф1 тізбесінен бірінші тактіде бөліп алынған біреуі ретінде қалытастырылады;
( ) – МП-ды бастапқы жағдайына қайтару кірісі. Бұл сигнал қорек көзі қосылған кезде өздігінен қалыптасады, оның кез келген уақытта оператордың командасы арқылы да түсуі мүмкін. Оның әрекетімен IP және 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
|
000
|
001
|
010
|
011
|
100
|
101
|
110
|
111
|
00
|
01
|
10
|
11
|
Команданың таңдалып, айқындалғанынан кейін, оны орындауға қосымша машина циклдерінің қажет болуы мүмкін. Командада небәрі бірден беске дейін машина циклі болуы мүмкін.
Машина циклі, төменде қарастырылатын қалыпты әрекеттер жүргізілетін, тактілерден тұрады. Әртүрлі машина цикліндегі такт саны – 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 (Bus Idle, желіні босату) циклінен басқа машина циклдерінде басқару стробтарының ( , немесе ) біреуі бірлік жағдайынан жандандырылған нөлдік жағдайына ауысады.
TW (Wait) – жадының немесе СҚ-ның дерек алмасуға дайын еместігінде (READY жолында төменгі деңгейлі кернеу тұрғанда) туады. Адрес, дерек және басқару жолдарының жағдайы такт аяғындағы қалпында қалады. READY сигналы әрбір күту тактісінде тексеріледі.
Т3 – команда немесе дерек байты микропроцессорға немесе одан жіберіледі. Жандандырылған басқару стробының деңгейі бірлік деңгейіне өзгертіледі.
Т4 – команда регистріндегі код айқындалады.
Т5,6 – кейбір командалардың бітірілуіне қажет кезінде пайдаланылады.
Жүйе желілері пайдаланылмайды.
Машина циклінде әрқашан Т1....Т3 тактілері болады, кейде такт саны одан көбірек болуы мүмкін, бірақ оқу мен жазуға үш такт ғана қажет.
2.2.4 Микропроцессордың үзіліс жүйесі
Микропроцессорлық жүйенің жұмысы кезінде оның ішінде немесе сыртында кезексіз әрекет қажет қылатын уақиғалар тууы мүмкін. Бұндай әрекет негізгі бағдарламаны үзіп (уақытша тоқтатып), үзіліс сұранысының жұмысын орындауға ауысу арқылы жүзеге асырылады. Жүйе ішіндегі сұраныстар оның жұмыс ахауынан, разряд торының асып кетуінде, нөлге бөлу кезінде және сыртқы құрылғылардың қызмет талабынан туады. Сыртқы сұраныстардың басқарылым объектілерінің қауіптілік жағдайында, қорек көздерінің ахаулығында және т.б. жағдайларда түсуі мүмкін.
Баяу істейтін сыртқы құрылғылардың сұраныстары бойынша үзілістер, микропроцессор уақытын олардың информация алмасуға дайын кезінде ғана алуына мүмкіндік беріп, бұндай ұйымдастырылым нәтижесінде жалпы жүйенің жұмыс тиімділігі көтеріледі. Сыртқы құрылғыға микропроцессор қажет болғанда, ол үзіліс сұранысының триггерін бірлік жағдайға қояды да, бұл үзіліс сигналын микропроцессордың қабылдап, сәйкесті өңдегенінше ол осы жағдайында қалады. Қабылданған үзіліс сұранысына жауап ретінде микропроцессорлық жүйеде кезекті команданың орындалуы бітіріледі, микропроцессор жағдайы еске сақталады, үзіліс қызметінің қосалқы бағдарламасы орындалады, сосын жүйенің басқарылуы негізгі бағдарламаның сәйкесті командасына қайтарылады.
Intel 8085 микропроцессорының бес үзіліс кірісі болады. Үзіліс, оған рұқсаттың бар кезінде, CALL командасының әрекетімен басталады: команда көрсеткішінің (IP) жағдайы стекке жіберіледі, ал оның өзіне орындалатын қосалқы бағдарламаның адресі енгізіледі де, үзіліс сұранысына қажетті жұмыс орындалады.
Микропроцессордың үзілістерге байланысты кірістері: 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 К е с т е
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
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 К е с т е
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
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 Микропроцессордың командалар жүйесі
Intel 8085 микропроцессорының командалар жүйесі 2.5-кестеде келтірілген. Кестенің бірінші бағанасында командалардың мнемокодтары (шартты жазылымы) берілген. Онда регистрлер – r, регистр жұптары – rp, жанама сілтеумен байланысатын жады ұяшығы – М, команданың үшінші және екінші байттары – b3b2, сыртқы құрылғының адресі – port арқылы берілген.
Екінші бағанадағы команданың бірінші байтының (b1) кодтары операндтардың адресінің көрсетілуі қажет жағдайда, сегізразрядты екілік сан түрінде, өзге жағдайларда оналтылық сан түрінде берілген. Регистрлердің жалпылама адрестерінің разрядтары дерек көзі үшін S (Data Source) символдарымен, деректің жеткізілетін жері D (Data Destination) символдарымен, регистр жұптары P (Pair) символдарымен бейнеленген. Бұл символдардың орнына командағы қатысты регистрлер мен регистр жұптарының 2.2-кестеде келтірілген адресін қою арқылы нақтылы команданың коды алынады. Шартты ауыстыру командаларының кодындағы шарттардың коды C (Condition) символдарымен белгіленген, олардың түрлері мен белгілемелері 2.6-кестеде келтірілген.
RST командасының кодындағы nnn әріптерімен белгіленген үш разрядтың мәнін үзіліс жүйесі қояды немесе оны бағдарлаушы көрсетеді.
Салыстыру операцияларында операндтарға алу операциясы жүргізіліп, оның нәтижесіне байланысты Z және S белгілері қойылады (бірақ, нәтиже ешқайда сақталмайды).
Үшінші бағанада сәйкесті команданың орындалуынан кейін қойылатын тулар жөніндегі мәліметтер келтірілген: “–” символы – ешқандай ту көтетілмейді, “+” символы – тулардың барлығы да көтеріледі, “+” – тасымал туынан басқа тулардың барлығы көтеріледі, “С” – тасымал туы ғана көтеріледі. Бұл тулар (S – терістік, Z – нөлдік, AC – ондық тасымал, P – жұптық, С – тасымал) ту регистрінде қалыптастырылады:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
S
|
Z
|
0
|
AC
|
0
|
P
|
1
|
C
|
Келесі үш бағанада команда байттарының саны мен оның орындалу уақытына сәйкесті такт саны мен цикл саны келтірілген.
Соңғы бағанада командаларға түсініктеме келтірілген.
2.5 К е с т е
Мнемокод
|
Код
|
Тулар
|
Байт саны
|
Такт саны
|
Цикл саны
|
Түсініктеме
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
|
Жіберім командалары
|
|
MOV r1, r2
|
01DDDSSS
|
–
|
1
|
4
|
1
|
r1 ← (r2)
|
|
MOV M, r
|
01110SSS
|
–
|
1
|
7
|
2
|
[(HL)] ← (r)
|
|
MOV r, M
|
01DDD110
|
–
|
1
|
7
|
2
|
(r) ← [(HL)]
|
|
MVI r, b2
|
00 DDD110
|
–
|
2
|
7
|
2
|
r1 ← b2
|
|
MVI M, b2
|
36
|
–
|
2
|
10
|
3
|
[(HL)] ← b2
|
|
LXI rpb3b2
|
00PP0001
|
–
|
3
|
10
|
3
|
rp ← b3b2
|
|
LDA b3b2
|
3A
|
–
|
3
|
13
|
4
|
A ← b3b2
|
|
STA b3b2
|
32
|
–
|
3
|
13
|
4
|
b3b2 ← (A)
|
LHLD b3b2
|
2A
|
–
|
3
|
16
|
5
|
HL ← b3b2
|
SHLD b3b2
|
22
|
–
|
3
|
16
|
5
|
b3b2 ← (HL)
|
LDAX rp
|
00PP0010
|
–
|
1
|
7
|
2
|
A ← [(rp)]
|
STAX rp
|
00PP1010
|
–
|
1
|
7
|
2
|
[(rp)] ← (A)
|
XCHG
|
EB
|
–
|
1
|
4
|
1
|
(HL) ↔ (rp)
|
Арифметикалық және логикалық операциялардың командалары
|
ADD r
|
10000SSS
|
+
|
1
|
4
|
1
|
A ← (A) + (r)
|
ADD M
|
86
|
+
|
1
|
7
|
2
|
A ← (A) + [(HL)]
|
ADI b2
|
C6
|
+
|
2
|
7
|
2
|
A ← (A) + b2
|
ADC r
|
10001SSS
|
+
|
1
|
4
|
1
|
A ← (A) + (r) + (TC)
|
ADC M
|
8E
|
+
|
1
|
7
|
2
|
A ← (A) + [(HL)] + (TC)
|
ACI b2
|
CE
|
+
|
2
|
7
|
2
|
A ← (A) + b2 + (TC)
|
SUB r
|
10010SSS
|
+
|
1
|
4
|
1
|
A ← (A) – (r)
|
SUB M
|
96
|
+
|
1
|
7
|
2
|
A ← (A) – [(HL)]
|
SUI b2
|
D6
|
+
|
1
|
7
|
2
|
A ← (A) – b2
|
SBB r
|
10011SSS
|
+
|
1
|
4
|
1
|
A ← (A) – (r) – (TC)
|
SBB M
|
9E
|
+
|
1
|
7
|
2
|
A ← (A) – [(HL)] – (TC)
|
2.5 кестенің жалғасы
1
|
2
|
3
|
4
|
5
|
6
|
7
|
SBI b2
|
DE
|
+
|
2
|
7
|
2
|
A ← (A) – b2 – (TC)
|
INR r
|
00DDD100
|
(+)
|
1
|
4
|
1
|
r ← (r) + 1
|
INR M
|
34
|
(+)
|
1
|
10
|
3
|
[(HL)] ← [(HL)] + 1
|
DCR r
|
00DDD101
|
(+)
|
1
|
4
|
1
|
r ← (r) – 1
|
DCR M
|
35
|
(+)
|
1
|
10
|
3
|
[(HL)] ← [(HL)] – 1
|
INX rp
|
00PP0011
|
–
|
1
|
6
|
1
|
rp ← (rp) + 1
|
DCX rp
|
00PP1011
|
–
|
1
|
6
|
1
|
rp ← (rp) – 1
|
DAD rp
|
00PP1001
|
–
|
1
|
10
|
3
|
[(HL)] ← [(HL)] + (rp)
|
DAA
|
27
|
+
|
1
|
4
|
1
|
A ← (A)2-10
|
ANA r
|
10100SSS
|
+
|
1
|
4
|
1
|
A ← (A) ۸ (r)
|
ANA M
|
A6
|
+
|
1
|
4
|
1
|
A ← (A) ۸ [(HL)]
|
ANI b2
|
E6
|
+
|
2
|
7
|
2
|
A ← (A) ۸ b2
|
XRA r
|
10101SSS
|
+
|
1
|
4
|
1
|
A ← (A) (r)
|
XRA M
|
AE
|
+
|
1
|
7
|
2
|
A ← (A) [(HL)]
|
XRI b2
|
EE
|
+
|
2
|
7
|
2
|
A ← (A) b2
|
ORA r
|
10110SSS
|
+
|
1
|
7
|
2
|
A ← (A) ۷ (r)
|
ORA M
|
B6
|
+
|
1
|
7
|
2
|
A ← (A) ۷ [(HL)]
|
ORI b2
|
F6
|
+
|
2
|
7
|
2
|
A ← (A) ۷ b2
|
CMP r
|
10111SSS
|
+
|
1
|
4
|
1
|
(A) – (r)
|
CMP M
|
BE
|
+
|
1
|
4
|
1
|
(A) – [(HL)]
|
CPI b2
|
FE
|
+
|
2
|
7
|
2
|
(A) – b2
|
CMA
|
2F
|
–
|
1
|
4
|
1
|
A ←
|
STC
|
37
|
C
|
1
|
4
|
1
|
TC ← 1
|
CMC
|
3F
|
C
|
1
|
4
|
1
|
TC ←
|
RLC
|
07
|
C
|
1
|
4
|
1
|
A7-1 ← (A6-0), A0 ← (TC), TC←A7
|
RRC
|
0F
|
C
|
1
|
4
|
1
|
A6-0 ← (A7-1), A7 ← (TC), TC←A0
|
RAL
|
17
|
C
|
1
|
4
|
1
|
A7-1 ← (A6-0), A0 ← (A7), TC←A7
|
RAR
|
1F
|
C
|
1
|
4
|
1
|
A6-0 ← (A7-1), A7 ← (A0), TC←A0
|
Басқару командалары
|
JMP b3b2
|
C3
|
–
|
3
|
10
|
3
|
PC ← b3b2
|
Jcond b3b2
|
11CCCC01
|
–
|
3
|
10
|
3
|
Cond = 1: PC ← b3b2
|
CALL b3b2
|
CD
|
–
|
3
|
18
|
5
|
SP ← (PC), PC ← b3b2
|
Ccond b3b2
|
11CCC100
|
–
|
3
|
2/5
|
9/18
|
Cond = 1:
SP ← (PC), PC ← b3b2
|
RET
|
C9
|
–
|
3
|
10
|
3
|
PC ← [(SP)]
|
Rcond
|
11CCC100
|
–
|
3
|
17/11
|
5/3
|
Cond = 1: PC ← [(SP)]
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 кестенің жалғасы
1
|
2
|
3
|
4
|
5
|
6
|
7
|
RST n
|
111nnn111
|
–
|
1
|
11
|
3
|
PC ← 8n
|
SPHL
|
E9
|
–
|
1
|
6
|
1
|
SP ← (HL)
|
Арнайы командалар
|
PUSH rp
|
11PP0101
|
–
|
1
|
11
|
3
|
SP ← (SP) – 2;
[(SP)];[(SP) + 1]← (rp)
|
PUSH PSW
|
F5
|
–
|
1
|
11
|
3
|
SP ← (SP) – 2;
[(SP)],[(SP) + 1]←(A),(F)
|
POP rp
|
11PP0001
|
–
|
1
|
10
|
3
|
rp ← [(SP)],[(SP) + 1],
SP ← (SP) + 2
|
POP PSW
|
F1
|
–
|
1
|
10
|
3
|
F,A ← [(SP)],[(SP) + 1];
SP ← (SP) + 2
|
XTHL
|
E3
|
–
|
1
|
18
|
5
|
(HL) ↔ [(SP)],[(SP) + 1]
|
PCHL
|
F9
|
–
|
1
|
5
|
1
|
PC ← (HL)
|
IN port
|
DB
|
–
|
2
|
10
|
3
|
A ← (port)
|
OUT port
|
D3
|
–
|
2
|
10
|
3
|
port ← (A)
|
EI
|
FB
|
–
|
1
|
4
|
1
|
Үзіліске рұқсат
|
ВI
|
F3
|
–
|
1
|
4
|
1
|
Үзіліске тиым салу
|
HLT
|
76
|
–
|
1
|
7
|
2
|
Тоқтатылым
|
NOP
|
00
|
–
|
1
|
4
|
1
|
Операция жоқ
|
RIM
|
20
|
–
|
1
|
4
|
1
|
Үзіліс маскасын оқу
|
SIM
|
30
|
–
|
1
|
4
|
1
|
Үзіліс маскасын жазу
|
2.6 К е с т е
ССС
|
Мнемокод (cond)
|
Шарттар
|
000
|
NZ
|
Нолге тең болмау
|
001
|
Z
|
Нолге тең болу
|
010
|
NC
|
Тасымалдың тумауы
|
011
|
C
|
Тасымалдың тууы
|
100
|
PO
|
Тақтық
|
101
|
PE
|
Жұптық
|
110
|
P
|
Плюс
|
111
|
M
|
Минус
|
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) арнайы бағдарлама да Ассемблер деп аталады. Машина тіліндегі бағдарлама микропроцессорлық жүйенің жадылық модулінде сақталады да, оның құрамындағы команда кодтары нақтылы тәртіппен таңдалып (оқылып), ол команда кодтарында берілген мәліметтер (операция коды, сілтеу тәсілі, деректер) негізінде орындалады.
Ассемблер тіліндегі бағдарлама нақтылы тәртіппен келесі түрде жазылады:
{Белгі:}
|
Мнемокод
|
{Операнд(тар)}
|
; {Түсініктеме}
|
Көрнекі жақшаларда болуы да, болмауы да мүмкін элементтер келтірілген. Белгі, мнемокод және операндтар бос орын арқылы ажыратылады.
Белгі – команданың символды адресі. Белгілер ауыстыру арқылы баратын командаларда ғана қойылады. Белгі артында қоснүкте қойылады. Белгі аталымының бірінші символы әріп немесе “?”, “.”, “@”, “_”, “$” символдарының біреуі болу керек. Ауыстыру немесе қосалқы бағдарламаларды шақыру командаларында белгі аталымы операнд ретінде пайдаланылады.
Мнемокод – команданың ассемблер тіліндегі жазылымы. Мнемокод ретінде команда қызметінің ағылшын тіліндегі мағынасының қысқартылымы пайдаланылады: ADD (ADDition), SUB (SUBtraction), XCHG (eXCHanGe).
Операндтар үтір арқылы бөлінеді. Екі операнд берілген жағдайда оның біріншісі информация қабылдаушысы, ал екіншісі информация көзі болады.
Түсініктеме командалардың қызметін суреттеуге ғана пайдаланылады, ол машина тіліне аударылмайды және әрқашан үтір-нүктеден басталады.
2.7 К е с т е
Достарыңызбен бөлісу: |