Intel 8080 este al doilea microprocesor produs de Intel. S-a lansat în luna aprilie a anului 1974 și este o variantă îmbunătățită a Intel 8008 fără a fi compatibil cu acesta. Inițial putea să ruleze la o viteză de 2 MHz, dar o revizuire a acestuia numită 8080A-1 (cunoscută și ca 8080B) putea să ruleze la o viteză de 3.125 MHz. Intel 8080 are nevoie de două circuite integrate pentru a funcționa, generatorul de ceas i8224 și de controlorul de bus i8228.

Descriere

Registre interne Microprocesorul conține 7 registre principale care pot reține 8 biți (A,B,C,D,E,H și L), unde A este registrul primar numit accumulator și celelalte 6 pot fi utilizate individual sau în perechi pentru a forma registre care pot reține 16 biți (BC,DE,HL) depinzând de instrucțiune. Pe lângă cei 7 registre principale, mai are un registru numit indicatorul de stivă și un registru numit contor program.

Steaguri Procesorul menține niște steaguri care indică rezultate aritmetice și logice. Doar unele instrucțiuni afectează steagurile.

Steagurile sunt următoarele:

Semn (S sau Sign), este înălțat dacă rezultatul este negativ Zero (Z), este înălțat dacă rezultatul este nul. Paritate (P sau Parity), este înălțat dacă numărul de 1 biți in rezultat sunt pari Căra (C sau Carry), este înălțat dacă ultima adunare rezultă în a căra sau dacă ultima scădere are nevoie de împrumutare.

Exemplu cod Următorul cod sursă este o subrutină numită memcpy care copiază o bucată din memorie de o anumită dimensiune în altă locație.

; memcpy ; ; Regiștrii de intrare ; BC - Numărul de baiți care trebuie să fie copiați ; DE - Adresa sursei ; HL - Adresa destinației ; ; Regiștrii de ieșire ; BC - Zero

org 1000h ;Originea la 0x1000 sau 1000h memcpy public mov a,b ;Copiază registrul B în registrul A ora c ;Aplică operațiunea pe biți OR pe A și C și păstrează rezultatul în registrul A rz ;Întoarce-te dacă steagul zero este înălțat loop: ldax d ;Încarcă A din adresa indicată de DE mov m,a ;Salvează A în adresa indicată de HL inx d ;Crește DE inx h ;Crește HL dcx b ;Scade BC (nu afectează steagurile) mov a,b ;Copiază B în A ora c ;A = A | C (setează zero) jnz loop ;Sari la 'loop:' dacă steagul zero nu este înălțat ret ;Întoarcere

Descrierea pinilor

A10, pin de ieșire, pinul de adresare 10 GND, împământare D4 | D5 | D6 | D7 | D3 |= bidirecționali, pinii de date D2 | D1 | D0 | -5V RESET, pin de intrare, atunci când acesta este setat la 0 sau împământare, procesorul va începe să execute cod de la adresa 0000. HOLD, pin de intrare, cerere pentru acces direct al memoriei, procesorul își va deconecta pinii de adresare și pinii de date INT, pin de intrare, cerere întrerupere φ2, pin de intrare INTE, pin de ieșire, procesorul are două instrucțiuni pentru a seta nivelul acestui pin, de obicei în calculatoarele simple este folosit pentru a acționa diverse lucruri. DBIN, pin de ieșire, procesorul citește din memorie sau din pinii de intrare WR, pin de ieșire, procesorul scrie în memorie SYNC, pin de ieșire +5V HLDA, pin de ieșire, confirmare acces direct al memoriei, procesorul se va conecta la pinii de adresare și pinii de date φ1, pin de intrare READY, pin de intrare, prin acest pin se poate suspenda procesorul WAIT, pin de ieșire, procesorul indică dacă este în stare de așteptare A0 | A1 |=pini de ieșire, pini de adresare A2 | +12V, trebuie să fie conectat ultimul și primul deconectat A3 | A4 | A5 | A6 | A7 | A8 | A9 |= pini de ieșire, pini de adresare A15 | A12 | A13 | A14 | A11 | Categorie:Microprocesoare Intel