210 likes | 368 Views
Z80 riistvara ja programmeerimise mudelid. Aadressi siin (bus) 16 bitti Mälu Väline I /O Andmesiin 8 bitti Kahesuunaline andmevahetus M älu Väline I /O. Z80 juht ja staatussignaalid. M 1 Machine cycle one, madal olek n äitab et CPU loeb käsku mälust
E N D
Z80 riistvara ja programmeerimise mudelid • Aadressi siin (bus) 16 bitti • Mälu • Väline I/O • Andmesiin 8 bitti • Kahesuunaline andmevahetus • Mälu • Väline I/O
Z80 juht ja staatussignaalid • M1 Machine cycle one, madal olek näitab et CPU loeb käsku mälust • MREQ Memory Request; 3 olekuline signaal, näitab kas aadresssiinil on sobiv seis • IORQ I/O Request 3 olekuline signaal naitab aadresssiini madalama osa valmisolekut välisseadme aadresseerimiseks • RD; 3 olekut, näitab valmisolektu lugeda andmeid • WR, analoogiline kirjutamiseks
Z80 välised nõudesignaalid • RESET • INT, katkestuse nõue, vastus on IORQ M1 ajal • NMI, nonmaskable interrupt • BUSRQ, bus request • WAIT, lisab tsükleid viitmaks aega
Z80 väliste nõudesignaalide vastused jm • BUSAK, Bus acknowledge • HALT, tegi halt käsu • RFSH, naitab et aadressiini madalamad 8 bitti omavad värsket seisu dünaamilise mälu jaoks, MREQ • Clock • +5V ja GND
Z80 registrid • Üldotstarbelised registrid; BC,DE,HL • Akumulaator A, 8 bitti, operand ja tulemus • Alternate register • Index register IX, IY, mälu indeks • Stack pointer SP, pinumälu järg • Program Counter PC
Z80 lipud • Register F kui Flag • C, Carry flag, SCF SSF • Z, zero • S, signflag D7 • P/V Parity • H Half carry * • N Add/subtract
Masinatsüklid ja siini ajastus • 158 intruktsiooni • Opkood • Operand • 1 bait vs mitu baiti • Intstruktsiooni tsükkel, 1-6 masinatsüklit või 1-6 operatsiooni • Masinatsükkel, 1 operatsiooni aeg, 3-6 T perioodi • T-periood on 1 kella periood
Masinatsükkel • Opcode Fetch • Memory read • Memory write • I/O read • I/O write • Interrupt Acknowledge • Nonmaskable Interrupt • Bus Acknowledge
Opcode fetch • Iga instruksiooni 1 operatsioon • M1,MREQ,RD • 2002h LD B,A kopeerib A->B
Instruktsioonide kiirvaade • Formaat • 1bait LD A,B • 2baiti LD B,32H • 3baiti LD BC,2080H • 4baiti LD IX,(2000H)*
Data copy or load • Registrist registrisse • LD A,B • bait registrisse või mälupessa • LD A,32H • 16bitti registripaari • LD HL,2050H • Mälust registrisse või vastupidi • LD A,(2080H) • Sisendseadmest akumulaatorisse • IN A,(01h) • Akumulaatorist väljundisse • OUT (07h),A • Pinumällu • Push BC • Registrivahetus altarnate registriga • EXX
Aritmeetika • Liitmine • ADD A,B • ADD A,97H • Lahutamine • SUB C • SUB 47H • Increment/decrement • INC B • DEC BC • Komplement • CPL • NEG
Loogika • Loogika funktsioonid • AND B • XOR B • Nihe • RRA • RLC B • Võrdlus • CP B • CP 97H
Biti tehted • Biti test • BIT 7,B • Biti seade • SET 7,A • RES 2,B
Hargnemised • Hüpe • JP C,2050H • JR NZ,0FH suhteline hüpe • Alamprogramm • CALL 2050h • CALL Z 2070h tingimuslik
Kontroll • HALT • DI, EI
Z80 assembler • Hexadecimal • Formaat • START: LD B, 32H; lae bait
Z80 direktiivid • ORG; ORG 0100H • END • EQU; PORT1 EQU 01H • DB/DEFB; define byte; DB a2h,9fh • DW/DEFW; define word dw 2050h • DS/DEFS; define storage; OUTBUF DS 4 • Constant suffix h,d,b,q
CROSSassembler • Source • OBJ • LST • HEX • COM • BAK
Data copy op • LD r1,r2 1 byte • LD B,C • Ld r, 8bit 2 byte • LD B, 32H