Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » calculatoare
Componenta ROM-BIOS (Read-Only Memory Basic Input/Output System)

Componenta ROM-BIOS (Read-Only Memory Basic Input/Output System)


Componenta ROM-BIOS (Read-Only Memory Basic Input/Output System)

BIOS-ul este un pachet de programe foarte compacte ce asigura operatiile fundamentale pe care le poate realiza hardul respectiv.

BIOS-ul este o interfata, un element de legatura ,un translator intre hardul calculatorului si softul ce ruleza pe calculator.

BIOS-ul este structurat in trei seturi de programe:

Primul set ruleza la punerea calculatorului sub tensiune si consta intru-un set de teste si programe de initializare ce verifica structura hard si pregateste soft calculatorul (Fig. 1.25).

In structura acestui prim set de rutine exita:



Rutine de autotestare a hardului la punerea sub tensiune denumite rutine POST (Power-On Self-Test). Aceste rutine integritatea memoriei si realizeaza unele teste hard pentru a vedea daca calculatorul este in stare normala de functionare, din punct de vedere hard.

Rutine de initializare, care au urmatoarele sarcini:

Crearea vectorilor de intrerupere;

Stabilirea configuratiilor echipamentelor calculatorului;

Pentru a le face funtionabile multe din echipamentele calculatorului contin registrii ce trebuie initializati. O parte din informatiile despre tipurile de echipamente si modul in care trebuiesc initializate diverse zone ale hardului pot fi introduse de utilizator intr-o memorie CMOS (RAM), care este accesibila utilizatorului prin intermediul unei rutine din secventa de initializare. Acesta memorie este accesata ca un port si are adresa de inceput 0070H.

Tot in faza de initializare intra si asa numitelor extensii BIOS. Daca s-a atasat calculatorului un nou tip de echipament, pentru care nu s-au prevazut rutine de gestionare in BIOS-ul de baza, aceste rutine (drivere) terbuie cautate si trebuie facuta legatura dintre tabela vectorilor de intrerupere si adresele de inceput ale acestor rutine. Chestiunea este valabila pentru situatia in care rutinele se afla in memorii ROM ce apartin adaptoarelor dispozitivelor atasate si sunt accesate undeva in blocurile C si D. Zona de inceput a acestor rutine este marcata prin numarul 55AAh.

Fig. 1.25. structura ROM-BIOS-ului

Incarcarea sistemului de operare de pe disc.

Al doilea set principal de programe continut de BIOS reprezinta rutinele ce realizeaza controlul detaliat si intim asupra tuturor componentelor din calculator. Cele mai folosite sunt rutinele cu ajutorul carora se controleaza dispozitivele I/O (ex. Harddisk). Aceste rutine se mai numesc si servicii ROM-BIOS si sunt inpartite in mai multe "grupuri de servicii". Fiecare grup are asociat un nivel propriu de intrerupere. Spre exemplu in tabelul de mai jos sunt prezentate cateva grupuri de servicii si intreruperile asociate lor.

INTRERUPERE

GRUP SERVICII

05H

Tiparire informatie pe ecran (Hard Copy)

08H

Ceasul de timp real

09H

Tastatura

10H

Video

11H

Determinarea echipamentelor

12H

Determinarea memoriei

13H

Dischete si hardiscuri

14H

Comunicatie asincrona (seriala)

15H

Servicii sistem (Extensii "AT")

16H

Tastatura

17H

Interfata paralela

18H

Interpretorul BASIC

19H

Incarcarea sistemului

1AH

Ceasul sistem

1BH

Tratare Ctrl/Break

1CH

Rutina utilizator pentru intreruperea de ceas

1DH

Tabela de parametri video


1EH

Tabela de parametri a discului floppy

1DH

Setul extins de caractere ASCII

41H

Tabela de parametri ai discului dur

46H

A doua tabela de parametri ai discului dur

4AH

Alarma utilizator

70H

Ceasul de timp real

Identificarea rutinei (a serviciului) dintr-un grup se poate face prin intermediul unui numar inscris in acumulator (in AH). La randul sau, fiecare serviciu poate avea mai multe subservicii, s/sau necesita niste parametri suplimentari. Acestia sunt dati prin intermediul registrilor AL, BX, CX sau/si DX. Toti acesti registrii (AX, BX, CX, DX) trebuie incarcati cu datele necesare apelarii si fuctionarii serviciului respectiv, inainte de lansarea intreruperii corespunzatoare grupului din care face parte serviciul dorit.

Spre exemplu, pentru grupul "Video" exista urmatoarele servicii identificate pe vaza valorii inscrise in AH:

Valoare

AH

Denumire serviciu video

00h

Selectarea modului video

01h

Stabilirea dimensiunii si formei cursorului

02h

Stabilirea pozitiei cursorului

03h

Citirea pozitiei si dimensiunii cursorului

04h

Citirea pozitiei creionului optic

05h

Selectarea paginii de afisare active

06h

Defilarea ferestrei in sus

07h

