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 |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |