Sunteți pe pagina 1din 85

Lucrare de laborator nr.

1
Studierea complexului microprocesor de studiu

Schema structural general a microprocesorului

Microprocesorul (MP) const din trei blocuri de baz: dispozitivul logico-aritmetic (DLA), cteva registre i dispozitivul de comand (fig.1.1). Pentru transmiterea datelor ntre aceste blocuri ale MP, se utilizeaz magistrala interioar a datelor. Fig.1.1 Schema structurat a microprocesorului Dispozitivul logico-aritmetic DLA ndeplinete una din funciile principale ale MP procesarea datelor. DLA are dou canale de intrare (fig.1.1), notate ca Intrare i un canal Ieire. Destinaia canalului de intrare de a introduce cuvintele de date n DLA, iar a canalului de ieire retragerea unui atare cuvnt. Ambele canale de intrare sunt asigurate cu tampon, rolul crora l ndeplinesc registrele
2

pentru pstrarea temporar a datelor (registrele tampon). Fiecare canal este conectat cu registrul su de tampon, capabil s pstreze pentru DLA un cuvnt de date. Dou porturi de intrare permit DLA s recepioneze datele de pe magistrala interioar a datelor MP sau dintr-un registru special, numit acumulator. Unicul canal de ieire a DLA ofer ultimului posibilitatea de a expedia cuvntul de date n acumulator. Acumulatorul este menit pentru pstrarea cuvntului de date, expediat n el din portul de ieire al DLA sau extras din memorie. Cnd, de exemplu, DLA adun dou cuvinte ale datelor, unul din ele se afl n acumulator. Dup completarea adunrii cuvntul de date este expediat n acumulator pentru pstrare. DLA opereaz cu unul sau cu dou cuvinte, n dependen de tipul operaiei efectuate; corespunztor el utilizeaz i porturile de intrare. Aa, de exemplu, deoarece pentru adunare se cer dou cuvinte ale datelor, atunci atare operaie DLA o efectueaz folosind ambele porturi de intrare. Iar la inversiunea cuvntului de date, DLA se limiteaz la un port de intrare. Aceast operaie se limiteaz la substituirea n cuvntul de date a tuturor zerourilor cu unitile binare, iar a tuturor unitilor binare cu zerouri. Deoarece operaia se efectueaz asupra unui cuvnt, este suficient de conectat la acumulator un port de intrare. DLA trebuie utilizat n acele cazuri, cnd este necesar a schimba sau a verifica semnificaia cuvntului de date. Operaiile tipice, efectuate de ctre DLA a majoritii MP-lor sunt urmtoarele: ADUNAREA, SCDEREA, I, SAU, SAU EXCLUSIV, INVERSIUNEA, DEPLASAREA N DREAPTA, DEPLASAREA N STNGA, INCREMENT POZITIV, INCREMENT NEGATIV. Registrele microprocesorului Registrele particip la realizarea principalelor funcii logice. Fiecare registru al MP poate fi utilizat pentru pstrarea tempo3

rar a unui cuvnt de date. Unele registre au destinaie special, altele multifuncional (registre de destinaie general). Aproape toate MP au ase registre: de stare, de tampon, de comand, de adrese a memoriei, contorul de comenzi i acumulatorul. Acumulatorul Acumulatorul registrul principal al MP n diferite manipulri cu datele. Majoritatea operaiilor aritmetice i logice se realizeaz prin utilizarea DLA i acumulatorului. Oricare din atare operaii asupra a dou cuvinte de date (operanzilor) presupune plasarea unuia din ele n acumulator, iar altuia n memorie sau n alt oarecare registru. Aa, la adunarea a dou cuvinte, numite convenional A i B, plasate n acumulator i memorie corespunztor, suma rezultant C este inserat n acumulator, nlocuind cuvntul A. Rezultatul operaiei DLA, de regul, este plasat n acumulator. Trebuie de avut n vedere c, la aceasta, coninutul ultimului, se pierde. O operaie de alt tip, ce utilizeaz acumulatorul, este transferul programat de date dintr-o parte a MP n alta. Este vorba despre o expediere a datelor ntre portul inserare extragere i regiunea memoriei, ntre dou regiuni ale memoriei i alte cazuri asemntoare. Efectuarea operaiei i transferul programat al datelor se realizeaz n dou etape: nti se efectueaz expedierea datelor din surs n acumulator i dup aceea din acumulator n punctul de destinaie. MP permite a utiliza DLA pentru integrarea datelor din acumulator cu alte date. ns MP poate efectua unele aciuni asupra datelor direct n acumulator. De exemplu, acumulatorul poate fi eliberat prin inserarea zerourilor n toate rangurile lui, fixat n starea unitar prin inserarea unitilor n toate rangurile sale.Coninutul acumulatorului poate fi deplasat n stnga i n

dreapta, se poate obine valoarea sa inversat, precum i efectua alte operaii. Acumulatorul este cel mai universal registru al MP. Pentru efectuarea oricrei operaii asupra datelor, mai nti ele trebuie plasate n acumulator. Datele nimeresc n acumulator de pe magistrala interioar a datelor MP (fig.1.1). La rndul su, acumulatorul poate expedia pe aceast magistral. Numrul rangurilor acumulatorului corespunde lungimii cuvntului MP, adic 8 bii. Contorul comenzilor Programul este o succesivitate de comenzi, pstrate n memoria calculatorului electronic i este menit a instrui calculatorul, cum se rezolv problema. Pentru ndeplinirea corect a ultimei, comenzile trebuie s vin ntr-un ordin strict determinat. Asupra contorului comenzilor rmne responsabilitatea de a urmri cum se efectueaz comanda dat, care urmeaz s fie supus efecturii. Unde nu ar fi plasate comenzile programului, ele urmeaz una dup alta ntr-o ordine anumit. Contorul comenzilor este conectat cu magistrala interioar a datelor MP-lui (fig.1.1). Teoretic, acest contor va putea primi datele despre adresele programului din orice bloc al MP, conectat la magistrala interioar. ns, practic, datele de obicei nimeresc n contorul comenzilor din memoria calculatorului electronic. Cnd MP ncepe s funcioneze, la comanda stabilirii iniiale n contorul comenzilor se ncarc datele din regiunea memoriei, fixat de proiectantul MP. nainte de declanarea programului, este necesar a plasa adresa iniial a programului n regiunea memoriei, indicat de proiectant. Cnd programul ncepe s se ndeplineasc, prima valoare a coninutului contorului comenzilor este acea adres dinainte determinat. Spre deosebire de acumulator, contorul comenzilor nu poate ndeplini operaii de diferit tip. Numrul de comenzi, care-l utili5

zeaz, este foarte limitat, n comparaie cu numrul analogic pentru acumulator. nainte de efectuarea programului, contorul comenzilor trebuie inserat cu numrul adresa regiunii memoriei, ce conine prima comand a programului. Adresa regiunii memoriei, ce conine prima comand a programului, este expediat din contorul comenzilor n registrul adresei memoriei, dup ce coninutul ambelor registre devine acelai. Lungimea registrului adresei memoriei este egal cu 16 ranguri. Adresa locului de plasare a primei comenzi a programului este expediat prin magistrala adreselor ctre schemele de dirijare cu memoria, n consecin este citit coninutul regiunii cu adresa indicat. Acest coninut, fr ndoial, trebuie s fie o comand. Memoria expediaz aceast comand ntr-un registru special al blocului MP, numit registrul comenzilor. Contorul comenzilor poate s fie inserat cu coninutul la ndeplinirea unei grupe speciale de comenzi. Poate aprea necesitatea de a efectua o parte a programului, care decade din consecutivitatea comenzilor programului de baz sau a celui principal. De exemplu, aa o parte a programului, care trebuie multiplu repetat n procesul efecturii programului n ansamblu. n loc s scriem aceast parte a programului de fiecare dat, cnd n el apare necesitatea, aa o nscriere se poate face numai o dat, i ne ntoarcem la efectuarea repetat, nlturndu-ne de la succesivitatea indicat. O parte a programului, ndeplinit prin abaterea de la succesivitatea strict a comenzilor programului principal, se numete subprogram. Dup ce n contorul comenzilor este nscris adresa iniial a subprogramului, contorul primete incremente pe parcursul efecturii comenzilor acestui subprogram. Aa continu pn cnd nu se va ntlni comanda rentoarcerii n programul principal.

Registrul adresei memoriei La fiecare adresare ctre memoria calculatorului electronic, registrul adresei memoriei indic adresa regiunii memoriei, care va fi supus utilizrii n MP. Registrul adresei memoriei conine numrul binar al adresei regiunii de memorie. Ieirea acestui registru se numete magistrala de adrese i se utilizeaz pentru selectarea regiunii memoriei sau n unele cazuri pentru selectarea portului intrare ieire. Pe parcursul subciclului selectrii comenzii din memorie, registrele adresei memoriei i ale contorului comenzilor au acelai coninut, i.e. registrul de adrese al memoriei indic locul comenzii extrase din memorie. Dup decodarea comenzii, contorul comenzii obine un increment. Ceea ce se refer la registrul adresei memoriei, nu primete increment. Pe parcursul subciclului efecturii comenzii, coninutul registrului adresei memoriei depinde de comanda ce se efectueaz. Dac n corespundere cu comanda,MP poate efectua nc o adresare ctre memorie, atunci registrul adresei memoriei trebuie supus utilizrii repetate n decursul procesrii acestei comenzi. n majoritatea MP, registrele adresei memoriei i ale contorului comenzilor au un numr egal de ranguri. Ca i contorul comenzilor, registrul adresei comenzilor trebuie s dispun de numrul de ranguri, suficient pentru adresarea oricrei regiuni a memoriei calculatorului electronic. Pentru majoritatea MP cu 8 ranguri, numrul rangurilor registrului adresei memoriei este egal cu 16. Aa registru poate fi divizat n dou registre separate, fiecare din care posed o conectare independent la magistrala datelor MP. Unul din aceste registre este numit registrul byteului superior (BS), altul registrul byte-ului inferior (BI). Deoarece registrul adresei memoriei este conectat la magistrala interioar a datelor MP, el poate fi inserat de la diferite surse. Majoritatea MP posed comenzi, ce permit a insera acest registru cu coninutul contorului comenzilor, registrelor de destinaie
7

general sau a oricrei regiuni a memoriei. Unele comenzi acord posibilitatea de a schimba coninutul registrului adresei memoriei prin efectuarea calculelor: valoarea nou a coninutului acestui registru se obine prin adunarea sau scderea coninutului contorului comenzilor cu numrul, indicat n comand nsi. Adresarea de acest tip a primit denumirea adresrii cu utilizarea deplasrii. Registrul comenzilor Registrul comenzilor este destinat n exclusivitate pentru stocarea comenzii curente ce se efectueaz, aceast funcie se realizeaz de ctre MP n mod automat cu nceputul ciclului selecie executare, numit la fel ciclu de main. Dup cum a fost menionat mai sus, ciclul de main const din dou subcicluri selecie i executare. Cu excepia inserrii comenzii n perioada subciclului de selecie, programatorul nu poate altfel utiliza registrul comenzilor. Conform schemei de pe fig.1.1, acest registru este conectat cu magistrala intern a datelor, ns el numai recepioneaz datele s expedieze datele pe magistral el nu poate. Dei funciile registrului comenzilor sunt limitate, rolul lui n funcionarea MP este mare, deoarece ieirea acestui registru este o parte a descifratorului comenzilor. Registrul strilor Registrul strii este destinat pentru stocarea rezultatelor unor verificri, realizate n procesul executrii programului. Poziiile binare ale strii iau o valoare sau alta la executarea operaiilor, ce utilizeaz DLA i alte registre. Memorizarea rezultatelor verificrilor pomenite permite a utiliza programe ce conin tranziii (nclcri ale succesivitii naturale a executrii comenzilor). La prezena n program a tranziiei, executarea comenzii ncepe de la o oarecare regiune nou a memoriei, i.e. contorul comenzilor este ncrcat cu un numr nou. n cazul tranziiei con8

diionate, aa aciune are loc, dac rezultatele anumitor verificri coincid cu rezultatele ateptate. Rezultatele indicate se afl n registrul strilor. Posibilitile programrii cu transmiterea dirijrii (cu tranziii) este caracteristica specific a mainii de calcul n comparaie cu calculatorul. Registrul strii acord posibilitatea de a organiza funcionarea MP astfel, ca n anumite condiii s se schimbe ordinea executrii comenzilor. Se poate de spus, c MP ia decizia despre o continuare sau alta a mersului calculelor n dependen de condiiile indicate. Structura setului microprocesor de studiu Setul microprocesor de studiu (SMPS) reprezint o main electronic de calcul complet i este destinat: - pentru studierea bazelor proiectrii i deservirii mainilor electronice de calcul construite pe baza MP KP580BM80A; - pentru instruirea bazelor programrii MP KP580BM80A; - pentru elaborarea i construirea machetelor blocurilor de dirijare cu utilajul experimental. 1. Structura i principiul de funcionare ale prilor componente ale SMPS 1.1. SMPS este alctuit din urmtoarele pari componente: - main electronic de calcul; - pupitru de operator; - blocul de alimentare. 1.2. Maina electronic de calcul (MEC) este partea component principal i dirijeaz cu funcionarea ntregului SMPS. MEC const din dispozitivul operativ (DO), dispozitivul de memorie constant (DMC), dispozitivul de memorie operativ (DMO) i dispozitivul de executare a programelor pas cu pas.

DO efectueaz toate operaiile de procesare a informaiei. Informaia despre starea DO se fixeaz n registrul strilor la nceputul fiecrui ciclu de main. n dependen de starea acestui registru, sunt date strile posibile ale DO. DO ndeplinete operaii aritmetice i logice asupra datelor, ce vin fie din memorie, fie din dispozitivul intrare/ieire. DO include un microcircuit de integrare larg MP KP580BM80A, generatorul impulsurilor de tact, repetoarele tampon, necesare pentru micorarea sarcinii la ieirile MP. DMC pstreaz programele i datele i este accesibil numai pentru citire. 1 kilobyte al DMC l ocup programul Monitor, ce asigur introducerea informaiei de pe tastatura pupitrului de comand a operatorului i scoaterea ei pe display, i are adresele 0000 03FF. nc 1 kilobyte al DMC cu adresele 0400 07FF este rezervat utilizatorului pentru lrgirea posibilitilor SMPS. DMO se utilizeaz pentru stocarea programelor i datelor ce se schimb. DMO are capacitatea de 1 kilobyte cu adresele 0800 0BFF, din care ultimele 54 celule de memorie se utilizeaz de ctre programul Monitor pentru stiv. Dispozitivul de executare a programului pas cu pas transfer DO n starea de ateptare stand by fie n fiecare ciclu de main, fie dup executarea fiecrei comenzi curente. Executarea programului poate fi suspendat prin presarea tastei (ntrerupere). 1.3. Tastatura pupitrului de comand const din 30 taste, dintre ele 8 taste de directiv, 16 informaionale. Tastele de directiv servesc pentru apelarea la directive i au urmtoarele notaii: citirea i schimbarea coninutului memoriei; citirea i schimbarea coninutului registrelor; transferarea dirijrii programului ctre utilizator; determinarea sumei de control a masivului n memorie; completarea masivului de memorie cu o constant;
10