Defilarea ferestrei in jos

08h

Citirea caracterului si atributului de la cursor

09h

Scrierea caracterului si atributului la cursor

0Ah

Scrierea caracterului la cursor

0Bh

Selectarea paletei de culori

0Ch

Scrierea unui element de imagine

0Dh

Citirea unui element de imagine

0Eh

Scrierea unui caracter in mod TTY (Teletype)

0Fh

Citirea modului video curent

10h

Pozitionarea registrilor de paleta (PC junior, EGA)

11h

Functiile generatorului de caractere EGA

12h

Functii speciale EGA

13h

Scierea unui sir de caractere

14h

Utilizarea LCD-ului

15h

Obtinerea caracteristicillor fizice ale dispozitivelor de afisare

In situatia in care se utilizeaza limbajul de asamblare, intreruperea necesara selectarii grupului de servicii se realizeaza soft, utilizand instructiunea

INT nn

unde "nn" reprezinta intreruperea dorita. Instructiune incrementeaza pointerul de stiva (SP) cu doi, incarca in stiva indicatorii, sterge indicatorii TF si IF pentru a dezactiva intreruperile mascabile si cele pas cu pas. Controlul calculatorului este dat rutinei care corespunde intreruperii "nn" (se va vedea mai tarziu).

Urmatorul exemplu ilustreza modul in care pot fi utilizate intreruperole BIOS.

EX: Sa se scrie un program in limbaj de asamblare, care sa realizeze urmatoarele:

q      Sa stearga ecranul;

q      Se mute cursorul intr-o pozitie predefinita (de exemplu pe linia 10 si coloana 45);

q      Sa inscrie pe ecran, in pozitia curenta, caracterul aflat la o anumita adresa (spre exemplu la adresa 350).

Mentionam ca pentru a realiza acest program, vom lucra in DOS si vom folosi utilitarul "DEBUG".

Stergerea ecranului se face automat atunci cand este selectat un nou mod video (modul video specifica numarul de coloane, randuri, culori si alte caracteristici video). Pentru a nu schimva setarile calculatorului, initial se va citi modul video curent, iar apoi se va seta calculatorul tot cu acelasi mod video determinand in acest mod stergera ecranului.

Determinarea modului video curent se face utilizand serviciul "0Fh" din tabela grupului de servicii video. Pentru apelul acestui serviciu, se incarca AH cu data 0Fh. In urma apelarii acestui serviciu, se returneaza in registrul AL numarul modului video.

Se selecteaza modul video, din tabela grupului, prin inscrierea numarului "00h" in registrul AH. Valoarea numerica a modului video dorit, se transmite prin intermediul registrului AL (care este deja incarcat cu valoarea curenta a modului video).

Sectiunea de program care realizeaza acest lucrueste:

MOV AH,0F

INT 10

SUB AH,AH

INT 10

Instructiunea "SUB" asigura inscrierea in registrul AH a valorii 00h, pentru a se selecta serviciul 00h din grupul de servicii video, care la randul sau este selectat de instructiunea INT 10.

Pentru stabilirea pozitiei cursorului se va utiliza serviciul 02h (Stabilirea pozitiei cursorului). Pentru aceasta trebuie incarcat in registrul AH valoarea 02h, iar in registrii DH si si Dl, trebuie plasate numerele de ordine ale randului si respectiv coloanei corespunzatoare pozitiei unde se doreste deplasarea cursorului (in cazul nostru, DH-10 si DL-45). Registrul BH trebuie incarcar cu numarul paginii video (in cazul nostru 00h). Secventa de program care realizeaza acest lucru este :

MOV DH,10

MOV DL,45

SUB BH,BH

MOV AH,02

INT 10

Pentru tiparirea tiparirea caracterului inscris la locatia 300, se foloseste serviciul 0Eh (Scrierea unui caracter in mod TTY). In prealabil trebuie incarcat caracterul respectiv in registrul AL si bineinteles registrul AH trebuie incarcat cu 0Eh. Aceasta sectiune de program poate fi scrisa asa:

MOV AL,[350]

MOV AH,0E

INT 10

Scrierea programului se poate face direct in DOS, tastandu-se in ordine urmatoarele:

DEGUG

Enter

A

Spatiu

300

Enter

MOV AH,0F

INT 10

SUB AH,AH

INT 10

MOV DH,10

MOV DL,45

SUB BH,BH

MOV AH,02

INT 10

MOV AL,[350]

MOV AH,0E

INT 10

INT 20

Se observa ca inscrierea programului a inceput de la adresa 300. Ultima instructiune (INT 20) este o intrerupere a carei rutina reda sistemului de operare controlul asupra calculatorului (este un fel de END). Lansarea programului se face prin tastarea:

G=300

Enter

Ecranul se va sterge si undeva in pozitia (10, 45), va apare caracterul ASCII inscris la adresa 350.

Al treilea set de programe ce inta in sturctura BIOS-ului este un interpretor BASIC.

La calculatoarele noi acesta nu mai este.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.