Cuprins
- 1. Tema proiectului pag 3
- 2. Microprograme pentru instructiuni pag 4
- 3. Descrierea semnalelor de comanda si microoperatiile . pag 9
- 4. Codificarea instructiunilor .pag 10
- 5. Codificarea dupa functie pag 19
- 6. Bibliografie pag 26
Extras din laborator
1. Tema proiectului.
Sa se proiecteze unitatea de comanda pentru un microprocessor capabil sa execute urmatorul set de instructiuni :
FETCH , PUSH R , POP R , CMP RM , AND RM , OR RM , XRA , CPR data , DCR AC , INC AC , ADC AC , SBC AC , ADD AC , SBB AC , SBI data , SWIT data , ACI data , ADI data , JMP adr , JMPZ adr , JMPC adr , CALL adr , RET , RC , RZ , HALT , NOT AC , ROTD AC , ROTS AC , ROTDC AC , ROTSC AC , DD AC , DS AC , DDC AC , DSC AC , STORE AC , LOAD AC .
In implementare , se va tine cont de precizarile urmatoare :
- Unitatea de comanda sa fie microprogramata (se va utiliza codificarea dupa functie)
- Adresarea memoriei se va realiza prin metoda segmentarii.
2. Microprograme pentru instructiuni.
Mai jos am prezentat microprogramele pentru instructiunile care sunt necesare pentru proiectarea unei unitati de comanda microprogramate unde adresarea memoriei se va face prin metoda segmentarii.
Fiecare instructiune este luata separat si detaliata , de exemplu la o instructiune nu vom scrie primul rand si ultimul ci o vom detalia , vor fi scrisi toti pasii cum s-a ajuns la final.
FETCH (aducerea din memorie a instructiunii/operandului )
RAV ← PC C
MS ← TABS(RAV(S)) C
RA ← MS(B) + RAV(C) C
RM ← MP(RA) C
RAC ← RM(OP) C
PC ← PC + 1 C
PUSH R ( depunerea in stiva a registrului general R)
RS ← RS – 1 C
RA ← RS C
RM ← R C
MP(RA) ← RM C
POP R ( extragerea din stiva a registrului R )
RA ← RS C
RM ← MP(RA) C
R ← RM C
RS ← RS + 1 C
CMP RM ( compara registrul acumulator cu registrul memoriei RM )
AC ← AC – RM C
AND RM ( SI logic intre acumulator si RM )
AC ← AC AND RM C
OR RM ( SAU logic intre acumulator si RM )
AC ← AC OR RM C
XRA ( SAU EXCLUSIV intre acumulator si RM )
AC ← AC XOR RM C
CPR data ( compara continutul acumulatorului cu continutul locatiei de la adresa data )
RA ← RM ( data ) C
RM ← MP(RA) C
CMP RM C
DCR AC ( decrementeaza registrul acumulator )
AC ← AC – 1 C
INC AC ( incrementeaza registrul acumulator )
AC ← AC + 1 C
ADC AC ( aduna la continutul acumulatorului registrul RM si fanionul de transport C )
AC ← AC + RM + C C
SBC AC ( scade din continutul acumulatorului registrul RM si fanionul de transport C )
AC ← AC – RM – C C
ADD AC ( aduna la continutul acumulatorului registrul RM )
AC ← AC + RM C
SBB AC (scade din continutul acumulatorului registrul RM )
AC ← AC – RM C
SBI data ( scadere “ cu imprumut ” )
RA ← RM ( data ) C
RM ← MP ( RA ) C
SBC AC C
SWIT data ( scadere “ fara imprumut ” )
RA ← RM ( data ) C
RM ← MP ( RA ) C
SBB AC C
ACI data ( aduna la continutul acumulatorului continutul locatiei de la adresa data si fanionul de transport C )
RA ← RM ( data ) C
RM ← MP ( RA ) C
ADC AC C
ADI data ( aduna la continutul acumulatorului continutul locatiei de la adresa data )
RA ← RM ( data ) C
RM ← MP ( RA ) C
ADD AC C
JMP adr ( salt neconditionat la adresa adr )
PC ← RM ( adr ) C
JMPZ adr ( salt conditionat de fanionul de zero, Z=1 )
If (z=1)
PC ← RM ( adr ) C
JMPC adr ( salt conditionat de fanionul de transport, C=1 )
If (C==1)
PC ← RM ( adr ) C
Preview document
Conținut arhivă zip
- Arhitectura Sistemelor de Calcul.doc