deplasarea masivului n spaiul de adrese; tasta lacunei; executarea nseamn sfritul directivei. Tastele informaionale: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F servesc pentru inserarea numerelor n codul hexazecimal. n acelai timp, tastele cu 4/H pn la F servesc pentru apelarea la identificatorii registrelor MP A, B, C, D, E, H, L, F, byte-ului superior al contorului comenzilor H i byte-ului inferior al contorului comenzilor PL, byte-ului superior al indicatorului stackului SH i byte-ului inferior al indicatorului stack-ului SL. n cazul lucrului incorect cu tastatura, n poziia extern din dreapta display-ului este indicat semnul ?. Tastele de dirijare a SMPS: ~ introducerea sursei de curent; revenire la zero i instalarea iniial a SPMS; ntreruperea executrii programului; / apelare la regimul pas cu pas; / selectarea mrimii pasului; pas succesiv. Pupitrul de comand conine un display pe care se indic adresa celulei de memorie sau identificatorul registrului MP i coninutul lor, precum i LED-urile indicatoare ale magistralei de adrese (MA) i ale magistralei datelor (MD) i registrelor strilor. LED-urile adreselor i cele informaionale sunt divizate n tetrade dup gradul de superioritate de la dreapta la stnga. Greutatea specific a poziiilor binare n fiecare tetrad 8-4-2-1. Adresele i datele sunt scoase pe LED-uri n sistemul binar de calcul. Indicarea prin LED-uri este utilizat la executarea programului utilizatorului n regimul pas cu pas. Tema la lucrarea de laborator nr.1 Pregtirea SPMS pentru lucru: 1. A stabili tasta ~ n starea depresat.
11

2. A conecta SPMS n circuitul de curent alternativ 220 V (50 Hz). 3. A fixa tasta / n starea . 4. A conecta SPMS, presnd tasta ~. 5. Presai tasta de dirijare . n poziia limit de stnga trebuie s apar semnul . 6. La executarea corect a punctelor 15, SPMS este pregtit pentru lucru. Exerciii 1. Indicarea coninutului memoriei i schimbarea lui. Pentru aceasta: n mod succesiv presai urmtoarele taste: 1 2 3 4 D1 D2, unde 1 2 3 4 este adresa celulei de memorie dat cu ajutorul tastelor informaionale (n calitate de adres se fixeaz ultimele 4 cifre hexazecimale inserate); D1 D2 datele, ce trebuie nscrise n celulele succesive de memorie, ncepnd cu adresa inserat. Dup presarea tastelor 1 2 3 4 pe vizualizator se ilumineaz adresa celulei de memorie i coninutul ei n codul hexazecimal. Pentru schimbarea coninutului celulei de memorie indicat, alegei coninutul su nou i presai tasta . La aceasta se indic coninutul urmtoarei celule de memorie, care la fel poate fi schimbat .a.m.d. pn la presarea tastei sfritului directivei . Pentru trecerea la urmtoarea celul de memorie fr schimbarea coninutului celei indicate, neculegnd date noi, presai tasta . Tema 1 1.1. Pe adresa 080 de inserat codul E5 (E5 (080A)), dup aceea n celulele succesive de memorie, ncepnd cu adresa, de inserat corespunztor 10 (0801), 20 (0802), 30
12

(0803), F0 (080F), 0F (0810) i n sfrit de inserat C3 (0A00), 05 (0C01), 03 (0100). 1.2. De verificat coninutul memoriei pe adresele 0800 0810, 000, 001, 0100 i de explicat rezultatul. 1.3. Pe adresele 0800 0810 de inserat succesiv codurile 00, 01, 02, 03, , 0F, 10. n darea de seam de adus i de explicat rezultatul verificrii coninutului memoriei pe aceste adrese, precum i de descris procedura verificrii. 1.4. De citit coninutul a zece celule ale DMC cu diferite coduri pe adresele 0000 0050. Utiliznd tabela codurilor comenzilor MP, de descifrat partea programului Monitor nscris pe aceste adrese. 2. Indicarea i schimbarea coninutului registrelor Pentru aceasta: Presai tasta , pe urm identificatorul registrului. Rspunsul la introducerea identificatorului este indicarea coninutului registrului dat pe vizualizator. Pentru schimbarea coninutului registrului, formai valoarea nou cu ajutorul tastelor informaionale. n calitate de coninut nou se fixeaz ultimele dou cifre inserate. Dup aceasta presai i poate fi introdus identificatorul registrului urmtor. La necesitatea trecerii la registrul urmtor fr schimbarea coninutului celui indicat, fr a culege date noi, presai tasta . Pentru completarea directivei, presai tasta . Tema 2 2.1. Succesiv revedei i nscriei coninutul tuturor registrelor. Explicai rezultatul atrgnd o atenie deosebit coninutului registrelor stack i contorului comenzilor.

13

2.2. nscriei n registre succesiv codurile: 00 (), 01 (), 02 (), 03 (D), 04 (E), 05 (F), 06 (PH), 07 (PL), 08 (SH), 09 (SL). 2.3. Verificai corectitudinea inserrii datelor n registre. Explicai rezultatul. 3. Completarea masivului memoriei cu o constant Pentru aceasta: Presai succesiv urmtoarele taste: DRESA1 DRESA2 D , unde ADRESA1, ADRESA2 sunt corespunztor adresa iniial i cea final ale masivului memoriei, ce se completeaz; D un byte de date, ce trebuie s fie supuse inserrii n memorie. ncercarea de a completa cu informaie ultimele 54 celule de memorie a DMO duce la deteriorarea stivei Monitorului. Tema 3 3.1. Pornind de la descrierea SPMS, calculai analitic adresa nceputului stivei Monitorului. Comparai-l cu coninutul registrului SP obinut anterior. 3.2. Completai masivul cu adresele 000 010 cu constanta AA. 3.3. Utiliznd directiva , verificai corectitudinea completrii masivului memoriei. 4. Determinarea sumei de control a masivului memoriei Suma de control (SC) a masivului reprezint suma coninutului tuturor celulelor de memorie fr considerarea supracompletrii. Pentru aceasta: Presai succesiv urmtoarele taste: DRESA1 DRESA2 ,

14

unde ADRESA1, DRESA2 sunt corespunztor adresa iniial i cea final ale masivului de memorie controlat. Dup executarea directivei, pe ecranul vizualizatorului se indic suma de control a masivului. Tema 4 4.1. Completai masivul memoriei cu adresele 0800 0807 cu urmtoarele date: 0800 0801 0802 0803 0804 0805 0806 0807 01 03 05 07 09 0 0 0F 4.2. Utiliznd directiva , calculai suma de control a acestui masiv. 4.3. Calculai SC a acestui masiv analitic i comparai rezultatul cu cel obinut la executarea directivei . 4.4. n celula de memorie 0808 inserai codul suplimentar F0. Calculai SC a masivului memoriei cu 0800 0808 i comparai-o cu rezultatul analitic. 5. Deplasarea masivului memoriei n spaiul adreselor Pentru aceasta: Presai succesiv urmtoarele taste: ADRESA1 ADRESA2 ADRESA3 , unde ADRESA1, ADRESA2 sunt corespunztor adresa iniial i cea final ale masivului ce se deplaseaz; ADRESA3 adresa iniial a masivului deplasrii. Dup executarea directivei masivul datelor, limitat de adresele ADRESA1, ADRESA2 inclusiv, se deplaseaz n regiunea memoriei, ncepnd cu adresa ADRESA3, masivul deplasrii i plasrii nu trebuie s se suprapun, n caz contrar are loc pierderea informaiei. Tema 5

15

5.1. Pe adresele 0800 0808 inserai masivul memoriei din tema anterioar. 5.2. Deplasai acest masiv n regiunea memoriei cu adresa iniial 010, utiliznd directiva . 5.3. Utiliznd directiva , revedei coninutul masivelor deplasrii i plasrii. Explicai rezultatul. Ordinea deconectrii SPMS 1. Depresai tasta /, dac ea era presat. 2. Deconectai SPMS, depresnd tasta ~.

Lucrare de laborator nr. 2


Programarea microprocesorului KP580BM80A..

Introducere n programare Programarea este descrierea n succesiune a operaiunilor care trebuie s le ndeplineasc calculatorul pentru soluionarea problemei fixate. Microprocesorul (MP) ndeplinete numai aceea, ce i prescrie lui programatorul. Descrierea procesului soluionrii problemei n aa mod ca ea s poat fi soluionat de ctre calculator este partea de baz a programrii. Rezultatul descrierii soluionrii problemei l numesc algoritm. Algoritmul alctuit poate fi codat, adic reprezentat n forma unei succesiuni a comenzilor de main, ce realizeaz soluionarea problemei. nscrierea algoritmului cu ajutorul comenzilor se numete codare, iar comenzile utilizate pentru aceasta - cod iniial. Deoarece pentru funcionarea calculatorului sunt necesare comenzile binare, codul iniial trebuie s fie supus translaiei [traducerii] ntr-un cod obiectiv, ce constituie o reprezentare binar a codului iniial.

16

Alctuirea schemei bloc a algoritmilor Schema bloc a algoritmilor este alctuit din blocuri separate. Se deosebesc 4 tipuri de blocuri. Blocul n form de dreptunghi simbolizeaz ndeplinirea oricror operaiuni pentru procesarea datelor, textul din interiorul blocului este descrierea pe scurt a acestui proces de procesare. Prin sgei este notat direcia mersului calculelor. De exemplu, dac blocul conine schema algoritmului, aceasta nseamn, c la etapa dat a funcionrii calculatorului acumulatorul trebuie s fie curat. Blocul, ce are forma unui romb, se utilizeaz pentru notarea simbolic a verificrii ndeplinirii unei condiii oarecare. n interiorul blocului, se descrie condiia ce trebuie supus verificrii. Rezultatele posibile ale verificrii sunt indicate la ieirile prin liniile ce ies din bloc.

Sunt posibile dou rezultate ale verificrii. Variabila A fie c este egal cu 20, fie c nu. n primul caz, ndeplinirea algoritmului continu n direcia indicat de sgeat cu subscripia da, in cazul al doilea dup sgeata cu subscripia nu. Blocul de form oval se utilizeaz pentru notarea nceputului i sfritului algoritmului. Textul din interiorul blocului, de regul, const dintr-un cuvnt: nceputul sau sfritul.

17

n acele cazuri, cnd este necesar de ntrerupt linia fluxului de calcule, ce merge de la un bloc la altul, se folosesc aanumitele conexiuni n form de cerc cu cifra sau litera indicat n interiorul lui. Prezena altei conexiuni identice [cu aceeai cifr sau liter] nseamn, c linia ntrerupt n locul plasrii primei conexiuni este continuat din acel loc, unde se afl a doua conexiune similar.

Subprogramele Subprogramul este o parte a programului, utilizat de regul, de cteva ori n procesul executrii programului. ns textul subprogramului se nscrie numai o singur dat. n caz de necesitate, este suficient de indicat n program comanda corespunztoare a chemrii (adresarea ctre subprogram), ce este adresat ctre regiunea memoriei, n care este situat subprogramul. Majoritatea limbajelor de programare posed pentru aceste scopuri comenzi speciale de chemare a subprogramelor CALL, care nu numai iniiaz executarea subprogramelor, dar i memorizeaz starea programului n momentul adresrii ctre subprogram. n urma chemrii subprogramului ei i se transmite dirijarea cu scopul executrii de ctre el a operaiunilor pas cu pas. Ultima comand a subprogramului ce se execut, de regul, este comanda ntoarcerii RETURN, ce transmite dirijarea napoi programului ce a chemat-o, impunnd-o pe ultima s continue executarea de la acea comand, care urmeaz nemijlocit dup comanda chemrii subprogramului.
18

Meritul principal al subprogramului este n aceea c, datorit posibilitii utilizrii lor multiple, se reduce textul programului. Limbajul de programare Limbajul de programare este un ir de comenzi i reguli de utilizare a lor pentru descrierea algoritmului soluionrii problemei cu scopul alctuirii programului de funcionare a calculatorului electronic, ce execut aceast soluionare. Diferite limbaje de programare au diferit grad de asemnare cu limba vorbit. De pild, cuvntul binar 0100 1111, nscris in limbajul mainii ndeplinete rolul comenzii de curare a acumulatorului. n limbajul ASSEMBLER, aceast comand are forma CLAA. Aa nscriere poate fi considerat ca abreviatura verbului din limba englez clear (a cura). n limbajul de nivel nalt BASIC, variabilei A i se poate atribui o valoare nul prin comanda LET A=0 (FIE A=0). La utilizarea limbajelor de nivel nalt, n comparaie cu limbajele de nivel inferior, este necesar de mai multe comenzi de main pentru ndeplinirea aceluiai lucru. De pild, pentru realizarea comenzii LET A=0 a limbajului BASIC poate fi necesar a avea 100 i mai multe comenzi de main. n acelai timp numrul binar 0100 1111 este o comand de main (unic) ce realizeaz curarea acumulatorului. La lucrul cu comenzile limbajului de nivel superior, este necesar un volum mai mare de memorie i un timp mai ndelungat de executare. Utilizarea limbajelor de nivel nalt este posibil numai n lucrul cu sistemele de calcul de o arhitectur relativ complex. Toate limbajele de programare trebuie supuse transformrii n succesiune de comenzi de main binare. Programnd nemijlocit n limbajul de maini, cifrele binare se pot introduce direct n memorie. La utilizarea limbajului de nivel nalt, se cere o etap intermediar (translaia) de transformare a operatorilor limbajului de nivel nalt n coduri de main.

19

Programarea n limbajul mainii se folosete numai la alctuirea programelor foarte scurte ale MP. n lucrul cu MP, cel mai rspndit este limbajul ASSEMBLER, n care se utilizeaz scrierea prescurtat a cuvintelor englezeti. nscrierea programului are loc cu utilizarea adreselor simbolice. ASSEMBLER este un program de serviciu, ce transform numele simbolice (cuvintele englezeti prescurtate)i adresele simbolice n comenzi n codul de main i adresele numerice. Translaia textului programului din limbajul de nivel nalt n limbajul de comenzi de main se realizeaz pe calea interpretrii sau translaiei. Forma mnemonic de nscriere a comenzilor Comanda MP este un numr binar, care fiind citit de ctre MP, l impune pe ultimul s ndeplineasc anumite operaii. Majoritatea comenzilor realizeaz transmiterea i procesarea datelor plasate n memorie sau n unul din registrele MP. Pentru executare, comanda este trimis n registrul comenzilor n descifrator i schemele de dirijare, unde ea este identificat, ca rezultat se formeaz semnalele, ce sunt ndreptate n alte pri ale MP. MP insereaz comanda n registrul comenzilor n decursul ciclului de selectare. n ciclul urmtor, MP decodific comanda i creeaz semnale de dirijare a procesului executrii operaiunilor acestei comenzi. Comanda trebuie s informeze MP ce are de fcut ( locul amplasrii datelor ce se proceseaz). Comanda const din dou pri: codul operaiei i adresa. Codul operaiei comunic MP ce trebuie s fac; adresa indic locul datelor, ce particip n operaie. Dac lungimea comenzii const din dou sau trei cuvinte, atunci primul este codul operaiei, iar al doilea adresa. Deoarece numrul nscris n sistemul octal i cel hexazecimal de calcul este greu de memorizat, atunci se utilizeaz n-

