Motorola 6800

Z Wikipedie, otevřené encyklopedie
Motorola 6800
Mikroprocesor Motorola MC6800
Mikroprocesor Motorola MC6800
Specifikace
Kódové značeníMC6800
Uvedení1974
VýrobciMotorola
Frekvence1 MHz (pozdější verze 2 MHz)
Instrukční sada6800
Patice40-pin DIP
NástupceMC6801, MC6805, Motorola 68000

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

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 Datapoint 2200 procesoru. 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

Reference

V tomto článku byl použit překlad textu z článku Motorola 6800 na anglické Wikipedii.

Související články