Intel 8080

Intel 8080 yra Intel gamintas aštuonių bitų mikroprocesorius. Šis procesorius pasirodė 1974 m ir neretai laikomas pirmuoju praktiniam pritaikymui iš tiesų tinkamu šio tipo prietaisu. Jis buvo programiškai suderinamas su anksčiau gamintu Intel 8008, kuris nepasiteisino, nes reikalavo pernelyg daug papildomų mikroschemų savo darbui palaikyti. Intel 8080 turėjo apie 6000 tranzistorių.
Tokius pat komandų sistemą bei kontaktų išdėstymą turinčius analogus gamino AMD, Mitsubishi, National Semiconductor, NEC, Siemens, ir Texas Instruments. Tarybų Sąjungoje gaminami analogai buvo vadinami KP580ИK80 (vėliau КР580ВМ80А).

Registrai

Procesorius turėjo septynis 8 bitų registrus, iš kurių šeši galėjo būti kombinuojami į 16 bitų poras (BC, DE ir HL). Jis taip pat turėjo 8 bitų akumuliatorių, 16 bitų steko rodyklę į atmintį (atsisakant 8008 buvusios vidinės steko atminties) ir 16 bitų programos skaitliuką. Su 16 bitų buvo galima pasiekti 65536 atminties ląsteles (64 kilobaitus). Procesoriaus pasirodymo metu tiek adresuojamos atminties apimties pakako.

Komandos

Dauguma 8 bitų operacijų buvo galimos tarp akumuliatoriaus ir arba vieno iš kitų registrų, arba atminties ląstelės, indeksuojamos registrų pora HL. Duomenų persiuntimas buvo galimas tarp bet kurių dviejų registrų arba registro ir minėtosios atminties ląstelės.
Visos procesoriaus komandos buvo koduojamos vienu baitu, bet kai kuriose jų po šio baito sekdavo vienas ar du baitai duomenų, dviejų baitų adresas arba vieno baito porto numeris. Visos duomenų persiuntimo tarp registrų komandos buvo koduojamos išimtinai vienu baitu, tuo užimdamos apie ketvirtį visos komandų sistemos. Procesorius turėjo 8 komandas paprogramei fiksuotu adresu iškviesti (RST). Jos buvo naudojamos pertraukimų aptarnavimui, kai kada – sisteminės bibliotekos paprogramių kvietimui.
Sudėtingiausia (ir ilgiausiai vykdoma) komanda buvo XTHL. Ji sukeisdavo vietomis registrų poros HL turinį su steko rodyklės adresuojamos ir jai sekančios atminties ląstelių turiniu. Komanda buvo skirta asemblerio programuotojų beveik nenaudotam paprogramės parametrų perdavimui per steką.

Šešiolikos bitų operacijos

Nors Intel 8080 paprastai minimas kaip aštuonių bitų procesorius, kai kurias operacijas buvo galima atlikti ir su 16 bitų skaičiais. Pavyzdžiui, buvo galima vienetu padidinti arba sumažinti registrų poros reikšmę (INX, DXC), sukeisti vietomis DE ir HL porų reikšmes (XCHG), sudėti 16 bitų skaičius (DAD) ir atlikti 16 bitų aritmetinį postūmį į kairę (DAD H).

Portų erdvė

8080 turėjo atskirą įvedimo/išvedimo įrenginių (portų) erdvę ir galėjo aptarnauti 256 įvedimo ir 256 išvedimo 8 bitų portus, tačiau skaitymo bei rašymo signalai atminčiai ir portams buvo bendri. Nustatyti, į ką kreipiasi procesorius, buvo galima tik papildomų mikroschemų pagalba. Todėl paprastesniuose kompiuteriuose portai buvo pasiekiami tiesiog kaip atminties ląstelės. Specialios portų skaitymo bei rašymo komandos (IN ir OUT) buvo arba nenaudojamos, arba naudojamos žinant jog procesorius dubliuoja aštuonių bitų porto adresą ir į aukštesnį atminties adreso baitą (pavyzdžiui, komanda IN 0E, nedekoduojant kreipimosi adresato, buvo analogiška skaitymo iš ląstelės 0E0E komandai LDA 0E0E).

Steko erdvė

Vienas iš procesoriaus būsenos bitų (žr. žemiau) rodydavo, jog procesorius kreipiasi į steko atminties ląstelę. Naudojant šį bitą, buvo galima sukurti iki 64 kilobaitų dydžio su pagrindine atmintimi nesusijusį (išorinį) steką. Tačiau tokia galimybė buvo naudojama itin retai. Ignoruojant šį bitą, stekas tapdavo pagrindinės atminties dalimi.

Procesoriaus būsenos žodis

Viename komandos vykdymo etapų duomenų magistralėje trumpam pasirodydavo procesoriaus būsenos žodis, aprašantis procesoriaus veiklą bei artimiausius ketinimus. Atskiri šio žodžio bitai informuodavo, į ką (atmintį, įvedimo – išvedimo portą ar steką) kreipiasi procesorius. Bitų reikšmės buvo reikalingos aptarnaujant pertraukimus ir tiesioginį atminties valdymą.