20

scrierea prescurtat notarea mnemonic (abreviatura cuvintelor din limba englez). Metodele de adresare ale MP Comanda MP const din codul operaiei i din adres. Dar sunt i comenzi fr adres. Atare pild este comanda ce abandoneaz funcionarea MP. Lungimea comenzii depinde de lungimea adresei ce se utilizeaz n ea. Tipul de adresare ctre date este numit metod de adresare. Adresarea implicit Comanda de un octet a MP de 8 ranguri este una dintre cele 256 combinaii din 8 bii, ce formeaz un cuvnt de main. MP posed 65 536 regiuni de memorie. De aceea, pentru comenzile de un octet nu se adreseaz ctre datele situate n memorie. Comenzile opereaz cu datele ncrcate n registru, perechea de registre sau cu datele pstrate n regiunea memoriei, a cror adres se afl n perechea de registre. Atare adresare se numete implicit. Comenzile de un octet se execut mai repede dect altele, deoarece n aa caz MP i este necesar ciclul de selecie i de executare. Adresarea direct Comenzile cu adresarea direct pot avea lungimea de 2 sau 3 octete. Primul octet este destinat pentru codul operaiei, al doilea i, dac exist, al treilea pentru adres. Adresa indic regiunea memoriei, n care se afl datele ce trebuie supuse procesrii. Folosirea comun a octetelor al doilea i al treilea ale comenzii permite a se adresa la oricare din 65 536 regiuni ale memoriei. La adresarea implicit, locul datelor este inserat n comand i programatorul este lipsit de posibilitatea de a se adresa de sine stttor ctre date pe adresa lor. La adresarea direct, datele se indic direct n comand, urmnd ndat dup
21

codul operaiei. n acest caz, programatorul, la fel, nu se poate adresa ctre date. La adresarea direct aa posibilitate exist. Adresarea indirect n afar de codul operaiei, n asemenea comand se indic numrul registrului, coninutul cruia este adresa locului datelor n memorie. Prin acest indiciu aa comenzi difer de comenzile adresrii nemijlocite, ce conin n ele datele nsei, sau de comenzile adresrii directe, care includ adresa acestor date. La utilizarea adresrii indirecte, comanda corespunztoare indic n care pereche de registre este plasat adresa locului datelor n memorie. Aa metod de adresare este cea mai comod la nscrierea i citirea regiunilor de memorie ce urmeaz una dup alta. Comenzile de transfer de date Comenzile de transfer de date (permutare a datelor) servesc la transferul de date n diferite dispozitive de stocare a informaiei, pe care o posed calculatorul electronic, precum i pentru transferul de date din aceste dispozitive. Informaia se pstreaz n locaii i registre. n dependen de dispozitivele calculatorului electronic, se deosebesc comenzile: ncrcarea, transferul de date i nregistrarea n memorie. Comenzile de transfer de date realizeaz practic transferul duplicatelor de date. Comanda de transfer de date const din dou pri: codul operaiei i partea adresrii. Codul operaiei n comanda transferului de date determin sursa de date i metoda de adresare. Adresarea poate fi una din cele trei tipuri: nemijlocit, direct i indirect. ncrcarea nemijlocit a registrului LDA R. Datele. Dup comanda ncrcare nemijlocit registrului, n registrul R se ncarc datele, ce se afl n octetul al doilea al comenzii. De pild, cu ajutorul comenzii LDA B se
22

efectueaz ncrcarea datelor n registrul B. Comanda are dou octete i se execut n decurs de trei microcicluri. ncrcarea direct a registrului LDD R. Datele. Conform acestei comenzi, datele se renscriu din regiunea de memorie la care se adreseaz n registrul R. Al doilea i al treilea octete ale comenzii indic adresa regiunii de memorie, datele creia se copie. De exemplu, dup comanda LDD C,0F1C datele, ce se afl n regiunea memoriei 0F1C, se renscriu n registrul C. ncrcarea indirect a acumulatorului LDI A. Datele. Conform acestei comenzi, datele se renscriu din regiunea de memorie n acumulator. Coninutul perechii de registre BC indic adresa regiunii memoriei-surs de date. n perechea de registre BC, anterior, se introduce adresa necesar. ncrcarea nemijlocit a perechii de registre LRP B. Datele. Conform acestei comenzi, n perechea de registre BC de rangul 16 se ncarc datele ce le conin al doilea i al treilea octete ale comenzii. Aceasta este comand din trei octete pentru executarea crora sunt necesare trei microcicluri. Transferul de date din registru n registru MOV R1,R2. Conform acestei comenzi, n registrul R1 se ncarc copia datelor, ce le conine registrul R2. Aceasta este o comand de 1 octet, ce se realizeaz n dou microcicluri. nscrierea direct a acumulatorului n memorie STA A,Adresa. Datele din acumulator se nscriu n memorie. Al doilea i al treilea octete ale comenzii indic regiunea memoriei, n care se efectueaz nscrierea datelor. Aceasta este
23

comand de trei octete, realizarea creia ocup cinci microcicluri. nscrierea acumulatorului n memorie indirect STI A. Datele se renscriu din acumulator n memorie. Coninutul perechii de registre BC indic adresa regiunii de memorie, n care se realizeaz nscrierea datelor. Programarea microprocesorului KP580BM80A 1. Alctuirea formularului programului. Programul pentru MP de seria 580 se alctuiete folosind un formular special. Adresa Codul 1 0800 2 3E01 Eticheta 3 nceputul Mnemonica Operandul 4 MVIA 5 ,01H Comentariul 6 1(A)

Formularul programului const din 6 cmpuri. La scrierea programului se folosesc mai nti cmpurile 3-6. n cmpul 4 se nscrie notarea mnemonic a comenzii ce se execut. n cmpul 5 se nscrie operandul necesar <Adresa saltului, Numrul canalului intrare-ieire>. Operandul poate fi nscris nemijlocit n forma unui numr concret sau implicit, adic lui i se poate atribui un nume simbolic, iar valoarea concret, ce corespunde acestui nume, se determin ulterior la transferarea textului programului n coduri interne. Cnd operandul este dat n form nemijlocit, atunci dup el se pun literele D,H sau B, dac numrul este corespunztor zecimal, hexazecimal sau binar. Cmpul 6 este rezervat pentru comentariu <explicarea aciunilor, ce se ndeplinesc de ctre program>. Prezena acestui cmp nu este obligatorie. Dac dorii ca programul D-voastr s fie
24

clar altora, precum n viitor i D-voastr nsui, comentariul trebuie s fie prezent. Cmpul 6 se separ de alte cmpuri prin punct cu virgul. Cmpul 3 se completeaz n acel caz, dac este necesar de a marca nceputul fragmentelor programului, la care se realizeaz saltul din alte pri ale programului conform comenzilor de ramificare (transfer de comand) i chemare a subprogramelor. Cmpurile 1 i 2 se completeaz n corespundere cu tabela de coduri a MP i lungimea comenzilor. Aceste cmpuri se completeaz n sistemul hexazecimal de calcul, la care litera H la sfrit se omite. Dac n program se utilizeaz definirea implicit a operanzilor, atunci la nceputul i la sfritul textului programului se determin, cu ce sunt egali ntr-adevr aceti operanzi. Pentru aceasta, n cmpul 3 se nscrie numele simbolic al operandului, n cmpul 4 EQU prescurtat (egal), iar n cmpul 5 valoarea real a operandului. n cmpul 5 se nscriu codurile i operanzii comenzilor. La acestea numele simbolice le nlocuiesc cu valorile lor reale. La nscrierea operanzilor i adreselor de rangul 16 (de 2 octete), n cmpul 5 se in de nscrierea natural, adic din stnga se nscriu rangurile mai superioare, iar din dreapta mai inferioare ale numrului. La nscrierea codurilor operanzilor n cmpul 2, ordinea este invers, adic n memoria calculatorului electronic se nscrie nti octetul inferior, pe urm octetul superior al operandului. Prima valoare a adresei n cmpul 1 (adresa primei comenzi) se alege de ctre utilizator n dependen de locul liber n memoria operativ a calculatorului. Cmpul se completeaz aa, ca valorile indicate n el s corespund adreselor celulelor de memorie, ce conin codurile (primele octete) ale comenzilor programului. Formatul cmpului 2 este determinat de lungimea comenzilor i poate conine 1, 2 sau 3 octete. Corespunztor n cmpul 1,

25

n dependen de lungimea comenzii premergtoare, la valoarea adresei premergtoare se adaug 1, 2 sau 3 octete. Codurile octetului 2 sau 3 n comenzile de transfer de comand i chemare a subprogramelor n cmpul 2 sunt introduse n ultimul rnd dup completarea tuturor rndurilor cmpului 1. Programul n coduri interne Dup completarea formularului n cmpul 2, obinem nscrierea programului n coduri interne ale calculatorului. Dac acum codurile din cmpul 2 le plasm n memoria calculatorului pe adresele, indicate n cmpul 1, atunci la demarajul calculatorului de la adresa iniial a programului, ea ncepe s execute algoritmul dat. Dac programul are stiv, atunci este necesar a efectua n program ajustarea indicatorului stivei, adic n perechea de registre SP se plaseaz adresa memoriei ce nu conine codurile comenzilor programului. Exemplu de completare a formularului programului. Adresa Codul 1 0800 0802 0804 0805 0806 0809 080A Mnemo- OperanComentariul nica dul 2 3 4 5 6 0636 nceputul: MVIB ,36D ;36(B) 3E14 MVIA ,14D ;14(A) 80 ADDB ;(A)+ (B)(A) 27 DAA ;corecia zecimal 320A08 STA 080AH nscrierea n DMO 76 Sfritul: HLT ;oprirea; DS 00H rezervarea i zerografierea Eticheta
26

octetului n aa mod, programul obinut este plasat n memoria calculatorului electronic pe adresele 0800-0809H. Rezultatul calculelor va fi plasat n celula de memorie rezervat pe adresa 080A. naintea lansrii programului la calcul, coninutul lui trebuie zeroficat. Pentru calcul conform programului, este necesar pornirea MP, ncepnd cu adresa 0800, iniial nscriind n memoria calculatorului codurile comenzilor din cmpul 2 pe adresele cmpului 1. Activarea CMPS Pentru nscrierea i lansarea programului la calcul este necesar: - a introduce CMPS; - a presa tasta . Dup aceasta, pe vizualizator va aprea simbolul i calculatorul va trece n regimul recepionrii directivelor utilizatorului. ncrcarea programului n memoria microcalculatorului se realizeaz cu ajutorul directivei indicarea i schimbarea coninutului memoriei (vezi lucrarea de laborator nr.1). Dup ncrcarea programului, ea este lansat la calcul, utiliznd directiva transferul de comand programului utilizatorului: ADRESA1 - ADRESA2; unde ADRESA1 este adresa iniial a programului; ADRESA2 adresa final a programului. Adresele 1 i 2 trebuie s se afle n limitele DMO ale MP 0800-0BFF (ultimele 54 celule ale DMO sunt ocupate pentru stiva programului MONITOR i nu trebuie s fie utilizate n programul de lucru).

27

Rezultatul executrii programului poate fi vzut, utiliznd directivele CMPS. Exemplu de nscriere i executare a programelor Executm programul, alctuit mai sus, de adunare a numerelor zecimale 36 i 14 cu ajutorul CMPS. Pentru aceasta este necesar a efectua urmtoarele operaii: introducerea alimentrii i aducerea CMPS n starea iniial, presnd tasta , utiliznd directiva 0800 D1 - D2 DN de ncrcat n DMO al CMPS urmtoarea succesiune a codurilor: 0800 0801 0802 0803 0804 0805 0806 0807 0808 0809 080A 06 36 3E 14 80 27 32 0A 08 76 00 executarea programului cu ajutorul directivei 0800 0809 ; a se convinge, c dup executarea programului coninutul celulei de memorie 080A a devenit egal cu 50; dac nu se reuete a executa corect programul, este necesar a se ntoarce ctre partea teoretic a lucrrii de laborator #1, iar pe urm a ncerca din nou ncrcarea i executarea programului. Noiune de cicluri interne Comenzile n MP se execut i pe cicluri interne, a cror durat alctuiete 3-5 perioade ale frecvenei de tact a generatorului sincronizat. Timpul executrii comenzii, n dependen de tipul ei, face 1-5 cicluri interne. Numrul de cicluri interne n comand de regul este egal cu numrul de adresri ale MP ctre memorie i ctre porturile intrareieire, necesare pentru selectarea i executarea comenzii date. Fiineaz 10 tipuri de cicluri interne, ce sunt ndeplinite de ctre MP KP580BM80A:
28

1. Ciclul MP selectarea codului comenzii n registrul comenzilor; 2. Ciclul citirii DM citirea DM pe adresa dat; 3. Ciclul nscrierii n DM; 4. Ciclul citirii stivei citirea DM pe adresa n SP; 5. Ciclul nscrierii n stiv nscrierea n stiv pe adresa n SP; 7. Ciclul intrareieire a datelor din MP n canal; 8. Ciclul ntreruperilor recepionarea codului comenzii RST sau CALL din controlorul ntreruperilor; 9. Ciclul oprire; 10. Ciclul ntreruperii la oprire. Fiecare ciclu intern este acompaniat de extragerea n primul tact pe magistrala datelor octetului strii MP, ce informeaz dispozitivele exterioare despre tipul ciclului intern (CI) ce se execut. Octetul strii se memorizeaz ntr-un registru extern special al calculatorului i n CMPS este reflectat de ctre LEDurile . Registrul strilor se utilizeaz pentru formarea semnalelor de dirijare cu dispozitivele exterioare, ce particip la executarea ciclului intern dat. Concordana dintre tipul ciclului i coninutul octetului strii este prezentat n tab.1.
Tabela 1 Rangurile registrului strilor dispozitivului operativ (DO) Starea DO Selectarea comenzilor Citirea memoriei nscrierea n memorie Citirea
D0 D1 D2 D3 D4 INTA WO STACK HLTA OUT D5 M1 D6 D7 INP MEMR

0 0 0 0

1 1 0 1

0 0 0 1
29

0 0 0 0

0 0 0 0

1 0 0 0

0 0 0 0

1 1 0 1

stivei nscrierea n stiv Intrarea Ieirea ntreruperea Oprirea ntrerupere n oprire

0 0 0 1 0 1

