Motorola 6800, MC6800, přesněji Motorola MC6800, je v informatice označení pro 8bitový mikroprocesor firmy Motorola představený roku 1974. Mikroprocesor byl součástí mikropočítačového systému M6800, který zahrnoval obvody pro sériové a paralelní rozhraní, RAM, ROM a další podpůrné integrované obvody. Oproti mikroprocesoru Intel 8080 z téhož roku, který vyžadoval tři napájecí napětí, vystačila celá stavebnice M6800 s jedním napájecím napětím 5 V.
Charakteristika náhled|Schematická značka mikroprocesoru Motorola MC6800. Motorola 6800 má 16bitovou adresní sběrnici, která umožňuje adresovat až 64 KiB paměti, a 8bitovou obousměrnou datovou sběrnici. Architektura a instrukční sada 6800 byla ovlivněna populárními minipočítači PDP-11 firmy Digital Equipment Corporation. 72 instrukcí se sedmi režimy adresování dávalo celkem 192 operačních kódů. Originál MC6800 pracoval s taktovací frekvencí až 1 MHz, pozdější verze měly maximální frekvenci 2 MHz.
Motorola kromě integrovaných obvodů dodávala kompletní systém pro vývoj programů v jazyce symbolických adres. Zákazník mohl používat software na vzdáleném počítači se sdílením času nebo vlastní minipočítačový systém. Motorola EXORciser byl stolní počítač s M6800 určený pro prototypování a ladění nových projektů. Rozsáhlý balíček dokumentace zahrnoval katalogové listy všech integrovaných obvodů potřebných pro vytvoření počítačového systému, dva programátorské manuály pro jazyk symbolických adres a sedmisetstránkový aplikační manuál popisující, jak navrhnout pokladní terminál.
Mikroprocesor 6800 byl oblíbeným stavebním prvkem při konstrukci počítačových periférií, elektronických testerech a pokladních terminálech. MC6802 uvedený na trh v roce 1977, obsahoval 128 bytovou RAM a oscilátor vnitřních hodin na čipu. Motorola vyráběla také jednočipové mikropočítače, jako MC6801 a MC6805, které obsahovaly na jediném čipu RAM, ROM a I/O, díky čemuž byly oblíbené v automobilových aplikacích.
V roce 1979 byla uveden 16bitový mikroprocesor Motorola 68000, který byl později rozšířen na 32 bitů. V roce 1999 bylo všechno co Motorola potřebovala vlastní analogové IC.
Design MC6800 Registry mikroprocesoru Motorola 6800 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (číslo bitu) Hlavní registry A Akumulátor A B Akumulátor B Indexregistry IX Index register SP Stack Pointer Programový čítač PC Program Counter Registr příznaků 1 1 H I N Z V C Příznaky
Motorola 6800 a Intel 8080 byly navrženy současně a byly si podobné svými funkcemi. Intel 8080 byl nadmnožinou Intel 8008, který byl založený na procesoru Datapoint 2200. Architektura 6800 byla modelovaná podle procesoru DEC PDP-11. Oba byly kompatibilní s TTL logikou, měly 8bitovou obousměrnou datovou sběrnici, 16bitový ukazatel zásobníku a 16bitovou adresní sběrnici, která dovolovala používat až 64 KiB paměti a byly dodávány v pouzdře DIP se 40 vývody. Motorola 6800 měla dva osmibitové akumulátory a 16bitový indexový registr. Režim bezprostředního adresování umožňoval rychlý přístup k prvním 256 bajtům paměti. Mikroprocesor Intel 8080 měl více interních registrů a instrukce vyhrazené pro práci s I/O porty. Zatímco Intel 8080 po resetu vynuloval čítač instrukcí a začal provádět program od adresy 0, 6800 načetla hodnotu čítače instrukcí z nejvyšší adresy a začal provádět program od této adresy. Motorola 6800 používala třístavové řízení sběrnice, což dovolovalo vyřadit ovládání adresní sběrnice procesorem a umožňovalo dalším zařízením přímý přístup do paměti. Díky tomu mohl např. řadič disku přenášet data do paměti nebo z paměti bez zatížení procesoru.
Ukázka kódu Následující zdrojový kód v jazyce symbolických adres 6800 je procedura MEMCPY pro kopírování bloku dat zadané délky z jednoho místa v paměti na jiné.
; memcpy -- ; Zkopíruje blok paměti z jednoho místa na jiné.
; Vstupní parametry ; cnt - Počet bytů, které se mají kopírovat ; src - Adresa zdrojového bloku ; dst - Adresa cílového bloku
cnt dw $0000 src dw $0000 dst dw $0000
memcpy public ldab cnt+1 ;Nastav B = cnt.L beq check ;Jestliže cnt.L=0, pak jdi na check loop ldx src ;Nastav IX = src ldaa ix ;Načti A z (src) inx ;Zvětši src o 1 stx src ldx dst ;Nastav IX = dst staa ix ;Ulož A do (dst) inx ;Zvětši dst o 1 stx dst decb ;Odečti 1 od B bne loop ;Znovu na loop stab cnt+1 ;Nastav cnt.L = 0 check tst cnt+0 ;Jestliže cnt.H=0, beq done ; pak konec dec cnt+0 ;Odečti 1 od cnt.H decb ;Odečti 1 od B bra loop ;Znovu na loop done rts ;Návrat
Odkazy
Externí odkazy
Reference
Související články Motorola 68000
Kategorie:8bitové mikroprocesory Kategorie:Procesory Motorola