ASD4

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

Descărcați ca pdf sau txt
Descărcați ca pdf sau txt
Sunteți pe pagina 1din 11

CURS 4

MEMORIA
MEMORIA

 Este compusa din doua blocuri :


 Memoria de program
 Memoria de date
 Memoria RAM de uz general
 Registrii cu functiuni speciale (SFRs)

 Fiecare bloc are propriul bus


 Accesul la blocurile de memorie poate sa apara in
acelasi ciclu sistem
ORGANIZAREA MEMORIEI DE PROGRAM

 MCU din familia Microchip mid-range au un contor


de program de:
 13 biti => 213 = 8k spatiu de adresare
 16 biti => 216 = 64k spatiu de adresare (56k enhanced)
 Instructiunile sunt organizate pe 14 biti si sunt ‘single
word’
 Rezulta un spatiu de adresare de:
 8k * 14 biti
 56k * 14 biti
 Spatiulde memorie de program este divizata in
pagini de cate 2k fiecare
ORGANIZAREA MEMORIEI DE PROGRAM
ORGANIZAREA MEMORIEI DE PROGRAM
 Pentrua comuta intre paginile de memorie de
program, trebuie modificati cei mai semnificativi biti
din contorul de program (PC)
 Aceasta se face prin modificarea valorii unui registru
special SFR numit program counter latch high
(PCLATCH)
 Daca se executa instructiuni consecutive, contorul de
program va trece de granitele paginii fara interventia
utilizatorului
 Pentrudispozitive care au implementat mai putin de
8k de memorie de program, accesarea unei locatii
peste cea fizica va cauza accesarea adresei din
pagina fizica, ignorand bitii din PCLATCH
ORGANIZAREA MEMORIEI DE PROGRAM
 Vectorul de reset
 Un reset va forta contorul de program la valoarea 00h
 Vom numi aceasta adresa “adresa vectorului de reset”
 Orice reset va sterge continutul registrului PCLATCH
 Vectorul de intrerupere
 Cand o intrerupere este recunoscuta, pc este fortat la
adresa 04h.
 Vom denumi aceasta adresa: “adresa vectorului de
intrerupere”
 Nu se modifica registrul PCLATCH
 Trebuie avut grija daca adresa de salt din intrerupere este in
alt bank de memorie
 Inainte de a fi modificat de ISR, continutul PCLATCH trebuie
salvat, astfel incat dupa revenirea din rutina de intrerupere,
continutul sau sa poata fi restaurat
CONTORUL DE PROGRAM (PC)

 Contorul de Program (PC) specifica adresa


instructiunii care trebuie adusa pentru executie
 Are
dimensiunea de 13 biti sau 16 biti pentru
modelele enhanced
 Este
compus din doi byte, unul mai semnificativ
(PCH), altul mai putin semnificativ (PCL)
 PCL Este un registru care poate fi atat citit cat si scris
 PCH contine bitii <12:8> sau <15:8> din PC si nu
poate fi direct citit si scris, ci numai prin intermediul
registrului PCLATCH
CONTORUL DE PROGRAM (PC)

 SITUATIA 1 – Instructiune cu PCL ca destinatie.


Se arata cum PC este incarcat prin scrierea PCL cu rezultatul
ALU si PCH din (PCLATH<4:0> ).
CONTORUL DE PROGRAM (PC)
 SITUATIA 2 – Instructiunea GOTO
Se arata cum PC este incarcat in timpul unei instructiuni GOTO
11 biti din adresa de salt si 2 biti din (PCLATH<4:3>).
CONTORUL DE PROGRAM (PC)
SITUATIA 3 – Instructiunea CALL
Se arata cum PC este inarcat in timpul unei instructiuni CALL
PC incarcat (PUSHed) in varful stivei, apoi incarcat cu 11 biti din
adresa de salt si 2 biti din (PCLATH<4:3>).
CONTORUL DE PROGRAM (PC)

 SITUATIA 4 - Instructiuni tip Return


Se arata cum este incarcat PC in timpul unei instructiuni tip
return, in care PC este incarcat (POPed) din virful stivei

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