0 1 0 1 1 1

1 0 0 0 0 0

0 0 0 0 1 1

0 0 1 0 0 0

0 0 0 1 0 1

0 1 0 0 0 0

0 0 0 0 1 0

INTA este semnalul de confirmare a interpelrii ntreruperii (se utilizeaz pentru introducerea pe magistrala datelor a comenzii RST; WO) n ciclul intern curent se execut nscrierea n memorie sau operaia de ieire. Primul ciclu intern al oricrei comenzi este ciclul MP selectarea codului comenzii. Exemple: Comanda MOV A,B este executat ntr-un ciclu intern, n care se selecteaz codul comenzii n registrul comenzilor. Dup descifrarea lui, dispozitivul de dirijare a MP determin sensul comenzii i corespunztor execut transferul (B)(A). 2. Comanda LOAD ADR este executat n dou cicluri interne: 1) ciclul MP selectarea codului comenzii; 2) ciclul nscrierii n DMO pe adresa determinat de operandul comenzii. Exerciiu la lucrarea de laborator nr. 2 Pregtirea CMPS pentru lucru. 1. Fixai tasta n stare depresat. 2. Tasta / de a o depresa n starea . 3. Conectai CMPS n reeaua de curent alternativ 220V (50Hz). 4. Introducei CMPS, presnd tasta . 5. Presai tasta de dirijare . n poziia de limit n dreapta a vizualizatorului trebuie s apar semnul . 6. La executarea corect a punctelor 1-5, CMPS este gata de lucru.
30

Exerciii Executarea celor mai simple programe 1. A nscrie programul de mai jos n memoria CMPS i a-l ndeplini
0800 3E12 MVIA,12 ; nscrierea numrului n acumulator 0802 OEOC MVIC,OC ; nscrierea numrului n registrul C 0804 1OA11 LXID,110A ; nscrierea direct a operandului n DE 0807 21OD08 LXIH,ETIC. ; ncrcarea adresei etichetei n HL 080A 42 MOVB,D ; (D)(B) 080B 75 MOV M,L ; (L)(M) cu adresa n HL 080C 76 HLT ; oprire 080D 00 ETICHETA:DB 00 ; rezervarea i curarea celulei de memorie

2. Dup executarea programului de a extrage pe vizualizator coninutul registrelor i celulelor de memorie, utilizate n program, nscriei valorile i explicai rezultatul. 3. De ncrcat programul de mai jos n memoria CMPS i a-l executa
0800 0803 0804 0807 0808 0809 080C 080F 0812 0815 0816 0840 0842 0843 014008 0A 114108 12 47 3A4208 324308 2A4408 224608 EB 76 LXI B,0840 LDAX B LXI D,0841 STAX D MOV B,A LDA 0842 STA0843 LHLD 0844 SHLD 0846 XCHG HLT DB C5 DB 00 DB15 DB 00
31

; ncrcarea BC cu adresa 0840 ; M(0840)(A) ; ; AM (0841) ; M(0842)(A) ; (A)M(0843) ; M(0844-0845)(HL) ; (HL)M(0846-0847) ; (HL)(DE) ; nscrierea constantei n memorie 0841

0844 0845 0846 0847

DB 12 DB 34 DB 00 DB 00

4. Dup executarea programului de a indica coninutul registrelor i celulelor de memorie, utilizate n program pe vizualizator, nscriei i explicai rezultatul. 5. A executa exerciiile 1 i 3 n regimele ciclurilor interne (CI) i ciclurilor de comand (CC). Executnd exerciiul, analizai starea magistralelor de adrese i informaionale la fiecare pas. Funcionarea CMPS n regimul pas cu pas n CMPS este prevzut executarea programelor utilizatorului n regim pas cu pas, ce permite a reflecta pe vizualizator i pe indicatoare starea magistralelor de adrese i informaionale, precum i coninutul registrului strii. Exist dou tipuri de executare a programului pas cu pas: regimurile pe cicluri i pe comenzi. n regimul pe cicluri, dispozitivul operativ se transfer n starea de ateptare la executarea fiecrui CI, iar n regimul comand dup comand dup executarea fiecrei comenzi la rnd. Pentru chemarea regimului pas cu pas, este necesar: - a presa tasta / pentru fixarea regimului (pas cu pas); - cu tasta / a selecta regimul de comenzi interne (CI) sau pe cicluri (CC) de executare a programului; - utiliznd directiva ADRESA1-ADRESA2 , transferai dirijarea programului utilizatorului; pas cu pas executai programul, presnd succesiv tasta . Dup transferarea dirijrii programului, ce se execut pe panoul de indicare luminoas se va reflecta adresa iniial a programului, datele pe aceast adres i coninutul registrului strii, ce corespunde primei comenzi a programului.

32

Executarea programului poate fi ntrerupt prin presarea tastei (). n acest caz, dirijarea se transfer subprogramului de prelucrare a ntreruperii la comanda RST7. Subprogramul ntreruperii pstreaz coninutul registrelor MP, stabilit de programul utilizatorului. Dup finisarea subprogramului ntreruperii, se poate executa orice directiv a CMPS, n particular, de a revedea coninutul registrelor MP sau coninutul celulelor de memorie, ce au luat parte n programul utilizatorului. 6. Ordinea deconectrii CMPS: - depresai, dac a fost presat tasta /; - deconectai CMPS, depresnd tasta ~.

Lucrare de laborator nr.3


Programarea MP KP580BM80A

Operaiile aritmetice 1. Comanda ADUNAREA MP n realitate pot ndeplini numai o singur comand a procesrii aritmetice adunarea. MP poate, de exemplu, aduna un numr binar cu codul suplimentar al altui numr binar. n aa mod, se realizeaz operaia de scdere. Adunarea poate fi repetat de o mulime de ori, iar adaosul multiplu este operaia nmulirii. Scderea repetat reprezint operaia mpririi. S considerm comenzile adunrii. Singura diferen dintre ele const n sursele din care se iau datele pentru efectuarea lor. Adunarea cu registrul ADD r.A+rA. La comanda Adunarea cu registrul, coninutul registrului r este adugat la coninutul acumulatorului (registrul A). Rezultatul (suma) este inserat n acumulator. Coni33

nutul iniial al acumulatorului se pierde. Aceasta este comanda de un octet, ce se ndeplinete n dou microcicluri ale microprocesorului. Adunarea direct cu memoria ADD M,Adresa+MA. La comanda Adunarea direct cu memoria, coninutul regiunii memoriei, adresa creia este indicat n comand, se adaug la coninutul registrului A. Al doilea i al treilea octete ale comenzii alctuiesc adresa regiunii memoriei, n care se afl unul din termenii sumei. Suma este amplasat n acumulator. Coninutul iniial al acumulatorului se pierde. Aceasta este o comand din 3 octete, pentru care se consum patru microcicluri ale procesorului. Adunarea indirect cu memoria ADI M. A+MA. La efectuarea comenzii Adunarea indirect cu memoria, coninutul regiunii memoriei se adaug la coninutul acumulatorului. Regiunea, n care se afl termenul sumei, este indicat de ctre coninutul perechii de registre BC. Pentru a putea utiliza comanda dat, perechea de registre BC trebuie anterior ncrcat. Suma este amplasat n acumulator. Coninutul iniial al acumulatorului se pierde. Aceasta este o comand de ! octet, ce se efectueaz n trei microcicluri. Adunarea cu datele directe ADD I, Datele. La realizarea comenzii Adunarea cu datele directe, coninutul celui de al doilea octet al comenzii se adaug la coninutul acumulatorului. Aceasta este o comand din 2-octete, a crei executare consum trei microcicluri. Vom considera exemplul utilizrii comenzii Adunarea. n
34

fig.3.1 este prezentat schema bloc a programului, ce conine aceast comand. n program se utilizeaz comanda transferului datelor ncrcarea direct. Ea servete pentru amplasarea n acumulator a numrului zecimal 12. Cu ajutorul comenzii Adunarea cu datele directe, la acest numr 12 se adaog numrul 41. Rezultatul(53) rmne n acumulator. La terminarea adunrii are loc oprirea procesorului. MP n realitate proceseaz numerele binare, indiferent de faptul c n fig. sunt indicate cifrele hexazecimale (OC, 29, 35).

Fig.3.1. Adunarea a dou numere cu ajutorul simplei comenzi Adunarea


35

n aa mod se execut urmtoarea operaie:


Numerele binare 0000 1100 + 0010 1001 ----------------0011 0101 Numerele zecimale 12 + 41 -------53 Numerele hexazecimale 0 + 29 --------35

n fig.3.2 este indicat starea MP i a dispozitivelor calculatorului electronic dup selectarea comenzii LDA. Aceasta e o comand din 2 octete,a crei realizare consum trei microcicluri.

36

Fig.3.2. Selectarea comenzii NCCAREA ACUMULATORULUI (LDA)

37

La nceputul lucrului contorului de instruciuni i este atribuit valoarea 0000, la aceasta el indic asupra primei comenzi a programului. n procesul ciclului de selectare a comenzii, coninutul contorului de instruciuni se ncarc n registrul adresei memoriei. Decodificatorul de adres a memoriei decodific datele, parvenite pe magistrala de adrese. Dup recepionarea semnalului de impuls, Citirea memoriei comanda LDA din regiunea de memorie 0000 este amplasat pe magistrala datelor microcalculatorului electronic, iar de pe aceast magistral este nscris n registrul comenzilor microprocesorului. n decursul ciclului executrii (fig.3.2) de dou ori se efectueaz incrementarea coninutului contorului de instruciuni. Acum el indic asupra regiunii 0002 locul, unde se pstreaz n memorie comanda urmtoare Adunarea. Registrul adresei de memorie determin al doilea octet al primei comenzi, ce conine datele OC. Decodificatorul de adrese a memoriei decodific adresa octetului dat, i la recepionarea semnalului de impuls Citirea memoriei, numrul OC parvine pe magistrala datelor microcalculatorului electronic. La executarea comenzii LDA datele (OC) se ncarc n acumulator. Se poate observa c n urma executrii comenzii LDA, toate rangurile registrului strilor se stabilesc n 0. Aceasta nseamn c valoarea datelor nu este egal cu 0, rangul lor superior nu este egal cu 1, i transferul din rangul superior la executarea operaiei nu a avut loc. Pe parcursul executrii comenzii Adunarea, coninutul contorului comenzilor se ncarc n registrul de adres a memoriei. Decodificatorul de adrese a memoriei decodific adresa. La recepionarea semnalului Citirea memoriei, pe magistrala datelor se d comanda Adunarea cu datele directe. Aceast comand se ncarc n registrul comenzilor microprocesorului.

38

Pe parcursul ciclului de executare a comenzii dat incrementarea coninutului contorului de instruciuni se realizeaz de dou ori. El indic acum asupra regiunii cu adresa 0004, n care se pstreaz comanda Oprire. Coninutul acumulatorului se transfer n registrul tampon al acumulatorului. n acelai timp, decodificatorul de adres a memoriei indic asupra datelor, ce se conin n al doilea octet al comenzii. Decodificatorul de adres a memoriei indic asupra regiunii cu adresa 0003. Dup recepionarea semnalului Citirea memoriei datele (numrul 29) sunt transmise magistralei de date a microcalculatorului, de unde ele sunt ncrcate n registrul tampon al DAL. Ulterior, DAL adun coninutul registrului tampon al DAL i acumulatorului. Rezultatul (numrul 35) este amplasat n acumulator. La recepionarea semnalului Citirea memoriei la magistrala de date a microcalculatorului electronic, a fost dat comanda Oprire. Ulterior, aceast comand a fost ncrcat n registrul comenzilor. Pe parcursul executrii comenzii Oprire se efectueaz incrementarea pozitiv a contorului comenzilor, care indic asupra regiunii 0005, ce conine comanda urmtoare. ns dispozitivul de dirijare decodific comanda Oprire i ntrerupe lucrul microprocesorului. Programul este executat n ansamblu. n acumulator se afl datele (numrul 35) rezultatul adunrii numerelor OC i 29. Executarea programului integru consum ase microcicluri, ce alctuiesc 6 mks la durata fiecrui microciclu de 1 mks. Aceasta nseamn, c ntr-o secund microprocesorul poate executa 166667 atare programe. Adunarea cu transfer n afara celor patru comenzi considerate Adunarea, fiineaz nc patru varieti ale acestor comenzi. Ele sunt foarte
39

asemntoare primelor patru tipuri de comenzi, ns se deosebesc prin aceea, c la executarea lor n adunare particip coninutul rangului de transfer al registrului strilor. n aa mod, coninutul regiunii memoriei se adaug coninutului acumulatorului, iar dup aceea la suma obinut se adaug valoarea rangului transferului din registrul strii. Comanda Adunarea cu transfer reprezint un mijloc unic, cu ajutorul cruia MP poate aduna simultan trei numere. n toate alte cazuri, cnd trebuie de adunat trei numere, este necesar a utiliza nti o comand Adunarea, pentru a aduna mai inti primele dou numere, iar ulterior, cu ajutorul nc a unei comenzi Adunarea, de adugat al treilea numr la suma primelor dou numere. Comanda Adunarea cu transfer d posibilitate de a efectua adunarea a dou numere mpreun cu transferul, obinut n operaia anterioar. Evident, la fiecare executare a comenzii Adunarea cu transfer, n modul corespunztor, se stabilesc n registrul strilor rangurile, ce indic asupra egalitii rezultatului cu zero, prezenei la el a semnului minus i prezena transferului din rangul superior. De aceea, coninutul iniial i al acumulatorului i al registrului strii, este ca i la executarea altor comenzi Adunarea. La comenzile Adunarea cu transfer se refer urmtoarele comenzi:
ADUNAREA CU REGISTRU I CU TRANSFER ACDR A+r+CA ADUNAREA DIRECT CU MEMORIA I CU TRANSFER ACD M,Adresa A+M+CA ADUNAREA INDIRECT CU MEMORIA I CU

40

TRANSFER ACI M M+A+CA

Cu ajutorul unui cuvnt al microprocesorului cu 8 ranguri, pot fi reprezentate numai numerele ce se afl n limitele de la 0 pn la 255. Pentru reprezentarea numerelor mai mari dup valoare dect 255, este necesar a folosi mai mult dect un cuvnt de date. Noiunea de aritmetic de exactitate ridicat nseamn folosirea pentru reprezentare a unui numr cu dimensiunea de date mai mare dect un cuvnt. n lucrul cu MP cu 8 ranguri, apelnd la formatul dublu, adic folosind dou cuvinte pentru imaginea unui numr, pot fi reprezentate numerele de la 0 pn la 65 535. Utiliznd formatul triplu, se dovedete a fi posibil de a reprezenta numerele de la 0 pn la 167 772 215. La adunarea numerelor de format dublu, mai nti se adun octetele lor inferioare. Aceasta se face cu ajutorul comenzii obinuite Adunarea la a crei executare nu se folosete valoarea transferului. La aceasta, se nelege, se poate forma transferul din rangul superior al octetului inferior al sumei. Dup aceea, prin intermediul comenzii Adunarea cu transfer se efectueaz adunarea octetelor superioare ale numerelor. O aa comand se folosete n cazul, dac la adunarea octetelor inferioare este produs transferul. Dac transferul are loc, atunci el particip la executarea comenzii Adunarea cu transfer, dac transferul din octetul inferior nu a fost format, la intrarea transferului se va avansa 0. Cnd numerele sunt reprezentate n formatul triplu, este necesar a realiza nc o comand Adunarea cu transfer. La executare acestei, a treia dup ordine comenzi, se adun octetele superioare ale dou numere ale formatului triplu. Transferul, produs n urma executrii ultimei operaii, ce intr n succesivitatea de operaii pentru procesarea aritmetic de exactitate ridicat, trebuie s lee pstrm, sau s le nlturm. n
41

