Microprocesorul Putina istorie... Primul microprocesor,4004 pe 4 biti,a fost realizat de firma INTEL in 1971.Acesta a fost repede imbunatatit, rezultand microprocesorul 8008. In anul 1974 Intel realizeaza a doua generatie de microprocesoare al carei reprezentant de baza este 8080.Acesta a fost primul microprocesor de uz general avand o importanta deosebita pentru industria de microcalculatoare. In 1978, a treia generatie introduce 8086 trecandu-se de la microprocesoarele pe 8 biti la cele pe 16.Acesta este punctul unde incepe evolutia familiei 80x86.Microprocesorul 8088, frate mai mic al lui 8086, este folosit pentru realizarea calculatorului IBM Personal Computer introdus in 1981, cu care incepe revolutia calculatoarelor personale.Familia 80x86 se mareste in 1982 cu microprocesorul 80186.Acesta este arhitectural identic cu 8086 dar contine cateva dispozitive sistem incorporate in acelasi circuit.In acelasi an este introdus si microprocesorul 80286 care are o arhitectura extinsa fata de 8086 El poate lucra exact ca un 8086 avand si unele facilitati in plus. Incepand cu acest microprocesor au fost introduse mecanismele de memorie virtuala, de multitasking si de protectie.In 1985 a fost introdus 80386 care face saltul la microprocesoarele pe 32 biti,dezvoltand si conceptele introduse de 80286. In 1989 apare 80486 care respecta arhitectura lui 80386 ingloband insa si coprocesorul matematic 80387 in acelasi circuit.80486 mareste mult performantele reducand viteza interna de executie a instructiunilor. Fiecare generatie de microprocesoare din familia 80x86 a pastrat compatibilitatea cu microprocesoarele aparute anterior.Astfel programele scrise pentru 8086 pot fi executate pe sisteme bazate pe microprocesoarele 80286,80386,80486. Performantele acestor microprocesoare sunt datorate structurii interne de 16 biti si arhitecturii "pipeline" care permite instructiunilor sa fie preincarcate in timpul ciclurilordisponibile ale magistralei. Arhitectura microprocesorului... Microprocesoarele in general executa un program prin executia repetata a urmatorilor pasi: - incarcaea instructiunii urmatoare din memorie - citirea unui operand(daca instructiunea o cere) - executarea instructiunii - scrierea rezultatului(daca instructiune o cere) Arhitectura microprocesorului 8086permite ca unii pasi sa fie executati simultan in doua unitati diferite din unitatea centrala(UC). Unitatea de executie executa instructiunile, iar unitatea de interfata cu magistrala incarca instructiunile, citeste operanzii si scrie rezultatele. Cele doua unitati pot opera independent si pot de cele mai multe ori sa suprapuna executia instructiunii cu incarcarea instructiunilor urmatoare. Datorita acestui mecanism, practic timpul de incarcare dispare in majoritatea cazurilor. Unitatea de executie... Unitatea de executie contine o unitate aritmetico-logica care gestioneaza indicatorii de stare de conrol al unitatii centrale si manevreaza registrii generali si operanzii instructiunilor. Toti registrii si caile de date interne sunt de 16 biti pentru a mari viteza transferurilor interne. Unitatea de executie nu are nici o legatura cu exteriorul, cu magistrala sistemului. Instructiunile sunt preluate dintr-o coada mentinuta de unitatea de interfata cu magistrala. Unitatea de interfata cu magistarla... Unitatea de interfata cu magistrala efectueaza toate operatiile cu magistrala necesare unitatii de executie. Datele sunt transferate intre unitatea centrala si memorie sau dispozitivele de intrare/iesire, la cererea unitatii de executie. In plus in timpul in care unitatea de interfata cu magistrala incarca instructiunile in memorie. in plus in timpul in care unitatea de executie este ocupata cu executia instructiunilor, unitatea de interfata cu magistrala incarca instructiuni din memorie intr-o memorie RAM interna numita coada fluxului de instructiuni. Aceasta are dimensiunea de 4 octeti la 8088 si 6 octeti la 8086. Intreruperi... === BIOS === 05h - rezervata - folosita pt. tiparirea ecranului la imprimanta. Este apelata direct de intreruperea de tastatura atunci cand se apasa SHIFT+PRINT SCREEN. Ea pozitioneaza un octet la adresa 0000:0500H care poate avea urmat. valori: - 00h - Nu a fost apelata tiparirea ecranului sau tiparirea precedenta s-a terminat - 01h - Tiparirea in curs de executie. - FFh - A aparut o eroare la ultima tiparire efectuata a ecranului. 09h - tastatura genereaza o intrerupere de acest tip la fiecare apasare sau lasare a unei taste, care corespunde unei intreruperi hardware. Pt. tastele ASCII cand este intalnit un 'make code' codul ASCII si codul SCAN al tastei sunt plasate in zona tampon a tastaturii.Aceasta zona se afla la adresa 0000:041EH si are o dimensiune de 32 octeti. Codurile sunt plasate in zona tampon la locatia adresata de pointerul cozii zonei tampon care se afla la adresa 0000:041CH.In urma acestei operatii pointerul cozii este incrementat cu 2. + Daca au fost apasate tastele ALT,CTRL sau SHIFT se actualizeaza octetii se stare de la adresa 0000:0417H si 0000:0418H. + Daca a fost tastata combinatia CTRL+ALT+DEL, octetii de la adresa 0000:0472H sunt initializati cu valoarea 1234H si se preda controlul rutinei de initializare. 11h - Returneaza in AX o valoare ce indica echipamentele instalate in sistem. Aceste informatii sunt memorate la adresa 0000:0410H din zona de date a bios-ului. * MS-DOS este marca inregistrata a firmei Microsoft. * PC-DOS este marca inregistrata a firmei IBM