Ievads:
A mikroprocesors ir daudzfunkcionāla, programmējama, ar pulksteni darbināma, uz reģistriem balstīta elektroniska ierīce, kas nolasa bināras instrukcijas no atmiņas ierīces, ko sauc par atmiņu, pieņem bināros datus kā ievadi un apstrādā datus saskaņā ar šīm instrukcijām un nodrošina rezultātus kā izvadi. 8085 mikroprocesors ir otrās paaudzes 8 bitu mikroprocesors un ir pamats visu tirgū pieejamo mikroprocesoru izpētei un izmantošanai.
Kāpēc izmantot reģistrus 8085 mikroprocesorā?
Šeit ir daži iemesli, kāpēc 8085 mikroprocesorā tiek izmantoti reģistri:
- Pagaidu glabāšana: reģistri tiek izmantoti kā pagaidu uzglabāšanas vietas datiem, kas jāapstrādā mikroprocesoram. Piemēram, veicot aritmētiskās darbības, operandi parasti tiek saglabāti reģistros.
- Adresēšana: reģistrus izmanto, lai adresētu atmiņas vietas 8085 mikroprocesorā. Programmu skaitītāja (PC) reģistrs seko pašreizējās instrukcijas atrašanās vietai atmiņā, savukārt steka rādītāja (SP) reģistrs seko steka augšdaļai.
- Ievade/Izvade: reģistrus izmanto saziņai ar ievades/izvades (I/O) ierīcēm. Piemēram, akumulatoru (A) reģistrs tiek izmantots saziņai ar datu kopni, kas ir savienota ar I/O ierīcēm.
- Statusa informācija: reģistri tiek izmantoti statusa informācijas glabāšanai par mikroprocesora stāvokli. Piemēram, karodziņu reģistrā tiek glabāta informācija par aritmētisko un loģisko darbību rezultātiem, tostarp par to, vai rezultāts ir negatīvs, nulle vai pārnesums.
- Optimizācija: reģistri tiek izmantoti, lai optimizētu mikroprocesora veiktspēju. Izmantojot reģistrus, lai uzglabātu bieži lietotus datus un instrukcijas, mikroprocesors var piekļūt šai informācijai ātrāk nekā tad, ja tas būtu jāizgūst no atmiņas.
Reģistrācijas numurs 8085:
a) vispārējas nozīmes reģistri — 8085 ir seši vispārīgi reģistri 8 bitu datu glabāšanai; tos identificē kā B, C, D, E, H un L. Tos var apvienot kā reģistru pārus – BC, DE un HL, lai veiktu kādu 16 bitu darbību. Šie reģistri tiek izmantoti pagaidu datu glabāšanai vai kopēšanai, izmantojot instrukcijas, programmas izpildes laikā.
(b) Īpaša mērķa reģistri —
- Akumulators: akumulators ir 8 bitu reģistrs (var uzglabāt 8 bitu datus), kas ir aritmētiskās un loģiskās vienības (ALU) daļa. Pēc aritmētisko vai loģisko darbību veikšanas rezultāts tiek saglabāts akumulatorā. Akumulators tiek definēts arī kā reģistrs A. Karogu reģistri:
Karoga reģistrs ir īpašam nolūkam paredzēts reģistrs, un tas pilnībā atšķiras no citiem mikroprocesora reģistriem. Tas sastāv no 8 bitiem, un tikai 5 no tiem ir noderīgi. Pārējās trīs ir atstātas brīvas un tiek izmantotas nākamajās Intel versijās. Šie 5 karodziņi tiek iestatīti vai atiestatīti (ja karoga vērtība ir 1, tad tiek uzskatīts, ka tas ir iestatīts, un, ja vērtība ir 0, tad tas tiek atiestatīts ) pēc operācijas atbilstoši rezultāta datu stāvoklim akumulatorā un citos reģistros. 5 karogu reģistri ir:- Zīmes karogs: tas aizņem karoga reģistra septīto bitu, kas ir zināms arī kā visnozīmīgākais bits. Tas palīdz programmētājam uzzināt, vai akumulatorā saglabātais skaitlis ir pozitīvs vai negatīvs. Ja ir iestatīts zīmes karogs, tas nozīmē, ka akumulatorā saglabātais skaitlis ir negatīvs, un, ja tas ir atiestatīts, tad skaitlis ir pozitīvs. Nulles karogs: : tas aizņem karoga reģistra sesto bitu. Tas tiek iestatīts, kad ALU veiktās darbības rezultāts ir nulle (visi 8 biti ir nulle), pretējā gadījumā tas tiek atiestatīts. Tas palīdz noteikt, vai divi skaitļi ir vienādi vai nē. Papildu pārnēsāšanas karogs: tas aizņem karoga reģistra ceturto bitu. Aritmētiskajā darbībā, kad pārnēsāšanas karodziņš tiek ģenerēts ar trešo bitu un nodots ceturtajam bitam, tiek iestatīts papildu pārnēsāšanas karogs. Ja nē, karodziņš tiek atiestatīts. Šo karogu iekšēji izmanto BCD (binārā kodēta decimālskaitļa) darbībām. Piezīme - Šis ir vienīgais karodziņu reģistrs 8085, kas nav pieejams lietotājam. Paritātes karogs: tas aizņem karoga reģistra otro bitu. Šis karodziņš pārbauda, vai akumulatorā ir 1. Ja akumulatorā ir pāra skaits 1, tad tiek iestatīts šis karogs un tiek teikts, ka tas ir pāra paritāte. No otras puses, ja skaitļu 1 skaits ir nepāra, tas tiek atiestatīts un tiek uzskatīts, ka tā ir nepāra paritāte. Carry Flag: tas aizņem karoga reģistra nulles bitu. Ja aritmētiskās darbības rezultātā tiek veikta pārnešana (ja rezultāts ir lielāks par 8 bitiem), tiek iestatīts Carry Flag; pretējā gadījumā tas tiek atiestatīts.
c) Atmiņas reģistri — Atmiņas adrešu glabāšanai tiek izmantoti divi 16 bitu reģistri. Šo reģistru izmērs ir 16 biti, jo atmiņas adreses ir 16 biti. Viņi ir :-
- Programmu skaitītājs: šo reģistru izmanto, lai secinātu instrukciju izpildi. Programmas skaitītāja funkcija ir norādīt uz atmiņas adresi, no kuras ir jāiegūst nākamais baits. Kad tiek ielādēts baits (mašīnas kods), programmas skaitītājs tiek palielināts par vienu, lai norādītu uz nākamo atmiņas vietu. Stack Pointer: to izmanto kā atmiņas rādītāju. Tas norāda uz atmiņas vietu lasīšanas/rakstīšanas atmiņā, ko sauc par steku. Tas vienmēr tiek palielināts/samazināts par 2 push un pop darbības laikā.
- Zīmes karogs (7. bits): tas ir atiestatīts (0), kas nozīmē, ka akumulatorā saglabātais skaitlis ir pozitīvs. Nulles karogs (6. bits): Tas ir atiestatīts (0), tādējādi ALU veikto darbību rezultāts nav nulle. Papildu pārnēsāšanas karogs (4. bits): mēs redzam, ka b3 ģenerē pārnēsāšanu, ko uzņem b4, tādējādi tiek iestatīts papildu pārnēsāšanas karogs (1). Paritātes karogs (2. bits): tas ir atiestatīts (0), tas nozīmē, ka paritāte ir nepāra. Akumulatorā ir nepāra skaits 1. Carry Flag (0. bits): tas ir iestatīts (1), izvades rezultāts ir vairāk nekā 8 biti.
8085 mikroprocesora reģistru izmantošana:
Šeit ir daži izplatīti dažādu 8085 mikroprocesora reģistru lietojumi:
- Akumulatoru (A) reģistrs: akumulatoru reģistrs ir visbiežāk izmantotais reģistrs 8085 mikroprocesorā. To izmanto aritmētiskām un loģiskajām operācijām, kā arī ievades/izvades (I/O) operācijām. Akumulators tiek izmantots arī kā pagaidu datu uzglabāšanas vieta.
- Programmu skaitītāju (PC) reģistrs: datora reģistru izmanto, lai sekotu pašreizējās instrukcijas atmiņas vietai. Kad instrukcija tiek izpildīta, datora reģistrs tiek automātiski palielināts, lai norādītu uz nākamo instrukciju atmiņā.
- Stack Pointer (SP) reģistrs: SP reģistrs tiek izmantots, lai izsekotu steka augšdaļai. Stacks tiek izmantots pagaidu datu un atgriešanas adrešu glabāšanai apakšprogrammas izsaukumu laikā.
- Karogu reģistrs: karogu reģistrs tiek izmantots, lai saglabātu statusa informāciju par aritmētisko un loģisko darbību rezultātiem, tostarp par to, vai rezultāts ir negatīvs, nulle vai pārnesums.
- Vispārējie reģistri (B, C, D, E, H un L): šie reģistri tiek izmantoti vispārējai datu glabāšanai, kā arī atmiņas vietu adresēšanai. Tos var izmantot pa pāriem kā 16 bitu reģistrus, piemēram, BC, DE un HL, lai efektīvāk adresētu atmiņas vietas.
- Instrukciju reģistrs (IR) un mašīnas ciklu reģistrs (MCR): šos reģistrus iekšēji izmanto mikroprocesors, lai atšifrētu instrukcijas un kontrolētu mašīnas ciklu laiku.
Šo reģistru iezīmes ir šādas:
- Visi 8085 mikroprocesora reģistri ir tieši pieejami aritmētikas un loģikas vienībai (ALU), kas ļauj efektīvi apstrādāt datus.
- Akumulatoru reģistrs tiek izmantots kā noklusējuma galamērķis lielākajai daļai aritmētisko un loģisko instrukciju, kas vienkāršo programmēšanu.
- Vispārējos reģistrus var izmantot datu glabāšanai aprēķinu laikā, taču tos var izmantot arī atmiņas adrešu glabāšanai, padarot tos noderīgus, lai piekļūtu atmiņas vietām.
- Programmu skaitītāju un steku rādītāju reģistri ir ļoti svarīgi, lai pārvaldītu instrukciju un datu plūsmu programmā.
- Karogu reģistrs sniedz vērtīgu informāciju par aritmētisko un loģisko darbību rezultātiem, ļaujot programmās efektīvi pieņemt lēmumus.
- Instrukciju reģistrā tiek saglabāta pašreizējā izpildāmā instrukcija, ļaujot vadības blokam efektīvi dekodēt un ģenerēt vadības signālu.
Priekšrocības:
- Ātra piekļuve: reģistri nodrošina ātru un efektīvu veidu, kā piekļūt datiem un veikt darbības. Tā kā reģistri atrodas procesora iekšpusē, tiem var ātri piekļūt, negaidot, līdz dati tiks izgūti no atmiņas. Samazināta piekļuve atmiņai: reģistru izmantošana var palīdzēt samazināt nepieciešamo piekļūšanu atmiņai, kas var uzlabot sistēmas vispārējo veiktspēju. Specializēta funkcionalitāte: katram 8085 mikroprocesora reģistram ir noteikta funkcija, piemēram, aritmētisko darbību akumulators un programmas skaitītājs nākamās instrukcijas adreses glabāšanai. Šī specializētā funkcionalitāte var atvieglot programmēšanu un atkļūdošanu. Samazināta sarežģītība: nodrošinot īpašus reģistrus īpašiem mērķiem, 8085 mikroprocesors samazina programmēšanas un izpildes procesa sarežģītību.
Trūkumi:
- Ierobežota krātuves ietilpība: 8085 mikroprocesoram ir ierobežots reģistru skaits, kas var ierobežot datu apjomu, ko var uzglabāt un apstrādāt jebkurā laikā. Sarežģīti adresācijas režīmi: daži no 8085 mikroprocesorā izmantotajiem adresācijas režīmiem var būt sarežģīti, kas var apgrūtināt programmēšanu. Konteksta pārslēgšana: dažos gadījumos pārslēgšanās starp dažādām reģistru kopām var palielināt programmēšanas procesu un sarežģītību. Elastības trūkums: fiksētais reģistru skaits un funkcija 8085 mikroprocesorā var ierobežot sistēmas elastību un apgrūtināt pielāgošanos mainīgajām prasībām.