majoritatea cazurilor se presupune c la executarea ultimei operaii, transferul nu se formeaz, adic este aplicat un format, suficient pentru amplasarea celui mai mare rezultat posibil mpreun cu octetul semnului. Termenii sumei i suma se mpart n octete superioare i inferioare. Pentru sumarea octeteor inferioare ale termenilor sumei, se utilizeaz adunarea simpl binar. Cu acest scop se folosete comanda Adunarea , n urma executrii creia se formeaz octetul inferior al sumei, precum i transferul. Dup terminarea acestei operaii, rangul transferului n registrul strilor se stabilete n 1. Pentru sumarea octetelor superioare a termenilor sumei e necesar de utilizat comanda Adunarea cu transfer. La executarea ei, valoarea unitar a bitului transferului particip n calcul. Comanda nregistrarea n memorie servete pentru indicarea regiunii, destinat pentru amplasarea sumei. Dac pe parcursul executrii programului apare transferul la adunarea octetelor superioare, el va fi pierdut. Cu alte cuvinte, programul dat poate aduna numai numerele binare fr semn, a cror sum nu depete 65 535 sau numerele binare cu semn, a cror sum se afl n limitele de la -32 768 pn la +32 767. Comanda SCDEREA Singura comand aritmetic, ce nu poate fi nlocuit este comanda Adunarea. MP poate executa scderea prin formarea codului invers celui scztor, adugnd 1 al rangului inferior i adunrii numrului obinut n aa mod cu cel de sczut. 1 logic n rangul superior este criteriul numrului negativ, iar 0 logic criteriul numrului pozitiv. Codul suplimentar de 8 ranguri d posibilitatea de a reprezenta numerele n limitele de la +127 pn la -128, incluznd 0. ns este mai rapid i mai uor de a nu crea un program special de scdere, ci de a pune realizarea acestei operaii direct
42

pe seama MP. Multe MP posed comenzi care nu sunt necesare, ns faciliteaz considerabil lucrul programatorului. Comanda Scderea tocmai se atribue la o atare grup de comenzi. V-om considera comanda Scderea. Rezultatul executrii comenzii Scderea este amplasat n acumulator. Valoarea iniial a desczutului se pierde. La Scdere se stabilesc, n modul corespunztor, trei ranguri ale registrului strilor. Toate comenzile considerate mai jos scad datele, asupra crora este indicaie n comand, din datele ce se afl n acumulator. Cu alte cuvinte, n acumulator totdeauna este amplasat desczutul. Adresa ce se afl n componena comenzii Scderea determin locul scztorului. Pentru executarea scderii servesc urmtoarele comenzi:
SCDEREA CU REGISTRUL SUBr A-rA

Dac rezultatul executrii comenzii este negativ sau nul sau dac apare semnalul mprumutului n rangul superior al rezultatului, rangurile corespunztoare ale registrului strilor se stabilesc n 1.
SCDEREA DIRECT CU MEMORIA SUB M,A A-MA

Al doilea i al treilea octete ale comenzii indic asupra regiunii memoriei, n care se afl scztorul. Rezultatul (diferena) se amplaseaz n acumulator. Coninutul iniial al acumulatorului se pierde.
SCDEREA INDIRECT CU MEMORIA SUI M, Adresa A-MA

Perechea de registru BC indic asupra regiunii memoriei, n care se afl scztorul. (Pentru ca comanda dat s poat fi utilizat, n perechea de registre BC trebuie s se conin adresa necesar).
SCDEREA CU DATELE DIRECTE SUB I, Datele A-DateleA
43

La comanda Scderea cu datele directe, coninutul celui de al doilea octet al comenzii se scade din coninutul acumulatorului. Analogic cu aceea c exist patru comenzi Adunarea fr transfer i patru comenzi Adunarea cu transfer, exist patru comenzi Scderea, a crei realizare nu presupune mprumut, i patru comenzi Scderea cu mprumut. mprumutul are loc atunci, cnd scztorul se dovedete a fi mai mare dect desczutul. La aceasta se stabilete n 1 rangul transferului (mprumutului). Dei la executarea acestor comenzi, de fapt are loc mprumutul, ele sunt numite Scderea cu transfer, deoarece n corespundere cu rezultatul executrii lor se stabilesc, n modul corespunztor, rangul transferului n registrul strii. Cu ajutorul comenzii Scderea cu transfer se poate executa scderea cu exactitate ridicat. Comenzile Scderea cu mprumut sunt analogice comenzilor Scderea , n care, dup cum se tie, mprumutul nu se produce, i se deosebesc numai prin aceea c la executarea lor particip bitul curent al transferului registrului strii. Ca i la realizarea altor comenzi Scderea, rezultatele se ncarc n acumulator. Rangurile rezultatului negativ al rezultatului nul i al transferului se stabilesc n 1, dac rezultatul are corespunztor semnul minus, este egal cu zero sau are loc mprumutul n rangul superior al rezultatului. Mai jos se prezint comenzile scderii cu transfer:
SCDEREA CU REGISTRU I CU TRANSFER SCBr A-r-CA SCDEREA DIRECT CU MEMORIA I CU TRANSFER SCB M, Adresa A-M-CA SCDEREA INDIRECT CU MEMORIA I CU TRANSFER SCI M,Adresa A-M-CA
44

SCDEREA CU DATELE DIRECTE I CU TRANSFER SCB I, Datele A- Datele-CA

2. Comenzile logice
2.1 Comenzile I, SAU, SAU ELIMINATORIU i INVERSIA. Multe din utilizrile dispozitivelor MP presupun procesarea nu aritmetic, ci logic a informaiei. Microcalculatorul electronic poate nlocui o mulime de scheme logice. Asupra datelor poate fi efectuat operaia I, SAU, datele, de asemenea, pot fi procesate cu ajutorul operaiilor logice SAU ELIMINATORIU i NEGARE. Toate aceste operaii pot fi executate cu ajutorul microprocesorului considerat mai sus. Cert c la realizarea fiecrei funcii logice, pot fi utilizate diferite forme de adresare. n seciunea dat, vom lua cunotin de diversitile posibile ale funciilor logice. Toate operaiile logice sunt bit cu bit. La una din intrrile ei, se aplic valoarea bitului acumulatorului, iar la alta valoarea bitului corespunztor al cuvntului amplasat n regiunea memoriei sau n registru. n MP cu 8 ranguri sunt prevzute opt scheme asemntoare cu dou intrri cte una pentru fiecare rang al cuvntului MP. La terminarea operaiei logice rezultatul se ncarc n acumulator. Dac rezultatul este egal cu 0 sau dac rangul lui superior este egal cu 1, atunci se efectueaz stabilirea n 1 a bitului corespunztor al registrului strii. Valoarea bitului de transfer nu depinde de rezultatul executrii comenzilor logice I,SAU i
45

SAU ELIMINATORIU. Aceasta nseamn c se pierde coninutul iniial al acumulatorului i cel al bitului dat. Comanda I (AND) poate fi de urmtoarele patru tipuri:
I asupra registrului i acumulatorului ANDr ArA I asupra memoriei adresate direct i acumulatorului AND M, Adresa I asupra memoriei adresate indirect i acumulatorului ANI M A MA I asupra datelor directe i acumulatorului AND I, Datele A DateleA SAU asupra registrului i acumulatorului OR r A+rA SAU asupra memoriei adresate direct i acumulatorului OR M,Adresa A+MA SAU asupra memoriei adresate indirect i acumulatorului ORI M A+MA SAU asupra datelor directe i acumulatorului OR I, Datele A+DateleA SAU ELIMINATORIU asupra registrului i acumulatorului XOR R ArA SAU ELIMINATORIU asupra memoriei adresate indirect i acumulatorului XOR M,Adresa AMA SAU ELIMINATORIU asupra memoriei adresate indirect i acumulatorului
46

XOI M

AMA

SAU ELIMINATORIU asupra datelor directe i acumulatorului XOR I, Datele ADateleA

Operaiile logice se execut rang cu rang

3. Comanda COMPARAREA
Apare frecvent situaia, cnd trebuie s compari dou numere binare. De regul, fenomenul este legat de necesitatea de a clarifica, sunt oare aceste numere egale? Uneori trebuie s stabileti, care din ele este mai mare sau mai mic. Faptul egalitii a dou numere poate fi revelat cu ajutorul comenzii sau eliminatoriu. Se poate, de exemplu, utiliza n acest scop comanda sau eliminatoriu asupra datelor directe i acumulatorului. Cu ajutorul acestei comenzi, se stabilete sunt oare egale datele ce le conine acumulatorul i al doilea octet al comenzii. Pentru realizarea acestei verificri asupra egalitii, cuvntul, egalitatea cruia fa de alt cuvnt trebuie de verificat, este transferat n acumulator. Ulterior se execut comanda sau eliminatoriu asupra datelor directe i acumulatorului. Dac coninutul iniial al acumulatorului i cuvntul direct al datelor sunt egale, rezultatul n acumulator conine zerouri n toate rangurile. Metoda descris de comparare a dou cuvinte are un neajuns considerabil. La executarea comparrii se pierde coninutul acumulatorului. Dac aceste date trebuie s fie folosite din nou, este necesar, ntr-un mod oarecare, a le memoriza naintea executrii comenzii sau eliminatoriu. Pentru acest scop, trebuie de introdus comenzi suplimentare.

47

O verificare analogic se poate realiza i cu ajutorul comenzii scderea. Datele etalon se scad din datele ce le conine acumulatorul. Dac aceste dou cuvinte de date sunt egale, se stabilete n 1 rangul rezultatului nul n registrul strii. Dac valoarea datelor n acumulator (A) este mai mic dect valoarea datelor etalon, atunci n 1 se stabilete rangul transferului, deoarece are loc mprumutul. Dac valoarea datelor n acumulator este mai mare dect valoarea datelor etalon, atunci nici unul din rangurile registrului strii nu se stabilete n 1. Cu ajutorul comenzii scderea se poate realiza nu numai verificarea la egalitate, ci i verificarea la <<mai mic>> i <<mai mare>>. n aa mod, comanda scderea acord mai multe posibiliti pentru efectuarea comparrii. ns comparrii cu ajutorul comenzii scderea i este inerent acelai neajuns, ca i comparrii cu ajutorul comenziisau eliminatoriu, adic pierderea coninutului iniial al acumulatorului la executarea operaiei. De acest neajuns este lipsit comanda compararea. Executarea acestei comenzi este analogic executrii comenzii scderea, ns rezultatul ei nu se ncarc n acumulator. Dei la terminarea operaiei datele iniiale n acumulator nu se schimb, rangurilor zerografiate i negative ale rezultatului, precum i rangului transferului I se atribuie valori, ce corespund particularitilor rezultatului obinut. n comanda compararease utilizeaz metodele obinuite de adresare, adic cu ajutorul ei se poate compara coninutul oricrui registru i acumulatorului, regiunii de memorie adresat direct i acumulatorului, regiunii de memorie adresat indirect i acumulatorului, octetului de date directe i acumulatorului. Patru tipuri ale acestei comenzi sunt prezentate mai jos:
COMPARAREA registrului cu acumulatorul CMP r A-r COMPARAREA memoriei adresate direct cu acumulatorul
48

CMP M, Adresa

A-M

COMPARAREA memoriei adresate indirect cu acumulatorul CMI M A-M COMPARAREA datelor directe cu acumulatorul CMP I, Datele A- Datele

4. Comenzile deplasrii simple i a celei ciclice


Comenzile DEPLASAREA i DEPLASAREA CICLIC sunt de un octet i cu dou cicluri. Dac rezultatul executrii oricrei dintre ele conine 1 n rangul superior sau este egal cu zero, atunci se stabilete n 1 rangul corespunztor al registrului strii. Rangul transferului particip la executarea acestor operaii, i valoarea lui se schimb pe mersul transmiterii datelor n el i din el.
DEPLASAREA CICLIC A ACUMULATORULUI N STNGA RAL

Prin comanda Deplasarea ciclic a cumulatorului n stnga, toate datele ce se afl n acumulator i rangul transferului se deplaseaz cu o poziie n stnga, i.e. coninutul fiecrui rang se deplaseaz n poziia rangului vecin, ce are valoare (RSV). Coninutul rangului superior al acumulatorului se deplaseaz n rangul transferului (C) al registrului strii. Coninutul rangului transferului registrului strii se deplaseaz n rangul inferior ce are valoarea acumulatorului (RIV).

49

DEPLASAREA CICLIC A ACUMULATORULUI N DREAPTA RAR

Prin comanda Deplasarea ciclic a acumulatorului n dreapta, datele se deplaseaz n direcie opus. Coninutul rangului inferior al acumulatorului se deplaseaz n rangul transferului al registrului strii. Coninutul rangului transferului este readresat n rangul superior al acumulatorului. Coninutul fiecrui rang al acumulatorului se deplaseaz n rangul inferior vecin. La utilizarea comenzilor deplasrii ciclice, nu au loc pierderi de date, deoarece datele se deplaseaz pe un contur nchis. Aa, de exemplu, dac se execut deplasarea ciclic n microprocesorul cu 8 ranguri de nou ori, atunci coninutul final al acumulatorului i al rangului transferului vor coincide pe deplin cu cel iniial.
DEPLASAREA ACUMULATORULUI N STNGA SAL

Comanda Deplasarea acumulatorului n stnga este numit la fel i comanda Deplasarea aritmetic n stnga. Ea se utilizeaz des pentru realizarea operaiei de nmulite. Dup cum se poate vedea din schema prezentat mai sus, la executarea acestei comenzi, coninutul rangului superior al acumulatorului este transmis n rangul transferului registrului strii. n rangul inferior al acumulatorului, la aceasta se ncarc 0. Coninutul
50

fiecrui rang al acumulatorului se deplaseaz n rangul superior vecin, iar coninutul rangului transferului (indiferent de valorile lui) se pierde.
DEPLASAREA ACUMULATORULUI N DREAPTA SAR

