Sunteți pe pagina 1din 9

BAZELE PROGRAMRII CALCULATOARELOR 10

MONITORUL NOICE. ASAMBLAREA DIRECT A


PROGRAMELOR N MEMORIE. ASAMBLAREA UNUI
PROGRAM CU ASM85.
1. Obiective
Prin parcurgerea acestei edine de laborator studenii vor fi capabili:
S utilizeze facilitile de operare local ale microsistemului;
S foloseasc facilitile de operare de la distan.

2. Aplicaii de vizualizare/editare a coninutului unor registre i locaii de


memorie pe placa de dezvoltare
2.1.

Operarea remote

Modul de operare remote se realizeaz prin intermediul programului NoICE85, care


permite ncrcarea i depanarea aplicaiilor la distan, la nivel de cod surs, direct
pe sistemul cu microprocesor. NoICE85 furnizeaz utilizatorului o interfa grafic,
facilitnd depanarea programelor. Pentru a putea stabili legtura cu monitorul
rezident al microsistemului, NoICE85 trebuie configurat (din meniul principal Options|Target
Communications) astfel:

sau COM2

Figura 1. Configurarea comunicaiei cu programul NoICE85


n cazul n care a fost stabilit legtura cu monitorul rezident, pe ecran apare o fereastr
similar cu cea din figura 2a. Dac nu s-a reuit stabilirea legturii dintre PC i EMAC Universal
Trainer, pe ecran apare mesajul din figura 2b. n acest caz se verific parametrii comunicaiei i
cablul de legtur.

174

BAZELE PROGRAMRII CALCULATOARELOR 10

Figura 2. Legtura cu monitorul rezident


a) cu succes;

b) euat.

Comenzile transmise de NoICE85 pe legtura serial, care sunt primite i executate de


monitor sunt comenzi simple, de forma:
citire i nscriere locaii de memorie;
citire i nscriere registre ale utilizatorului;
citire i nscriere porturi de I/E;
lansare n execuie a programului de aplicaie.
Cu ajutorul acestor comenzi, transparente pentru utilizator, sunt implementate facilitile
interfeei grafice a depanatorului NoICE51:
ncarc n memoria microsistemului codul executabil al programului de aplicaie (FilePlay|Load);
editeaz, copiaz i caut informaii n fiierul asociat ferestrei curente (Edit);
vizualizeaz n fereastra principal a aplicaiei codul programului n format dezasamblat,
surs sau mixt (View);
vizualizez/editeaz coninutul memoriei (Memory-Dump|Edit);
asambleaza instruciuni direct n memorie (Memory-Assemble)
urmrete evoluia variabilelor programului (Memory-Add watch);
definete, terge i afieaz simbolurile specifice programului de aplicaie (Symbols);
insereaz, afieaz i terge punctele de oprire a execuiei programului (Breakpoint);
execut programul n regim pas cu pas sau automat, cu breakpoint (Run);
vizualizeaz i modific coninutul registrelor i al porturilor de I/E (Processor);

175

BAZELE PROGRAMRII CALCULATOARELOR 10


2.2.

Interfaa NoICE85

Dup alimentarea i iniializarea microsistemului, acesta ateapt comenzi. Aceste


comenzi pot veni nu numai de la operatorul local, prin tastatura i butoanele amplasate pe plac,
ci i de la portul serial COM1 al microsistemului, care se conecteaz la un PC pe care se execut
depanatorul NoICE85.

2.3.

Vizualizarea i modificarea registrelor utilizatorului

