Mikroprocesor Intel 8080/85 i inne dr inż. Wiesław Madej Architektura procesora A F ALU B C D E H L PC SP Procesor 8-bitowy z 16-bitową szyną adresową. Może zaadresować 64kB (65536) komórek pamięci. Bity rejestru Flag (F) Rejestr zawiera 5 bitów: Z – bit zera (ustawia się na1 gdy wynik ostatniej operacji wynosi 0) S – bit znaku, (0-wynik dodatni 1-wynik ujemny) CY – bit przeniesienia AC – bit przeniesienia połówkowego P – bit parzystości, sygn. parzysty = 1 Struktura systemu 8080 8080 Φ1 DATA DATA Φ2 SYNC DBIN WR 8228 8224 STSTB MEM R MEMW IOR IOW Przykładowe rozkazy • MOV- rozkaz przesyłania pomiędzy akumulatorem i rejestrem • MVI- rozkaz wpisania do akumulatora konkretnej wartości • ADD B – do akumulatora dodaj wartość B i wynik w akumulatorze • ADI 12H – do akumulatora dodaj wartość 12 • ADC – dodanie z uwzględnieniem CY • ACI – dodanie z uwzględnieniem bitu przeniesienia CY (konkretna wartość) • SUB – odejmowanie • SUI – odejmowanie konkretnej wartości • SBB , SBI Procesor Z-80 Architektura procesora I A B C D E H L PC SP F A’ F’ ALU B’ C’ D’ E’ H’ L’ IX IY Bity rejestru Flag (F) Rejestr zawiera 6 bitów: Z – bit zera (ustawia się na1 gdy wynik ostatniej operacji jest równy 0) S – bit znaku, (0-wynik dodatni 1-wynik ujemny) CY – bit przeniesienia AC – bit przeniesienia połówkowego P/V – bit parzystości lub nadmiaru, sygn. parzysty = 1 N – bit odejmowania – umożliwia korekcję dziesiętną dla odejmowania Przykładowe rozkazy • LD – rozkaz przesyłania pomiędzy akumulatorem, rejestrami i pamięcią • ADD A,x – do akumulatora dodaj wartość x i wynik w akumulatorze • ADC A,x – dodanie z uwzględnieniem CY • SUB A,x – odejmowanie • SBC A,x • LDIR – skopiuj blok pamięci z inkrementacją • LDDR – skopiuj blok pamięci z dekrementacją • ADD HL,nn – dodawanie 16-bitowe Intel 8086 Pierwszy 16-bitowy mikroprocesor Intel 8086 Intel 8086 – wyprowadzenia Schemat blokowy Rejestr znaczników (flag) Bezpośrednio do jednostki arytmetyczno-logicznej dołączony jest 16bitowy rejestr znaczników (rejestr flag). Znajdujące się w nim flagi zostały podzielone na dwie grupy, tj. kontrolną i arytmetyczną. Flagi arytmetyczne dostarczają dodatkowych informacji na temat wyniku ostatniej operacji wykonanej przez jednostkę arytmetyczno-logiczną. Flagi kontrolne wpływają na sposób pracy mikroprocesora. Znaczniki (flagi) Mniej znaczący bajt rejestru znaczników odpowiada rejestrowi znaczników mikroprocesora 8080/8085. Cztery najbardziej znaczące bity pozostają nieużywane. Znaczenie poszczególnych znaczników jest następujące: • SF (sign flag) - znacznik znaku - równy najbardziej znaczącemu bitowi wyniku • ZF (zero flag) - znacznik zera • PF (parity flag) - znacznik parzystości - ustawiany w zależności od liczby jedynek w najmniej znaczących 8 bitach wyniku • AF (auxiliary carry flag) - znacznik przeniesienia połówkowego (pomocniczego) • CF (carry flag) - znacznik przeniesienia • OF (overflow flag) - znacznik nadmiaru • IF (interrupt flag) - znacznik przerwań • DF (direction flag) - znacznik kierunku, wskazuje, czy zawartości rejestrów SI i DI mają być zwiększane lub zmniejszane o jeden w czasie wykonywania operacji łańcuchowych – 0 - rejestry są zwiększane; 1 - rejestry są zmniejszane • TF (trap flag) - znacznik pułapki umożliwiającej pracę krokową – 0 - praca krokowa wyłączona – 1 - praca krokowa włączona, mikroprocesor po wykonaniu każdego rozkazu wykona skok do odpowiedniego podprogramu obsługi przerwania TRYBY ADRESOWANIA Mikroprocesor 8086 realizuje następujące tryby adresowania: • natychmiastowe • rejestrowe • bezpośrednie • pośrednie • bazowe • indeksowe • indeksowo-bazowe Adresowanie 20-bitowe Powstaje poprzez dodanie 16-bitowej zawartości licznika rozkazów i przesuniętej o 4 bity w lewo zawartości rejestru segmentowego. Po raz pierwszy zastosowano zapis adresu: SEGMENT:OFFSET Przerwa