300 likes | 434 Views
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.
E N D
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 Vezérlő Kimenet Memória
4 címes utasítás-szervezés 5 mezős utasítás: • 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
1 címes µP felépítése Flag ALU Bemeneti reg. Kimeneti reg. Akku Átmenti reg. Vezérlő CLK Dekóder Op. kód Cím Utasítás regiszter = Memória címreg. Adatregiszter PC Memória
Korszerűbb µP felépítés → C(entral) P(rocessed) U(nit) • Külső memória • Külső periféria illesztők Perifériák Vezérlő egység Memória CPU RAM ROM I/O 1 I/O 2 I/O N Legkorszerűbb felépítés
Intel 8085-ös CPU GND X1 VCC oszcillátorhoz kötve ← másik Master lefoglalta a sínt X2 HOLD CPU resetelve ← → fogadta a másik Master kérését Reset Out HLDA Soros kimeneti vonal ← → fosc / 2 SOD CLK OUT Soros bemeneti vonal → ← PC = 0, Regiszterek törlése SID RESET IN Nem maszkolható Restart interrupt → ← külső memória R/W műveletre kész Trap READY Restart Interrupt → → IO / Memória művelet, státusz RST 7.5 IO / M Restart Interrupt → → státusz RST 6.5 S1 Restart Interrupt → → adatbusz kész az olvasásra RD RST 5.5 Interrupt → → adatbuszon az adat már készen áll WR INTR Interrupt észlelve ← INTA → címtároló engedélyezése ALE AD0 → státusz S0 AD1 A15 AD2 A14 Cím-, és adatjel Multifunkciós, Tri-State AD3 A13 AD4 A12 Címjel, Tri-State AD5 A11 AD6 A10 AD7 A9 +5V VSS A8
8085-ös blokkvázlata IntA RST6.5 Trap SID SOD Intr RST5.5 RST7.5 Intr Megsz. kezelő. Soros I/O Műv. reg. Átmenti reg. B reg. C reg. A(kku) Flag D reg. E reg. H reg. L reg. ALU Verem pointer (SP) Ut. dekóder Program Száml. (PC) +/- cím tároló X1 Időzítés és vezérlés X2 Cím buffer Adat/Cím buff. Reset out CLK OUT IO/M HLDA RD WR S0 S1 Reset In Ready ALE HOLD AD0 – AD7 A8 – A15
Programkód elkészítése 0000H A-ba 32D Assembly kód 0001H 0002H B-be 11D EEPROM memória 0003H A és B összeadása 0004H MVI A, 32D MVI B, 11D ADD B . . . STA 8000H HLT Assembly fordító és programozó 7FFEH STOP 7FFFH 8000H 8001H RAM memória FFFBH FFFCH FFFDH FFFEH FFFFH
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íme D: cél regiszter kiválasztó bit S: forrás regiszter kiválasztó bit ((H)(L)): a H és L regiszterekben lévő memória címre történik
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 / dataVAGY kapcsolat • XRA r / M / datakizáró VAGY kapcsolat • INR r / MInkrementálás • DCR r / MDekrementálás • CMP r / MKomparálás • CMAKomplemetálás (Akku) • PCHL (H,L) → (PC) • SPHL(H,L) → (SP)
3) Ugró utasítások • 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.
Ugró utasítások • JMP addr feltétel nélkül, kód: C3H, 3B • Feltételes ugró utasítás: • JZ addrugrik,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 addrha a paritás páros, CCC = 101B
4) Szubrutin hívás, utasításai 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 ► ► ► ► ► ► ► ► ► ► ► ► ► ► ► ► Szubrutin: a kódban egyszer definiált eljárás, melyet akárhányszor hívhatunk meg, használhatunk fel. A= B= C= D= ZF= 10 20 30 3 2 1 0 10 30 0 1
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 • RETSP-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 • EIEnable Interrupt, megszakítás engedélyezése, 1B, FBH • DIDisable 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ő IntA RST6.5 Trap • 8 prioritási szint: • IT0→ 0000H • IT1 → 0008H • . • TRAP →0024H • RST5.5 →002CH • RST6.5 →0034H • RST7.5 →003CH Intr RST5.5 RST7.5 Intr Megsz. kezelő. 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 HLDA • 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.
Adat címzési módok:A) Közvetlen operandusú • utasításban van az adat. Pl.: ADI 32D µP belső Regiszterei B A PC SP Műveleti kód + Adat Memória 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!!! µP belső Regiszterei B A PC SP Műveleti kód + Cím Memória Operandus 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 µP belső Regiszterei B A PC SP Műveleti kód + Cím Memória Cím Operandus 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 µP belső Regiszterei B A PC SP Műveleti kód + Regiszter Memória 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 0D, 1D, 2D, …nD µP belső Regiszterei B A PC SP Műveleti kód + Offszet Memória Operandus0 Operandus1 Operandus2 . Operanuds n + Cím információ Adat információ Regiszter utalás
F) Indexelt címzés • A címet a PC és valamely regiszter tartalma (~offszet) együttesen adják µP belső Regiszterei B A PC SP Műveleti kód Memória Operandus + 0D, 1D, 2D, …nD Cím információ Adat információ Regiszter utalás