Valorile iniiale ale registrelor utilizatorului de la distan sunt afiate permanent pe o serie
de butoane amplasate sub bara de butoane de comand a NoICE85. Aceste valori pot fi modificate
direct printr-un simplu click pe registrul respectiv.
Se observ faptul c indicatorii de condiii sunt afiai att n format hexa ct i n binar
(aa cum intr n componena PSW) i pot fi modificati de asemenea n ambele formate.
Coninutul memoriei ncepnd de la adresa iniial din PC pentru programul utilizatorului
(8000h) este afiat n fereastra principal a depanatorului, n format hexa i dezasamblat (operaia
invers asamblrii, prin care se determin instruciunile corespunztoare octeilor din memorie).
Pentru a se baleia o zon de memorie se pot folosi tastele Page Up-Page Dn sau bara de control
pentru defilarea ferestrei pe vertical. S se baleieze zona de memorie 8000h8100h.
Pentru a se vizualiza o zon de memorie aflat la o distan mai mare de cea curent, se poate
utiliza una din comenzile din meniu View Source at ...| Disassemble at ... .
Se poate reveni n orice moment la adresa curent din PC, cu comanda View Source at
PC.
Coninutul memoriei poate fi vizualizat i ca o zon de date, n format hexa i ASCII n
fereastra Data, cu comanda Memory Dump... i n continuare cu tasta F2.
Coninutul memoriei poate fi modificat prin intermediul comenzii de meniu Memory Edit ..., n
care se poate stabili adresa locaiei, valoarea i se poate selecta tipul datei pentru afiare i
modificare.
Dar depanatorul NoICE dispune de un mod mai avantajos de ncrcare a programului.
Astfel, folosind comanda Memory Assemble... utilizatorul de la distan poate introduce o
secven de program direct n limbaj de asamblare, instruciune cu instruciune. Operaia de
asamblare este efectuat automat de ctre NoICE.
S se tearg programul introdus anterior prin umplerea zonei de memorie de la A000h cu 0 pe o
distan de 16 locaii cu comanda Memory Fill ..., s se verifice acest lucru cu comanda View
Source at PC, apoi s se introduc din nou secvena de program de mai sus de data aceasta direct
n limbaj de asamblare i s se verifice acest lucru cu o nou comand View Source at PC.
Pornind de la adresa de nceput a secvenei de program (A000h), se va executa programul
n regim pas cu pas, cu una din comenzile Run Step Over | Step Into | Step Instruction sau cu
un click pe butoanele de comand asociate acestor comenzi sau cu tastele F7 | F8 | F9 care, n acest
caz au acelai efect: execuia urmtoarei instruciuni din programul utilizatorului.
n acest regim, microprocesorul execut doar o singur instruciune din programul
utilizatorului la distan, dup care controlul revine monitorului, care transmite ctre NoICE noile
valori ale registrelor i ateapt o nou comand.
Se execut programul n regim liber (free run) cu comanda Run Go sau cu un click pe
butonul corespunztor sau apsnd tasta F5. n acest regim, microprocesorul execut continuu
numai instruciuni din programul utilizatorului. Acest program conine o bucl infinit, n care pe

176

BAZELE PROGRAMRII CALCULATOARELOR 10


ledurile conectate la un port de ieire este evideniat starea comutatoarelor conectate la un port de
intrare. S se modifice starea comutatoarelor i s se urmreasc schimbarea strii ledurilor din
portul de ieire.
Execuia liber a programului utilizatorului local poate fi oprit numai prin activarea unei
linii de ntrerupere (tasta TRP) sau prin resetarea sistemului (tasta RST), cnd monitorul preia
controlul, transmite ctre NoICE85 starea registrelor utilizatorului la distan i ateapt o nou
comand.
Se va observa cum execuia programului utilizatorului se oprete ntr-un anumit punct din
bucl, n funcie de momentul n care se apas tasta TRP. n schimb, n cazul n care se reseteaz
microsistemul, monitorul reface toate iniializrile, iar PC-ul utilizatorului devine 8000h.
Programul introdus se mai pstreaz n memorie numai dac oprirea s-a produs cu TRP. La
resetare, zona de memorie care ncepe la A000h este iniializat de monitor, ceea ce determin
distrugerea programului utilizatorului.
Pentru a evita reintroducerea programului prin una din cele dou metode prezentate anterior, odat
introdus, acesta poate fi salvat ntr-un fiier cu comanda File Save ... n format binar (imagine
memorie) sau Intel HEX (un format ASCII-hex introdus de Intel). Dup resetare, acest fiier poate
fi rencrcat n memoria microsistemului cu comanda File Load ..., iar prezena programului n
memorie poate fi observat cu o comand View Source at PC.

2.4.

Etapele realizrii i rulrii unui program