Comanda Deplasarea acumulatorului n dreapta este analogiccomenzii Deplasarea acumulatorului n stnga. Coninutul rangului inferior al acumulatorului este transmis n rangul transferului registrului strii. Coninutul tuturor altor ranguri ale acumulatorului se deplaseaz n dreapta cu o poziie. O particularitate deosebit a comenzii Deplasarea acumulatorului n dreapta este aceea c rangul superior al acumulatorului, n procesul executrii comenzii, i pstreaz valoarea sa. n loc de a nscrie n rangul dat 0 logic, comanda duce n el aceeai valoare, care a avut loc pn la deplasare. Pstrarea valorii rangului superior al acumulatorului este necesar la executarea unor operaii aritmetice n cod suplimentar. Fiineaz dou circumstane, ce trebuie luate n consideraie, la lucrul cu comenzile deplasrii ciclice i a celei simple. n primul rnd, oricare din operaiile executate astfel este echivalent nmulirii sau mpririi numrului la 2. A doua circumstan, care trebuie luat n consideraie la utilizarea comenzilor deplasrii simple, const n aceea c datele deplasate dup limitele registrului se pierd. La executarea comenzilor deplasrii ciclice, aceasta nu are loc, deoarece n atare caz datele circul pe un contur nchis. 1. Completai formularul programului, introducei-l n memorie i executai-l.
51

Operaii aritmetice Mnemonica


MVI A, C2 H LXI B, 6E12 H ADD B ADC C LXI H, 12F5 H LXI D, 20DE H DAD D DAD B MVI A, 38 H ADI 15 H DAA SUI, 24 MOV A, L SUB E MOV L, A MOV A, H SBB D MOV H, A HLT

Comentariul
; ncrcai datele n () ; ncrcai datele n () ; () + () ; () + () +indicator de condiie () ; ncrcai datele pentru adunarea ; hexazecimal ; (HL) + (DE) (HL) ; (HL) + (BC) (HL) ; ; () + (D8) (A) ; ; scderea hexazecimal () D8 (A) ; ; scdem octetul inferior (A) (E) (A) ; ; ; (A) (D) indicator de condiie () ; ; oprire

Explicai operaiile executate de program. 1. Explicai programul n regimurile comand cu comand i ciclu cu ciclu. Executnd exerciiul, analizai starea magistralelor de adrese i de informaie la fiecare pas. 2. Completai formularul programului, ncrcai-l n memorie i executai-l. Operaii logice. Mnemonica
MVI A, 95 H ORI, 20 H XRI, 63 H RAL
52

Comentariul
; ; ; ;

ANI, F0 H RLC XRI 42 H RRC CMA RAR MOV C, A STC XRA A XRA C HLT

; ; ; ;

Explicai operaiile executate de program. 2. Executai programul n regimurile comand cu comand i ciclu cu ciclu. Executnd exerciiul, analizai starea magistralelor de adrese i informaie la fiecare pas. Scoaterea din circuit a CMPS depresai, dac este presat tasta /; deconectai CMPS, depresnd tasta ~. Descrierea pe scurt a comenzilor de baz ale MP KP580BM80A Notaiile convenionale: R,R1, R2 registrul; RP perechea de registre M celula de memorie cu adresa n HL; D8 octetul de date; D16 cuvntul de date; ADR adresa n form explicit
MOV R1, R2 MVI R, D8 ; transfer (R2) (R1) ; (D8) (R)
53

LXI RP, D16 LDA ADR STA ADR LDAX RP STAX RP SHLD ADR PUSH RP POP RP ADD R ADC R ADI D8 ACI D8 DAD RP SUB R SBB R SUI D8 SBI D8 INR R DCR

; D16 (RP) ; ncrcarea acumulatorului din memorie cu adresa ADR ; (A) (M) u adresa ADR ; (M) (A) pe adresa RP ; (A) (M) pe adresa n RP ; (HL) (M) pe ADR ; (RP) n stiv ; stiva n (RP) ANA R ; (R) ^ (A) (A) ANI D8 ; (A) ^ D8 (A) XRA R ; (R) (A) (A) XRI D8 ; (A) D8 (A) ORA R ; (R) (A) (R) CMP R ; ompararea(R) i (A) CPI D8 ; ompararea D8 i (A) RLC ; ciclul deplasrii n stnga RRC ; ciclul deplasrii n dreapta RAL ; deplas. stnga prin transfer RAR ; deplas. dreapta prin transfer CMA ; inversia () DAA ; corecia zecimal

; (A) + (R) (A) ; (A) + (R) + C (A) ; (A) + D8 (A) ; (A) + D8 + C (A) ; (HL) + (RP) (HL) ; (A) (R) (A) ; (A) (R) C (A) ; (A) D8 (A) ; (A) D8 C (A) ; (R) + 1 (R) ; (R) - 1 (R)

INX RP ; (RP) + 1 (RP) DCX RP ; (RP) 1 (RP) JMP ADR JC, JNC, JZ, JNZ, JP, JM, JPE, JPO ADR CALL ADR CC, CNC, CZ, CNZ, CP,

; salt necondiionat pe ADR ; salturi n condiiile: C depire, zero, P plus, M minus, PE paritate, PO imparitate. ; apel la subprogram

54

CM, CPE, CPO ADR RET RC, RNC, RZ, RNZ, RP, RM, RPE, RPO IN D8 OUT D8 EI DI NOP HLT

; apel la subprogram n condiia ; revenire din subprogram ; revenire n condiia ; introducere din canalul D8 n acumulator ; extragerea din acumulator n canal ; permisiunea de ntrerupere ; interzicerea de ntrerupere ; nu exist operaie ; prire

Sistemul de comenzi ale microprocesorului KP580BM80A Cod 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 Mnemonica NOP LXI B, D16 STAX B INX B INR B DCR B MVI B, D8 RLC DAD B LDAX B DCX B INR C DCR C MVI C, D8 RRC LXI D, D16 STAX D INX D INR D Cod 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 Mnemonica LXI SP, D16 STA ADR INX SP INR M DCR M MVI M, D8 STC DAD SP LDA ADR DCX SP INR A DCR A MVI A, D8 CMC MOV B, B MOV B, C MOV B, D MOV B, E MOV B, H
55

Cod 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74

Mnemonica MOV H, B MOV H, C MOV H, D MOV H, E MOV H, H MOV H, L MOV H, M MOV H, A MOV L, B MOV L, C MOV L, D MOV L, E MOV L, H MOV L, L MOV L, M MOV L, A MOV M, B MOV M, C MOV M, D MOV M, E MOV M, H

15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 90 91 92 93 94 95 96

DCR D MVI D, D8 RAL DAD D LDAX D DCX D INR E DCR E MVI E, D8 RAR LXI H, D16 SHLD ADR INX H INR H DCR H MVI H, D8 DAA DAD H LHLD ADR DCX H INR L DCR L MVI L, D8 CMA SUB B SUB C SUB D SUB E SUB H SUB L SUB M

45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F C0 C1 C2 C3 C4 C5 C6

MOV B, L MOV B, M MOV B, A MOV C, B MOV C, C MOV C, D MOV C, E MOV C, H MOV C, L MOV C, M MOV C, A MOV D, B MOV D, C MOV D, D MOV D, E MOV D, H MOV D, L MOV D, M MOV D, A MOV E, B MOV E, C MOV E, D MOV E, E MOV E, H MOV E, L MOV E, M MOV E, A RNZ POP B JNZ ADR JMP ADR CNZ ADR PUSH B ADI D8
56

75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F F0 F1 F2 F3 F4 F5 F6

MOV M, L HLT MOV M, A MOV A, B MOV A, C MOV A, D MOV A, E MOV A, H MOV A, L MOV A, M MOV A, A ADD B ADD C ADD D ADD E ADD H ADD L ADD M ADD A ADC B ADC C ADC D ADC E ADC H ADC L ADC M ADC A RP POP PSW JP ADR DI CP ADR PUSH PSW ORI D8

97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA

SUB A SBB B SBB C SBB D SBB E SBB H SBB L SBB M SBB A ANA B ANA C ANA D ANA E ANA H ANA L ANA M ANA A XRA B XRA C XRA D XRA E XRA H XRA L XRA M XRA A ORA B ORA C ORA D ORA E ORA H ORA L ORA M ORA A CMP B CMP C CMP D

C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D7 D8 D9 DA DB DC DD DF E0 E1 E2 E3 E4 E5 E7 E8 E9 EA

RST 0 F7 RZ F8 RET F9 JZ ADR FA FB CZ ADR FC CALL ADR FD ACI D8 FE RST 1 FF RNC POP D JNC ADR OUT D8 CNC ADR PUSH D D6 SUI D8 RST 2 RC JC ADR IN D8 CC ADR DE SBI D8 RST 3 RPO POP H JPO ADR XTHL CPO ADR PUSH H E6 ANI D8 RST 4 RPE PCHL JPE ADR
57

RST 6 RM SPHL JM ADR EI CM ADR CPI D8 RST 7

BB BC BD BE BF

CMP E CMP H CMP L CMP M CMP A

EB ED EF

XCHG EC CPE ADR EE XRI D8 RST 5

Lucrare de laborator nr. 4


Alctuirea celor mai simple programe n coduri interne

Comenzile de salt i de apel al subprogramului Comenzile de salt i de apel al subprogramului permit a schimba succesivitatea executrii comenzilor programului. Exist dou procedee de schimbare a acestei succesiviti. Primul din ele este numit necondiionat. Conform acestui procedeu, succesivitatea executrii programului este supus schimbrii de fiecare dat, cnd se realizeaz o comand bine determinat. n corespundere cu cel de al doilea procedeu, succesivitatea executrii programului este determinat de unele
58

condiii, i.e. se schimb n acel caz i numai acel ,n care valoarea condiiei indicate coincide cu cea dat. Posibilitile mari ale MP, n mare msur sunt determinate de capacitatea lui de a lua decizii. Comenzile de salt i de apel la subprogram sunt una din prile componente ale procesului de luare a deciziilor. Ca rezultat al executrii comenzilor de comparare, de procesare aritmetic i logic a datelor, se produc valorile rangurilor rezultatelor nule i negative i ale rangului transferului. n registrul strii, la care deseori se afl fixate n 1 mai mult dect unul din aceste ranguri, comenzile de salt i de apel la subprogram verific valorile rangurilor registrului strii i determin mersul ulterior al executrii programului n dependen de rezultatele verificrii. Comenzile de salt, numite de asemenea comenzi de ramificare, permit a organiza n program cicluri i bifurcri. Comenzile de apel la subprogram dau posibilitate de a reduce volumul programelor elaborate pe contul utilizrii repetate a subprogamelor. Prezena n MP a stivei cu indicatorul stivei face posibil ntoarcerea n programul de baz dup executarea subprogramului. 4.1. Comenzile de salt sau de ramificare Comenzile de salt sau de ramificare lrgesc posibilitile MP, permit de a lua decizii pe parcursul executrii programului. Ele determin direcia ulterioar de executare a programului n dependen de rezultatul verificrii valorilor condiiilor. Verificrii trebuie s fie supuse valorile rangurilor de transfer, rezultatelor nule i negative. Aa comenzi ale MP nostru ipotetic se numesc comenzile de salt. Comenzi analogice, utilizate n unele tipuri de MP, pot fi numite comenzi de ramificare. De regul, ntre aceste clase de comenzi, diferenele sunt nesemnificative sau lipsesc n general. ns, lucrnd cu MP concret, este necesar de a se familiariza minuios cu materialele firmei productoare, ce se refer la repertoriul de instruciuni,
59

pentru a se clarifica, ce se are n vedere n fiecare caz sub comanda de salt sau de ramificare. Mai jos vor fi considerate comenzile de salt, utilizate n MP. Fiecare din ele are lungimea de 3 octei i se execut n cinci microcicluri. n toate aceste comenzi se utilizeaz adresarea direct. Comenzile de salt pentru majoritatea MP reale se reduc de asemeni la adresarea direct. n comenzile de tipul SALT DIRECT 2 octete, ce urmeaz dup codul operaiei de salt i care reprezint prin sine adresa, indic o regiune a memoriei. Regiunea indicat a memoriei conine comanda ce trebuie s fie executat urmtoarea. Aceast regiune a memoriei se poate afla att n imediata apropiere de regiunea curent utilizat, precum i la o ndeprtare considerabil de ea. Cnd se execut comanda de salt, atunci nu rmne nici un fel de informaie despre aceea, n care punct a avut loc ieirea din program. Dac ulterior este necesar a se ntoarce n programul iniial, este nevoe de a pstra ntr-un mod oarecare informaia despre punctul de ieire. La realizarea comenzilor de alt tip, memorizarea adresei de ntoarcere are loc automat. Aa comenzi se utilizeaz, cnd trebuie s te ntorci n programul iniial dup executarea subprogramului. La utilizarea comenzii de salt, se schimb coninutul contorului comenzilor. Coninutul celui de al doilea i treilea octete ale comenzii de salt este transferat n contorul de instruciuni n timpul fazei de executare. Atunci la ciclul urmtor al selectrii, MP extrage comanda din regiunea memoriei, asupra creia indic al doilea i al treilea octete al comenzii de salt. n aa mod, are loc saltul n alt punct al programului. Acum se execut una dup alta comenzile unei noi succesiviti. Aceasta se prelungete pn cnd nu va fi din nou executat comanda de salt. Vom considera apte comenzi tipice ale saltului:
SALT NECONDIIONAT
60

JMP, Adresa

Octetul superior al adresei Octetul superior al Contorului de Comenzi Octetul inferior al adresei octetul inferior al Contorului de Comenzi (CC). Denumirea acestei comenzi vorbete despre aceea cum ea se execut. La ea nu se efectueaz nici un fel de verificri. n contorul comenzilor al MP automat se ncarc coninutul octetelor al doilea i al treilea ai comenzii. Executarea programei continu de la acest nou punct iniial, cnd ncepe ciclul de selecie a comenzii pe adresa indicat n comand
SALT, DAC ZERO JZ Adresa

Dac Z=1, atunci Octetul superior al adreseiOctetul superior al CCOctetul inferior al adreseiOctetul inferior al CC.
SALT, DAC NU ZERO JNZ,Adresa

Dac Z=0, atunci Octetul superior al adresei Octetul superior al CCOctetul inferior al adreseiOctetul inferior al CC. Comenzile Salt, dac zero i Salt, dac nu zero verific valoarea rangului rezultatului nul al registrului de stare. La executarea comenzii Salt, dac zero coninutul contorului comenzilor se schimb n situaia cnd valoarea registrului de stare indicat are valoarea 1, i.e. atunci cnd este 0 coninutul tuturor rangurilor acumulatorului. La executarea comenzii Salt, dac nu zero, coninutul contorului de instruciuni se schimb, dac rangul rezultatului nul n registrul strii are valoarea 0. n aa mod, n acest caz saltul are loc, atunci cnd nu toate rangurile acumulatorului sunt egale cu 0 (dup cum este cunoscut, rangul rezultatului nul al registrului de stare are valoarea 0, dac coninutul a cel puin unu din rangurile acumulatorului este egal cu 1).

61

SALT, DAC TRANSFER JC,Adresa

