Digitális technika

Preview:

DESCRIPTION

Digitális technika. V.) Számítógép architektúrák. Számítógépek. Programozható műveletvégző, adatfeldolgozó. Tárolás: Adatok Műveletsor. Neumann-elv. Bináris Műveletvégzés →Aritmetika Tárolás→Memória Be-, kimenet→Perifériák Vezérlés→Vezérlő egység. Aritmetika. Program. - PowerPoint PPT Presentation

Citation preview

Digitális technika

V.) Számítógép architektúrák

Számítógépek

Programozható műveletvégző, adatfeldolgozó

Tárolás:

o Adatok

o Műveletsor

Neumann-elv• Bináris

• Műveletvégzés → Aritmetika

• Tárolás → Memória

• Be-, kimenet → Perifériák

• Vezérlés → Vezérlő egység

Vezérlő

Aritmetika

Memória

Program Kimenet

4 címes utasítás-szervezés

5 mezős utasítás:

Következő utasítás címe

Operációs kód

Pl..: +, -, *, /…Operandus 1 címe

Operandus 2 címe

Eredmény címKövetkező utasítás címe

Operációs kód

• Redundás

• Nagy méret

Programszámláló (PC)

Automatikus inkrementálás

Felülírható

Akkumulátor

1 címes utasítás szervezés

• Cím = f ( Operációs Kód )• Cím:

– Adatcím

– Adat

– Utasítás cím

Művelet / Operációs kód

Cím

1 címes µP felépítése

ALU

Átmenti reg.Akku

FlagK

imeneti reg.

Bem

eneti reg. Vezérlő CLK

Dekóder

Op. kód Cím

Mem

ória

címreg.

Adatregiszter

MemóriaPC

Utasítás regiszter =

Korszerűbb µP felépítés → C(entral) P(rocessed) U(nit)

• Külső memória

• Külső periféria illesztők

CPU

Vezérlő egység

RAM ROM

Memória

I/O 1 I/O 2 I/O N

Perifériák

Legkorszerűbb felépítés

Intel 8085-ös CPU

X1

X2

Reset Out

SOD

SID

Trap

RST 7.5

RST 6.5

RST 5.5

INTRINTA

AD0

AD1

AD2

AD3

AD4

AD5

AD6

AD7

VSS

VCC

HOLD

HLDA

CLK OUT

RESET IN

READY

IO / M

S1

RD

WR

ALE

S0

A15

A14

A13

A12

A11

A10

A9

A8

Cím-, és adatjel

Multifunkciós, Tri-State

+5V

GND← másik Master lefoglalta a sínt→ fogadta a másik Master kérését→ fosc / 2← PC = 0, Regiszterek törlése← külső memória R/W műveletre kész

→ státusz→ adatbusz kész az olvasásra→ adatbuszon az adat már készen áll→ címtároló engedélyezése

→ IO / Memória művelet, státusz

→ státusz

Címjel, Tri-State

oszcillátorhoz kötve

CPU resetelve ←Soros kimeneti vonal ←

Soros bemeneti vonal →Nem maszkolható Restart interrupt →

Restart Interrupt →

Interrupt észlelve ←

Restart Interrupt →Restart Interrupt →

Interrupt →

8085-ből épült rendszer

8085-ös blokkvázlata

A(kku) Átmenti reg. Műv. reg.

Ut. dekóder

Időzítés és vezérlés

Megsz. kezelő. Soros I/O

+/- cím tároló

Cím buffer Adat/Cím buff.

Program Száml. (PC)

Verem pointer (SP)

B reg. C reg.

D reg. E reg.

H reg. L reg.

IntA

Intr RST5.5

RST6.5

RST7.5

Trap SID SOD

S0 S1

X2

Intr

X1

WRCLK OUT

RD

Ready

IO/M

HLDA

ALE HOLDReset

In

Reset out

ALU

Flag

A8 – A15AD0 – AD7

Programkód elkészítése0 1 1 1 1 0 1 0

0 0 1 0 0 0 0 0

0 1 0 0 0 0 1 0

0 0 0 0 1 0 1 1

1 0 0 0 0 0 0 0

0 1 0 0 1 1 0 0

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

x x x x x x x x

0000H

0004H

0001H

0002H

0003H

7FFEH