1. Crearea cu ajutorul unui editor de text (Ex: Notepad) a fiierului surs. Fiierul surs va avea
extesia .ASM i va conine programul scris n limbaj de asamblare.
2. Asamblarea. Asamblarea este realizat cu ajutorul unui asamblor. Asamblorul folosit n cadrul
edinelor de laborator este ASM85.EXE. Asamblarea poate fi realizat n dou moduri:
a. prin apelarea asamblorului n linia de comand
ASM.EXE nume_fisier.ASM
b. prin apelarea automat a asamblorului prin efectuarea operaiei de tip drag and drop
a fiierului surs peste iconia corespunztoare asamblorului.
n urma operaiei de asamblare vor fi generate dou fiiere:
nume_fisier.LST - conine erorile aprute pe parcursul asamblrii i liniile unde au aprut
aceste erori;
nume_fisier.HEX - reprezint fiierul care va fi ncrcat n memorie cu ajutorul
programului NoIce.
3. Dac nu au aprut erori pe parcursul operaiei de asamblare, se lanseaz NoICE85. Dup
stabilirea legturii cu microsistemul se ncarc n memoria micro-sistemului programul
executabil n format Intel HEX cu comanda File Load ... TEST.HEX. Se verific
ncrcarea lui n memorie cu comanda View Disassemble at ... A000h. Cu comanda View
Mixed source /disassembly se comut ntre dou moduri de vizualizare a programului n
fereastra principal: la liniile de cod surs din fiierul surs, se pot aduga sau nu instruciunile
dezasamblate din memoria microsistemului. Se observ c acestea coincid, ceea ce nseamn
c programul a fost corect asamblat i ncrcat.

177

BAZELE PROGRAMRII CALCULATOARELOR 10


4. Se ncarc registrul PC cu adresa la care a fost ncrcat programul.
5. Se lanseaz programul n execuie prin comanda Run Go (F5).
De aici ncolo depanarea programului are loc beneficiind nu numai de codul dezasamblat, ci i de
toate facilitile unei depanri simbolice: afiarea liniilor de cod surs, urmrirea evoluiei
variabilelor programului, modificarea acestora, inserarea de puncte de oprire a execuiei la adrese
simbolice (etichetele instruciunilor) etc.

3. Aplicaii propuse
3.1.

S se ncarce regitrii de date i flag-urile cu urmtoarele valori:m


a)
b)
c)
d)
e)
f)

= 12;
= 4;
= 01;
= 9;
= 6;
= 4;

g)
h)
i)

= 0;
= 1;
= 1.

Figura 3. Modificarea regitrilor

3.2.

S se ncarce n memorie folosind comanda Memory -> Assemble ncepnd de la


adresa A000 urmtoarea secven de instruciuni. ads Vizualizai de pe plac modul n
care s-a modificat coninutul adreselor A000 A004. Ce observai? S se noteze efectul
secvenei de cod la execuie (Atenie! Se va starta execuia ncepnd cu adresa A000).
Ce se ntmpl cu ledurile de pe portul de intrare i de pe portul de ieire?

178

BAZELE PROGRAMRII CALCULATOARELOR 10

IN 41
OUT 40
HLT

Figura 4. ncrcarea instruciunilor n


memorie cu Memory -> Assemble

3.3.

S se creeze pe desktop un folder cu numele grupei 110xA/B. n folderul respectiv s


se copie executabilul ASM85.exe. S se creeze un document text nou n care s se scrie
urmtoarele instruciuni precizate n figura 8. S se salveze documentul respectiv cu
Save as, All files, cu numele leduri.asm. Apoi, folosind drag and drop s se execute
fiierul leduri.asm n ASM85.exe similar ca n figura 6.

Figura 5. Fiierul leduri.asm

Figura 6. Execuia

Se vor genera dou noi fiiere ce pot fi observate n figura 6. Fiierul leduri.lst va conine lista cu
erorile aprute la execuie. Dac fiierul respectiv este gol ca n figura 7, atunci nu exist nici o
eroare. Fiierul leduri.hex va putea fi ncrcat n memorie.

179

BAZELE PROGRAMRII CALCULATOARELOR 10

Figura 7. Fiierul ce conine erorile

Figura 8. Fiierul leduri.hex generat

S se ncarce n memorie folosind comanda File -> Load fiierul leduri.hex. S se vizualizeze
coninutul de la adresa A000 similar cu figura 9.

Figura 9. Coninutul memoriei ncepnd cu locaia A000


S se lanseze n execuie programul.