Dac C=1, atunci Octetul superior al adreseiOctetul superior al CC Octetul inferior al adresei Octetul inferior al CC.
SALT, D AC NU TRANSFER JNC, Adresa

Dac C=0, atunci Octetul superior al adreseiOctetul superior al CC Octetul inferior al adresei Octetul inferior al CC. La executarea comenzilor de Salt, dac transfer, i Salt, dac nu transfer se verific valoarea rangului transferului registrului de stare. Cnd se execut comanda de Salt, dac transfer,, atunci coninutul la al doilea i al treilea octete se ncarc n contorul de instruciuni, dac rangul transferului registrului de stare este fixat la 1. n procesul realizrii programului Salt, dac nu transfer, coninutul celui de al doilea i al treilea octete ale ei se ncarc n contorul de instruciuni, dac rangul transferului registrului de stare are valoarea egal cu 0. Ambele aceste comenzi se utilizeaz frecvent dup executarea comenzilor aritmetice.
SALT, DAC NEGATIV JN,Adresa

Dac N=1, atunci Octetul superior al adresei Octetul superior al CC Octetul inferior al adresei Octetul inferior al CC.
SALT, DAC NU NEGATIV JNN, Adresa

Dac N=0, atunci Octetul superior al adresei Octetul superior al CC Octetul inferior al adresei Octetul inferior al CC. Comanda de Salt, dac nu negativ verific, de asemenea valoarea rangului rezultatului negativ, ea realizeaz saltul, dac
62

rangul se afl n starea 0. Aceast comand poate fi numit la fel Salt, dac pozitiv. Evident, dac rangul rezultatului negativ are valoarea 0, atunci coninutul acumulatorului este un numr pozitiv. 4.2. Comenzile de apel la subprogram Exist o mulime de situaii, cnd este necesar de realizat ieirea din programul de baz, ns ulterior s te rentorci din nou la ea. Rentoarcerea trebuie s fie efectuat anume n acel loc din care a avut loc saltul. Una din metodele de soluionare a problemei const n utilizarea celei de a doua comenzi de salt. Cu ajutorul comenzii de salt necondiionat sau condiionat are loc saltul la subprogram, iar la terminarea executrii subprogramului prin intermediul altei comenzi de salt se realizeaz rentoarcerea n acel loc al programului de baz, din care a fost efectuat saltul. ns pentru aceasta este necesar de a cunoate dinainte, n care punct al programului de baz a avut loc saltul. Este mai uor de atins acelai scop cu ajutorul comenzii de apel la subprogram. Subprogramul reprezint un fragment al programului, adresarea la care poate avea loc n orice punct al programului de baz. Cnd are loc apelul la subprogram, iniial executrii sale, ea realizeaz aciuni de memorizare a coninutului curent al contorului de instruciuni. Cnd executarea subprogramului se termin, cu ajutorul a unei singure comenzi a MP se indic coninutul iniial al contorului de instruciuni trebuie s fie extras din memorie. Aceast informaie i este suficient MP pentru a realiza rentoarcerea n succesivitatea ntrerupt a comenzilor programului de baz. Organizarea subprogramului permite de a se lipsi de scrierea repetat a unuia i aceluiai fragment al programului. Se nelege, c n aa mod se atinge economie de memorie. Partea general ce se repet a programului se nscrie n memorie, de asemenea, numai o dat.
63

La lucrul cu subprogramele se utilizeaz stiva MP. Stivaeste o regiune a memoriei n care temporar se pstreaz informaia necesar pentru realizarea rentoarcerii n program dup executarea subprogramului. n unele MP stiva reprezint un ir de registre interne, i.e. registre plasate n nsui MP. ns stivele a celor mai multe MP sunt plasate n memorie. Starea stivei este reflectat n unul din registre, dup analogia cu perechea de registre BC i este numit indicatorul stivei. n majoritatea MP, indicatorul stivei este performat n forma unui registru special. La adresarea ctre subprogram coninutul curent al contorului de instruciuni se ncarc n stiv. De fiecare dat cnd n stiv se plaseaz ! octet de informaie, se realizeaz incrementarea negativ a indicatorului stivei. Stiva se completeaz n direcia descreterii valorilor de adrese ale memoriei. Aadar, la apelul la subprogram coninutul curent al contorului de instruciuni este memorizat n stiv. Ulterior n contorul de instruciuni se ncarc adresa regiunii memoriei, de la care trebuie s se nceap executarea subprogramului. Aceast adres se ia din al doilea i al treilea octete al apelului la subprogram. n acelai timp n stiv se pstreaz cu grij coninutul vechi al contorului de instruciuni. Cnd executarea subprogramului se termin, la comanda Rentoarcere, valoarea indicatorului stivei este incrementat cu 1. Din stiv se extrage coninutul contorului de instruciuni, ce se pstra acolo. nscrierea informaiei n stiva microprocesorului se numete ncrcarea datelor n stiv, iar citirea ei din stiv extragerea datelor din stiv. Evident, c nivelul posibil de includere (etajare) a subprogramelor este determinat de numrul de regiuni-celule , pe care le posed stiva. Trebuie de inut cont, c spaiul de memorie, rezervat pentru stiv, nu poate fi simultan utilizat de alte pri ale programului. Indicatorul stivei unui MP cu 8-ranguri, de regul, are lungimea de 16 bii. Ca urmare, n caz de necesitate, stiva poate
64

ocupa pn la 65 536 octete de memorie. ns, practic, dac volumul stivei crete peste msur, atunci are loc suprapunerea lui cu regiunea de lucru a memoriei. La deteriorarea informaiei, ce se afl n stiv, lucrul sistemului MP se ncalc, deoarece MP nu se poate ntoarce la executarea programului iniial. Cnd executarea subprogramului se termin, din stiv se extrage valoarea contorului de instruciuni. La terminarea subprogramului de nivelul doi de includere, se nltur din stiv valoarea contorului de instruciuni de nivelul nti de includere. Ea se ncarc n contorul de instruciuni, dup ce executarea subprogramului indicat poate fi reluat, ncepnd cu comanda, ce urma dup comanda de Apel la subprogram. Cnd se termin executarea subprogramului de nivelul nti, din stiv din nou se extrage valoarea de rnd a contorului de instruciuni. Acum se reia executarea programului de baz, ncepnd cu comanda, ce urmeaz dup comanda de Apel la subprogram n programul de baz. ntoarcerea n punctul iniial al programului sau subprogramului se realizeaz cu ajutorul unei comenzi, care se afl la sfritul subprogramului inclus. Aceast comand se numete Rentoarcere din subprogram, i este descris mai jos. Este o comand de un octet cu patru cicluri. MP considerat aici este asigurat numai cu comanda simpl Rentoarcere din subprogram, ns deseori MP posed diferite comenzi de rentoarcere la ndeplinirea oricrei condiii. Comenzile de Apel la subprogram a MP nostru ipotetic au lungimea de 3 octete i se realizeaz n decurs de cinci microcicluri. n toate aceste comenzi ,se utilizeaz adresarea direct. Exist urmtoarele comenzi de apel la subprogram.
APEL LA SUBPROGRAM NECONDIIONAT CAL, Adresa CC Stiva

Octetul superior al adresei Octetul superior al contorului de instruciuni.


65

Octetul inferior al adresei Octetul inferior al contorului de instruciuni. La executarea acestei comenzi nici un fel de verificri nu se efectueaz, i.e. apelul la subprogram are loc n orice caz.
APEL LA SUBPROGRAM, DAC ZERO CY, Adresa

Dac Z=1, atunci CCStiv Octetul superior al adresei Octetul superior al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni.
APEL LA SUBPROGRAM, DAC NU ZERO CNZ,Adresa

Dac Z=0, atunci CCStiv Octetul superior al adresei Octetul superior al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni. La executarea comenzilor Apel la subprogram, dac zero i Apel la subprogram, dac nu zero se verific valoarea rangului rezultatului nul al registrului de stare. Dup analogie cu comenzile corespunztoare ale saltului comenzile date pot fi numite Apel la subprogram, dac egal i Apel la subprogram, dac nu egal.
APEL LA SUBPROGRAM, DAC TRANSFER CC, Adresa

Dac C=1, atunci CC Stiva Octetul superior al adresei Octetul superior al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni.
APEL LA SUBPROGRAM, DAC NU-I TRANSFER CNC, Adresa

Dac C=0, atunci CC Stiva Octetul superior al adresei Octetul superior al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni. La executarea comenzilor,Apel la subprogram, dac transfer i Apel la progran, dac nu transfer se verific
66

valoarea rangului de transfer al registrului de stare. De regul, aceste comenzi se execut dup comenzile procesrii aritmetice.
APEL LA SUBPROGRAM, DAC MINUS CN, Adresa

Dac N=1, atunci CC Stiva Octetul superior al adresei Octetul superiore al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni.
APELUL LA SUBPROGRAM, DAC NU MINUS CM,Adresa

Dac N=0, atunci CC Stiva Octetul superior al adresei Octetul superior al contorului de instruciuni. Octetul inferior al adresei Octetul inferior al contorului de instruciuni.
RENTOARCEREA DIN SUBPROGRAM RET, StivaCC

La executarea comenzii Rentoarcerea din subprogram, MP extrage din stiv valoarea contorului de instruciuni, la care a avut loc ieirea din programului nivelului anterior, i ncarc aceast valoare n contorul de instruciuni. Comenzii Rentoarcerea din subprogram nu i se comunic nimic referitor , la ce nivel de includere se execut subprogramul i de cte ori a avut loc apelul la acest subprogram. n indicatorul stivei aa fel de informaie de asemenea nu se conine. Executnd comandaRentoarcerea din subprogram, MP pur i simplu se ntoarce la acea valoare a contorului, ce a fost ncrcat n stiv ultima. n aa mod, MP nu poate nicidecum s determine, nu sunt oare datele, ce se afl n stiv i n indicatorul stivei, incorecte. Iat de ce deteriorarea ntmpltoare a coninutului stivei duce la funcionarea improprie a sistemului MP. Subprogramele servesc pentru realizarea oricrui ir de pai ai programului, ce se repet des. Aa, de exemplu, n procesul soluionrii unei probleme matematice complexe, pot avea loc adresri multiple ctre pachetul de programe de procesare cu
67

acuratee ridicat a numerelor cu virgula flotant. Sunt reprezentate des n forma subprogramelor programului, ce servesc pentru realizarea reinerii, precum i a programului extragerii datelor, analizei datelor ale tastaturilor i vizualizatoarelor i altor dispozitive de procesare a informaiei utilizate des. Ordinea ndeplinirii lucrrii: I. Deplasarea masivului n memorie 1. Alctuii programul deplasrii masivului n memorie. Adresa iniial a masivului ce se deplaseaz-0A00H. Adresa iniial a masivului de destinaie se pstreaz n celulele de memorie 0800-0801H. Lungimea masivului n celula de memorie 0802H. 2. Utiliznd directiva <<>> definii masivul, ce se deplaseaz n forma (0A00)=00, (0A01)=01, (0A02)=02,, (0A0e)=0E, (0A0F)=0F, (0F10)=10. 3. ncrcai programul alctuit n memoria CMPS i cu ajutorul su deplasai masivul dat n regiunea de memorie cu adresa iniial n 0B00H. 4. Convingei-v c n urma executrii programului masivul iniial ntr-adevr se deplaseaz n celulele de memorie 0B00-0B10H. Explicai rezultatele i algoritmul programului. II. Determinarea sumei de control a masivului 1. Alctuii programa de calcul al sumei de control (SC) a unui masiv arbitrar. Adresa iniial a masivului se pstreaz n celulele de memorie 0800-0801H. Lungimea masivului n celulele 0802-0803H. 2. Utiliznd directiva <<>> definii masivul, ce se controleaz n forma prezentat n p.2 al exerciiului anterior.

68

3. ncrcai programul n memoria CMPS i calculai cu ajutorul acestuia SC a masivului definit. 4. Comparai rezultatul calculelor cu calculul analitic al SC.

Lucrare de laborator nr. 5


Studierea interfeei de intrare-ieire pe baza CISL KP580BB55A

Organizarea schimbului de date cu microcalculatorul n cod paralel Procesul asincron de schimb de date dintre microcalculator i dispozitivele de calcul (DC), precum i cerina distribuirii raionale a timpului de funcionare a microcalculatorului duc la necesitatea dezvoltrii dispozitivelor de interfa pentru organizarea schimbului de date. Sarcina acestor dispozitive const n recepionarea datelor dup semnalele de dirijare, formarea semnalelor, ce indic prezena datelor n dispozitive, furnizarea datelor dup semnalele de dirijare, precum i formarea semnalelor, ce indic disponibilitatea dispozitivului de a primi date noi. Procesul schimbului de informaie este organizat de ctre dispozitivul de interfa sub influena semnalelor de dirijare, parvenite de la microcalculator i DC.
69

Tehnologia CISL permite a crea dispozitive de interfa multifuncionale universale de intrare-ieire a informaiei paralele. Aa dispozitive pot fi programabile i utilizate pentru transmiterea bilateral a datelor i a semnalelor de dirijare. Microcalculatorul este informat despre disponibilitatea dispozitivului de schimb de date, de regul, dup semnalele de ntrerupere. Schimbul de date se realizeaz prin adresarea microcalculatorului ctre dispozitivul de intrare-ieire ca la adresa dememorie sau DC. n aa mod, dispozitivele de interfa de intrare-ieire a informaiei paralele permite de a coordona n timp procesul schimbului de date dintre microcalculator i DC la folosirea raional a timpului de funcionare a microcalculatorului. Dispozitivul programabil de intrare-ieire a informaiei paralele de diferit format (KP580BB55) Circuitul integral KP580BB55 reprezint un dispozitiv programabil, utilizat pentru intrarea-ieirea informaiei paralele. Circuitul permite a realiza schimbul de date de 8 ranguri pe trei canale A, B, i C. Direcia de schimb i regimul de funcionare pentru fiecare canal sunt date programat. Canalele servesc pentru transmiterea precum a datelor aa i a semnalelor de comand. n mod simplificat, circuitul const din registrul de comand i trei registre, destinate pentru intrarea-ieirea datelor. Structura circuitului KP580BB55 este prezentat n fig.5.1a, iar notaia ei convenional - n fig.5.1b. Destinaia bornelor de ieire DoD7 magistrala bidirecional a datelor pentru transmiterea datelor, cuvintelor de comand i informaiei strii; KAoKA7 magistrala bidirecional de date a canalelor A, KBo KB7 magistrala bidirecional de date a canalului B, KCo KC7 magistrala bidirecional de date a canalului C (magistralele canalelor de transmitere a datelor, semnalelor de
70

comand i interpelare la ntrerupere de la DC i MP CISL): DC selectarea dispozitivului; Ao A7 intrrile necesare pentru selectarea unuia din canalele A,B,C sau registrul de comand, Ct.(citire)-intrarea la care se aplic semnalul la furnizarea datelor din registrele interne ale circuitului la magistrala de date, R-intrarea utilizat pentru instalarea circuitului. La aplicarea semnalului la aceast intrare, coninutul tuturor registrelor interne se stabilete la zero. Vr(virgul) intrarea nscrierii datelor n circuit. Pentru microcalculator circuitul poate fi reprezentat ca constnd fie din patru DC, fie din patru adrese ale memoriei. Pentru formarea semnalului de selectare a dispozitivului aplicat la intrarea DC, se pot utiliza magistralele A2A15 ale magistralei de adrese ale microcalculatorului. La adresarea ctre circuit, ca la patru DC intrrile Ct i Vr trebuie s fie conectate la magistralele CtBB i VrBB ale magistralei de comand a microcalculatorului .