7FFFH

8000H

8001H

FFFBH

FFFCH

FFFDH

FFFEH

FFFFH

A-ba 32D

B-be 11D

A és B összeadása

RA

M

mem

óriaE

EP

RO

M

mem

ória

STOP

MVI A, 32D

MVI B, 11D

ADD B

.

.

.

STA 8000H

HLT

Assembly kód

Assembly fordító és

programozó

Alaputasítások végrehajtása

• (Általában) Utasítás = Művelet + Operandus címe

• Műveleti kód → utasítás hossza

• Utasítás hossza: 1, 2, 3 byte (+ 0, 1, 2 byte)

Assembly nyelv utasításai

• Adatmozgatók• Aritmetikai és Logikai• Ugró:

– Feltétel nélküli– Feltételes

• Szubrutin hívó• Vegyes

– I/O kezelés– Megszakítás vezérlők

1) Adatmozgató utasítások

• MOV r1, r2 (r2) → (r1)

• MOV r, M ((H)(L)) → (r)• MOV M, r (r) → ((H),(L))• MVI r, data data → (r), 2B-os• MVI M, data data → ((H)(L)), 2B-os• LHLD addr M → (H)(L), 3B-os• XCHG (H) ↔ (D), (L) ↔ (E), 1B-os

r: 8085-ös belső regisztere: 000 B; 001 C; 010 D; 011 E; 100 H; 101 L; 111 A(kku)M: külső memória 1 „rekeszének” címeD: cél regiszter kiválasztó bitS: forrás regiszter kiválasztó bit((H)(L)): a H és L regiszterekben lévő memória címre történik

0 1 D D D S S S

0 1 D D D 1 1 0

0 1 1 1 0 S S S

2) Aritmetikai és Logikai utasítások• ADD r (A) + (r) → (A)• ADD M (A) + ((H)(L)) → (A), kód: 86H, 2B-os• ADI data (A) + data → (A), kód: C6H, 2B-os• ADC r

• ADC M• ACI data• SUB r (A) - (r) → (A)• SUB M (A) - ((H)(L)) → (A)• SUI data (A) - data → (A)• ANA r (A) & (r) → (A)• ANA M (A) & ((H)(L)) → (A)• ANI data (A) & data → (A), • ORA r / M / data VAGY kapcsolat• XRA r / M / data kizáró VAGY kapcsolat• INR r / M Inkrementálás• DCR r / M Dekrementálás• CMP r / MKomparálás• CMA Komplemetálás (Akku)• PCHL (H,L) → (PC)• SPHL (H,L) → (SP)

• A feltétel a Flag regiszter tartalma.

• Flag regiszter felépítése:– S: SIGNUM, előjel flag, S = 0 ↔ eredmény pozitív

– Cy: CARRY, átvitel flag, Cy = 1 ↔ volt átvitel

– Ac: járulékos átvitel flag

– Z: ZERO flag, Z = 1 ↔ művelet eredménye = 0

– P: paritás flag, P = 0 ↔ eredmény páros

– X5: alól/felül csordulást jelző flag

– V: túlcsordulás flag.

3) Ugró utasítások

S Cy Ac Z P X5 V -

Ugró utasítások

• JMP addr feltétel nélkül, kód: C3H, 3B

• Feltételes ugró utasítás:

• JZ addr ugrik, ha Z(ero) flag = 1, CCC = 001B

• JNZ addr ha Z flag = 0, CCC = 000B

• JC addr ha C(arry) flag = 1, CCC = 011B

• JNC addr ha C flag = 0, CCC = 010B

• JPO addr ha a paritás páratlan, CCC = 100B

• JPE addr ha a paritás páros, CCC = 101B

1 1 C C C 0 1 0

4) Szubrutin hívás, utasításai

Szubrutin: a kódban egyszer definiált eljárás, melyet akárhányszor hívhatunk meg, használhatunk fel.

MVI B, 3D ;ez lesz a szorzó

MVI C, 10D ;ez a szorzandó

CALL SZOR ;szorzo szubrutin meghívasa

CALL KIIR ;kiiro szubrutin meghivasa

.

SZOR: ;szubrutin fejléce

PUSH PSW ;A es flag-ek mentese a verembe

DCR B ;B=B-1