3.4.

S se ncarce n memorie folosind tastatura, ncepnd de la adresa A000h, urmtoarea


secven de octei:
Adresa Cod main
A000
DB
A001
41

180

BAZELE PROGRAMRII CALCULATOARELOR 10


A002
A003
A004
S se starteze execuia de la adresa A000:

D3
40
76

a) De pe placa folosind butoanele de pe tastatura;


b) Din NoICE85 folosind comanda Run -> Go From : A000.
3.5.

S se actualizeze ferestra de vizualizare a programului de la adresa din PC (A000h)


cu comanda View Source at PC i s se verifice dac instruciunile introduse
coincid cu cele dorite. Acest mod de ncrcare a programului este asemntor cu cel
disponibil de la interfaa local a microsistemului.

3.6.

S se scrie n limbaj de asamblare secvena de instruciuni pentru a copia portul de


intrare pe portul de ieire. Se vor considera c pe portul de intrare sunt pe rnd,
urmatoarele valori: a) 00110011; b) 00001111.

3.7.

S se tearg programul introdus anterior prin umplerea zonei de memorie de la


8000h cu 0 pe o distan de 16 locaii cu comanda Memory Fill ..., s se verifice
acest lucru cu comanda View Source at PC, apoi s se introduc din nou
secvena de program de mai sus de data aceasta direct n limbaj de asamblare i s
se verifice acest lucru cu o nou comand View Source at PC.

Figura 10. Comanda Fill Memory Region


3.8.

S se afieze o zon de 16 octei ncepnd de la 8000h, att n fereastra principal ct


i n cea de date i s se observe identitatea coninutului memoriei.

3.9.

S se vizualizeze coninutul memoriei folosind tab-ul Memory

181

BAZELE PROGRAMRII CALCULATOARELOR 10

Figura 11. NoICE85 -> Memory

4. Test de verificare a cunotinelor


1. Cum se mai numete registrul A al microprocesorului 8085? De ce?
2. Ci bii are cuvntul de stare al procesorului?
3. Ce sunt indicatorii de condiii?
4. Ce este unitatea aritmetic i logic?
5. Ce fel de operanzi prelucreaz ALU?
6. Care este registrul care conine octetul cel mai puin semnificativ din registrul pereche H?
7. Ci bii are numrtorul de program?
8. Care este valoarea iniial a registrelor PC i SP, dup resetarea de la conectarea alimentrii?
9. n ce sens evolueaz registrul PC, m mod implicit, odat cu execuia instruciunilor?
10. n ce sens crete stiva la microprocesorul 8085?
11. Registrul SP conine adresa ultimei locaii ocupate din stiv sau adresa primei locaii libere din stiv?
12. Ci bii are un cuvnt la microprocesorul 8085?

5. Referine bibliografice
[1] C.Huanu, M.Postolache, Sisteme cu microprocesoare, Editura Academic, Iai, 2001.
[2] Gh.Toace, Introducere n microprocesoare, Editura tiinific i Enciclopedic, Bucureti,
1985.
[3] ***, Universal Trainer, Lab Manual for Board Revisions R1 and R2, EMAC INC, 1993.
[4] ***, Universal Trainer, Reference Manual, EMAC INC, 1993.
[5] ***, Universal Trainer, Self Instruction Manual, EMAC INC, 1992.

182

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

  • Logica Computationala-Cartea
    Logica Computationala-Cartea
    Document138 pagini
    Logica Computationala-Cartea
    dcswalle
    Încă nu există evaluări
  • BPC l91
    BPC l91
    Document12 pagini
    BPC l91
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l91
    BPC l91
    Document12 pagini
    BPC l91
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l11
    BPC l11
    Document11 pagini
    BPC l11
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l12
    BPC l12
    Document9 pagini
    BPC l12
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l7
    BPC l7
    Document31 pagini
    BPC l7
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l5
    BPC l5
    Document25 pagini
    BPC l5
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l1
    BPC l1
    Document16 pagini
    BPC l1
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l3
    BPC l3
    Document30 pagini
    BPC l3
    StefaniaArdelianu
    Încă nu există evaluări
  • BPC l2
    BPC l2
    Document13 pagini
    BPC l2
    StefaniaArdelianu
    Încă nu există evaluări