71

Fig.5-1a.Structura interfeei programabile paraleleKP580BB55A La adresarea ctre circuit ca la patru adrese ale memoriei intrrile ei Ct i Vr trebuie fie corespunztor conectate la magistralele Ct.MEMORIE i Vr.MEMORIE ale magistralei de comand a microcalculatorului. Circuitul poate ndeplini urmtoarele funcii: tamponarea (la regimul asincron de schimb de date); transformarea formatului datelor, racordarea microcalculatorului cu DC n regim de ntrerpere. Regimurile de lucru ale circuitului integral K580BB55 se actualizeaz la instalarea lui iniial. Patru registre subadrese ale circuitului includ n sine trei registre ale canalelor de intrareieire a datelor (A; B; C) i registrul de comand. Registrul ca72

nalului C poate fi subdivizat n dou registre a cte patru ranguri de intrare-ieire a datelor, la care se realizeaz accesul ca la registre separate independente (fig,5.1a). Este posibilitatea subdivizrii a trei canale n dou grupe (fig-5.1b). n aceste grupe, canalele A i B se utilizeaz pentru schimbul de date cu microcalculatorul, iar unele din magistralele canalului C pentru nscrierea semnalelor de comand. Regimurile de lucru ale canalelor se actualizeaz prin nscrierea cuvntului de comand n registrul de comand. Fiineaz trei tipuri de funcionare a circuitului Tipul 0 aceasta este intrarea-ieirea simpl a datelor pe trei canale cu 8 ranguri, la aceasta canalul C poate fi subdivizat n dou canale a cte 4 ranguri. Fiecare din canale poate fi utilizat separat pentru intrarea i ieirea informaiei. La funcionarea circuitului n acest regim nu sunt necesare nici un fel de semnale de comand suplimentare Tipul 1. Permite a realiza schimbul de date pe canalele A i B cu ajutorul semnalelor de comand, transmise pe canalul C. Pentru canalele A i B fiineaz patru combinaii de direcii reciproce de transmitere a datelor: a) canalele A i B funcioneaz n regimul de ieire a datelor; b) canalele A i B funcioneaz n regimul de intrare a datelor; c) canalul A funcioneaz n regimul de intrare, iar B n regim de ieire a datelor; d) canalul A funcioneaz n regim de ieire, iar B n regim de intrare a datelor.

73

Fig.5.1b.Notaia convenional a interfeei programabile paralele KP580BB55A Magistralele canalului C neantrenate pentru semnalele de comand pot fi utilizate pentru intrarea-ieirea informaiei. Direcia de transmitere a informaiei, pe aceste magistrale, este determinat de ctre cuvntul de comand, nscris n registrul de comand. Semnalele de comand, transmise pe magistralele canalului C la funcionarea canalelor A i B n regimul de intrare a datelor sunt prezentate n fig.5.2a. La semnalul CT ()rus informaia se nscrie n tamponul de intrare a datelor circuitului
74

(fig.5.1a). Semnalul de ieire BB ) rus se stabilete n <<1>> i este meninut n decursul ntregului interval de timp de la nscrierea datelor pn la momentul citirii lor de ctre microcalculator. Semnalele i nu pot fi utilizate pentru informarea MP despre gtina datelor referitor la intrare, deoarece intrarea poate fi realizat numai la terminarea semnalului .

Fig.5.2a. Diagramele de timp ale funcionrii microcalculatorului conform tipului 1 la utilizarea canalelor A i B pentru introducerea datelor n microcalculator. Pentru informarea MP despre gtina datelor referitoare la intrare, se folosete semnalul de ieire ( ), ce apare pe KCo, KC3 n dependen de canalul selectat. Permisiunea la furnizarea semnalului . o d bistabilul interior al permisiunii de ntrerupere din circuit ( ). Starea
75

bistabilului se stabilete numai programabil i nu vine la bornele exterioare ale circuitului. Magistralele KC6, KC7 pot fi utilizate pentru intrare-ieire a datelor n dependen de cuvntul de comand. Semnalele de comand, transmise pe magistralele canalului C la funcionarea canalelor A i B n regimul de intrare a datelor, sunt prezentate n fig.5.1b. Datele n circuit se nscriu cu ajutorul impulsului de nscriere, furnizat la intrarea (fig.5.1b). La momentul terminrii nscrierii datelor, se formeaz semnalul de comand de ieire ( ) ce arat, c datele sunt nscrise n tamponul de intrare a datelor i sunt gata pentru furnizarea lor n DC. Datele n DC se extrag conform semnalului , furnizat de pe DC. Semnalul la ieire .( ) se folosete pentru informarea microcalculatorului despre gtina canalului referitor la intrarea datelor noi. Pe intervalul extragerii de date n DC semnalul . este stabilit n << 0>> i va fi transferat n <<1>> n prezena <<1>> la semnalele , i la bistabilul permisiunii de ntrerupere ( ). La fel ca i n cazul intrrii de date, dirijarea cu starea bistabilului se efectueaz prin nscrierea <<0>> sau <<1>> n rangul corespunztor al registrului canalului C. Aceasta d posibilitatea programului de a dirija cu regimul de extragere a datelor din microcalculator. Canalele KC4 KC5, neantrenate sub semnalele de comand pot fi utilizate pentru intrarea-ieirea informaiei. Accesul la ele se realizeaz cu ajutorul operaiei de citire a datelor din registrul canalului C sau folosirea cuvntului de comand pentru schimbarea anumitor ranguri ale registrului canalului C. Semnalele , i ale canalului C pot fi schimbate n mod arbitrar, programabil la stabilirea unor anumite ranguri ale sale

76

sau la stabilirea iniial a circuitului, deoarece ele reflect starea bistabililor interiori la permisiunea ntreruperii circuitului

Fig.5.2b. Diagramele de timp ale funcionrii microcalculatorului conform tipului 1 la utilizarea canalelor A i B pentru extragerea datelor din microcalculator. Tipul 2. La funcionarea conform acestui tip canalul A se utilizeaz pentru transmiterea bidirecional a datelor, canalul C pentru nscrierea semnalelor de comand, ce asigur transmiterea datelor pe canalul A. Semnalele de comand reprezint combinaii ale semnalelor necesare la funcionarea canalului A conform tipului 1. Combinaiile regimurilor se definesc prin nscrierea cuvntului de comand pe adresa registrului de comand a circuitului. n registrul de comand se pot nscrie numai cuvinte de comand. Citirea informaiei din registrul de comand este inadmisibil.

77

Fig.5.3. Formatul cuvntului de comand *-0 sau1 Deoarece circuitul KP580BB55 nu are registru intern, ce indic asupra strii circuitului, pentru determinarea lui se citee coninutul registrului canalului C i se interpreteaz anumite ranguri ale lui. La funcionarea circuitului dup tipul 1 sau 2 se poate schimba coninutul anumitor ranguri ale canalului C cu ajutorul cuvntului de comand, nscris n registrul de comand. La furnizarea nivelului <<1>> la intrarea R se nulific registrul de comand, bistabilii permisiunii de ntrerupere, iar toate canalele se stabilesc n regimul de intrare a datelor. La racordarea microcalculatorului cu dispozitivele exterioare, se utilizeaz CISL al interfeei paralele programabile (IPP) de tip KP580BB55A. Circuitul conine canalul informaional A cu 8 ranguri A7 A0), canalul informaional B (B7B0), canalul informaional C (C7C0), canalul datelor (D7D0), rangurile inferioare de adrese pentru selectarea canalelor i registrul cuvntului de comand (PC) A0, A1, intrrile de comand; RD citirea informaiei;

78

CS selectarea circuitului integrat, WR nscrierea n circuitul integrat; RES poziionarea iniial. Schimbul de informaie dintre magistrala de date i circuitul integrat IPP se realizeaz prin canalul tristabil bidirecional cu 8 ranguri ale datelor D.Pentru legtura cu dispozitivele periferice, se folosesc trei canale cu 8 ranguri A,B,C. Regimurile de lucru ale acestor canale i direcia de transmitere a informaiei sunt determinate prin metode de programare.

Fig.5.4. Schema structurat a plcii de machet. Circuitul integrat poate funciona n trei regimuri de baz: n regimul 0 este asigurat transmiterea sincron, dirijat de program prin 2 canale independente cu 8 ranguri A,B i dou canale cu 4 ranguri C (C3 C0 i C7 C4). Circuitul integrat n acest regim poate fi considerat ca dispozitiv, ce const din 4 canale, ajustate independent la intrare sau la ieire. Ieirea informaiei se realizeaz la comanda OUT cu fixarea informaiei n registrele interioare ale canalelor A,B,C. Intrarea informaiei la comanda IN fr memorizarea informaiei. n regimul 1 este asigurat intrarea sau ieirea informaiei n/sau din dispozitivul intrare/ieire (DII) prin dou canale
79

independente A,B. La aceasta liniile canalului C se folosesc pentru recepionarea i furnizarea semnalelor de comand prin schimb; n regimul 2 este asigurat schimbul de informaie cu DII prin canalul bidirecional cu 8 ranguri A cu ajutorul semnalelor de comand transmise pe canalul C.

Fig.5.5.Schema conexiunilor pe placa de machet. n lucrarea de laborator se folosete regimul 0. Regimul de funcionare a fiecrui canal A, B, C este determinat de coninutul registrului cuvntului de comand. Formatul cuvntului de comand este prezentat n fig.5.3 De exemplu, dac este necesar de adjustat canalele A,B la intrare, iar canalul C la ieirea informaiei n regimul 0, atunci trebuie de definit: D0=0-ieirea informaiei prin canalul C3-C0; - D1=1 intrarea informaiei prin canalul B; - D0=0 regimul 0 al canalelor B i C3-C0; - D3=0 ieirea prin canalul C7-C4;
80

- D6=0, D5=0 regimul 0 al canalelor A i C7-C4; Ca urmare, cuvntul de comand are forma 10010010=92H. La aplicarea semnalului RES se stabilete starea, la care toate canalele se ajusteaz la funcionarea n regimul 0 pentru ieirea informaiei. Regimul de funcionare a canalelor poate fi schimbat precum la nceputul, aa i n procesul executrii programului, ceea ce permite a deservi diferite DII ntr-o ordine anumit, utiliznd un singur circuit integrat IPP. Semnalele de funcionare a IPP sunt aplicate la intrarea circuitului integrat i mpreun cu intrrile de adrese A0, A1 definesc forma operaiei, executat de ctre CISL n corespundere cu urmtoarea tabel a concordanei: Ca urmare cuvntul de comand are forma 10010010 = 92. Operaia CS RD WR A1 A0 Note Definete nscrierea 0 1 0 1 1 regimul de n PYC funcion. nscrierea n 0 1 0 0 0 canalul A nscrierea n 0 1 0 0 1 canalul B nscrierea n 0 1 0 1 0 canalul C Citirea din 0 0 1 0 0 canalul A Citirea din 0 0 1 0 1 canalul B Citirea din 0 0 1 1 0 canalul C Deconectarea *-stare 1 * * * * IPP indiferent
81

n aa mod, pentru exemplul considerat mai sus nscrierea cuvntului de comand n IPP i operaia de nscriere-citire n canalele B,C se efectueaz n modul urmtor: MVI A,92H; cuvntul de comand OUT <ADR+3> ADR adresa de baz a IPP, determinat de decodificatorul de adrese i furnizat la intrarea CS a IPP MVI A, 57H; datele pentru ieire OUT <ADR+2> ieirea n canalul IN <ADR+1> citirea din canalul B Schema structural a interfeei utilizat n lucrarea de laborator mpreun cu schema utilizatorului este prezentat n fig.3. Conform acestei scheme, informaia nscris n canalul C poate fi extras din canalul C prin canalul B. Seria de impulsuri, ce comuteaz contorul CT2, este format prin instalarea programat-revenire la poziia iniial a bitului C1 al canalului C n ciclu. Este necesar ca C0=0. Revenirea la poziia iniial a contorului se efectueaz prin instalarea bitului C0 (C0=1).Coninutul contorului se citete prin tetrada inferioar a canalului A. Not: rsturnarea contorului binar K1555 n starea urmtoare are loc pe frontul negativ al impulsului la intrarea de tact a contorului. Schema conexiunilor pe plata machet este prezentat n fig.5.5 Exerciiu la lucrarea de laborator Scopul lucrrii este studierea IPP KP580BB55 i utilizarea ei pentru dirijarea celui mai simplu dispozitiv K155 5. 1. Studiai schema simplificat a interfeei platei machet. Explicai destinaia fiecrui element al schemei i determinai
82

dup schem adresele canalelor A,B;C i a registrului cuvntului de comand al IPP. 2. Alctuii programul cu al crui ajutor un octet de date din celula de memorie 0800H se nscrie n canalul C. Programul dup aceea verific corectitudinea nscrierii prin canalul B. n cazul ieirii corecte n celula de memorie 0601H apare codul 11H, iar n cazul erorii codul AAH. 3. Introducei programul n CMPS i explicai rezultatul executrii lui . 4. Alctuii un program, ce execut revenirea la poziia iniial a contorului CT2 i avansarea pe el a 10 impulsuri.Corectitudinea instalrii contorului verificai-o programabil, citind coninutul contorului pe canalul A. 5. n darea de seam dai descrierea funcionrii interfeei, ordinea adjustrii IPP cu ajutorul , descrierea programului i executrii lui.

83

CONINUT 1. Lucrare de laborator nr.1 Studierea complexului microprocesor de studiu (CMPS)3. 2. Lucrare de laborator nr.2 Programarea microprocesorului MP KP580BM80A.15 3. Lucrare de laborator nr.3 Programarea microprocesorului MP KP580BM80A.32 4. Lucrare de laborator nr.4 Alctuirea celor mai simple programe n coduri interne..56 5. Lucrare de laborator nr.5 Studierea interfeei intrareieire pe baza CISL KP580BM80A67

Igor JURMINSKI Petru CHETRU Bazele fizice ale tehnicii de calcul Practicum
Redactor literar Antonina Dembichi Asisten computerizat Ruslan Pucau

______________
Bun de tipar 15.10.2001. Formatul 60 84 1/16. Coli de tipar 5,0. Coli editoriale 4,0. Comanda 67. Tirajul 50. Centrul Editorial al USM. str. A.Mateevici, 60, Chiinu, MD 2009.

84

85

S-ar putea să vă placă și