MOV A, C ;C masolasa A-ba

ADD C ; A=A+C

DCR B ;B=B-1

JNZ 13A1H ;visszaugras, ha meg kell szorozni

MOV D, A ;eredmeny (A) mentese D-be

POP PSW ;hivast megelozo alapot beallitasa

RET ;visszatoltes, visszaugras

END

A=

B=

C=

D=

ZF=

3

10

10

30

01

210

2030

Szubrutin hívás

• CALL „utasítás” SP-be az aktuális PC cím beírása (ide tér vissza), szubrutin hívása, 3B, kód: CD

• RET SP-ből PC feltöltése, 1B, kód: C9H

5) Soros IO vezérlő utasítások

• SIM ”A” 7. bitjét kiteszi a SOD vonalra, 1B, kód: 30H

• RIM ”A” regiszter 7. bitjébe menti a SID vonal állapotát, 1B

6) Megszakítás kezelés• µP-ban „főprogram” fut. Külső periféria kiszolgálást kér. A µP elmenti aktuális állapotát

(PC, Flag regiszter, regiszterek), majd meghívja a megszakítást lekezelő „megszakítási szubrutint”.

• Jelzés lehet:– Belső interrupt kezelővel (TRAP, RST vonalak)– Külső IC-vel

• EI Enable Interrupt, megszakítás engedélyezése, 1B, FBH

• DI Disable Interrupt, megszakítás tiltása, 1B, F3H

• Megszakítások egymásba „skatulyázhatók” (ha a prioritás engedi)• Megszakítási szubrutin felépítése:

– µP állapotának mentése (PUSH)– EI?– Megszakítási program– Állapot visszaállítása (POP)– EI?– RET

• A µP az INTA kimeneten jelzi a külvilág (megszakítást kérő felé), hogy a megszakítás regisztrálva lett

Belső megszakítás kezelő

• 8 prioritási szint:

• IT0→ 0000H

• IT1 → 0008H

• .

• TRAP →0024H

• RST5.5 →002CH

• RST6.5 →0034H

• RST7.5 →003CH

Megsz. kezelő.

Intr RST5.5 RST7.5

Intr

IntA RST6.5 Trap

INTR7.5: maszkolható, 1. legnagyobb prioritás, felfutó élre aktív

INTR6.5: maszkolható, 2. legnagyobb prioritás, szintre érzékeny

INTR5.5: maszkolható, 3. legnagyobb prioritás, szintre érzékeny

TRAP (RST4.5):nem tiltható 4.legnagyobb prioritás

INTR: maszkolható (tiltható), legkisebb prioritású

D(irect) M(memory) A(cces) mód

• HOLD bemeneten jelezheti egy másik Master a µP felé, hogy le akarja foglalni a sínt.

• HLDA kimeneten jelzi a µP , hogy elengedte a sínt.

HLDA

HOLD

Adat címzési módok:A) Közvetlen operandusú

• utasításban van az adat. Pl.: ADI 32D

Műveleti kód + Adat MemóriaµP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

B) Direkt címzés

• A műveleti kód mellet megtalálható az operandus memória címe. Pl.: JNZ 1345H (itt van az operandus). Utasítás 3B-os!!!

Műveleti kód + Cím Memória

Operandus

µP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

C) Indirekt címzés

• A műveleti kód által hivatkozott regiszter/cím az operandus címét tartalmazzaH, L regiszter pár tartalmazza a címet. Pl.: MVI M, 11D

Műveleti kód + Cím Memória

Cím

Operandus

µP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

D) Bázis regiszteres címzés

• Műveleti kódban utalás az operandust tartalmazó regiszterre. Pl.: MOV A, B

Műveleti kód + Regiszter MemóriaµP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

E) PC relatív címzés

• A címet a PC és a műveleti kód (~offszet) együttesen adják

Műveleti kód + Offszet Memória

Operandus0

Operandus1

Operandus2

.

Operanuds n

µP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

+

0D, 1D, 2D, …nD

F) Indexelt címzés

• A címet a PC és valamely regiszter tartalma (~offszet) együttesen adják

Műveleti kód Memória

Operandus

µP belső

Regiszterei

B

A

PC

SP

Cím információ

Adat információ

Regiszter utalás

+0D, 1D, 2D, …nD

Recommended