Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » calculatoare
INTRERUPERILE LA MICROPROCESOARELE INTEL

INTRERUPERILE LA MICROPROCESOARELE INTEL


INTRERUPERILE LA MICROPROCESOARELE INTEL

1. Scopul lucrarii

Scopul lucrarii - studentii se vor familiariza cu modurile de apelare ale diferitelor intreruperi care asigura accesul la dispozitivele de intrare/iesire sau alte periferice, specifice microprocesoa­relor Intel functionand "in modul real".

2. Memoriu de instructiuni

O intrerupere este de fapt o atentionare transmisa sitemului de calcul care anunta aparitia unui eveniment. La microprocesoarele Intel 8086 pot exista maxim 256 intreruperi. La semnalarea unei intreruperi se sare din programul principal la o adresa unde se afla o Rutina de Tratare a Intreruperii (RTI) specifica cererii. Nu exista rutine asociate cu cele 256 de intreruperi.



Pentru memorarea celor 256 rutine de intrerupere sunt folosite adresele de memorie de la 0000h:0000h =>0000h : 0400h(exclusiv).

Figura 6.1. Tabela vectorilor de intrerupere, fiecare vector dispune de patru octeti care includ offsetul si segmentul. Deci sunt rezervati 1024 octeti sau 1KB pentru tabela vectorilor de Intrerupere in Mod Real

Figura 6.2. Modul de salvare in stiva a registrelor IP si CS

Etapele parcurse la aparitia unei cereri de intreruperi:

a)     oprirea programului principal dupa executia instructiunii in curs;

b)     salt la rutina de tratare a intreruperii (dupa ce s-a salvat in stiva adresa de unde s-a facut saltul, iar registrele de adrese au fost incarcate cu adresa de inceput a rutinei);

c)     executia rutinei;

d)     revenire in programul principal.

Intreruperile se pot clasifica (functie de cauza care genereaza intreruperea):

Intruperi externe microprocesorului: NMI, INTR, etc.

Ex: - afisaj

- intrare/iesire consola

Intreruperi interne microprocesorului INT x:

Ex: INT 0 - impartirea la zero

INT 1 - trasare pas cu pas

INT 3 - breakpointer

INT 4 - apelata de INT 0 daca OF=0 NOP, daca OF=1 se executa INT 4

- tentativa de adresare a unei zone de memorie care nu exista

- tentativa de executarea a unei instructiuni care are cod inexistent

La aparitia unei intreruperi interne, programul curent in curs de executie se termina si controlul este transmis sistemului de operare.

O alta clasificare a intreruperilor functie de nivelul la care sunt definite intreruperile:

a) Intreruperi hard. Rutinele sunt scrise de furnizori

b) Intreruperi BIOS. Rutinele sunt scrise de proiectantii BIOS-ului calculatorului.

Ex:

intreruperea 10h - lucrul cu ecranul in mod grafic;

-     intreruperea 11h - ofera informatii despre echipamentele instalate in sistem.

c) Intreruperi DOS. Rutinele sunt scrie de proiectantii sistemului de operare.

Ex:

intreruperea 20h - terminarea unui program.

intreruperea 33h - lucrul cu mouseul

d) Intreruperi definite de programatori.

3. Instructiuni de intrerupere

O alta convetie care se utilizeaza in acest laborator este:

tip: un operand de 8 biti care indica tipul unei intreruperi si face parte din formatul instructiunii (adresare imediata).

Cerere de

OF DF IF TF SF ZF AF PF CF

INT [tip]

intrerupere

0 0

software

Descrierea formala a semanticii, in general:

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F)

(IF) 0

(TF) 0

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS)

if tip then

(CS) (4 tip + 3) (4 tip + 2)

else

(CS) (0000FH) (0000EH)

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP)

if tip then

(IP) (4 tip + 1) (4 tip)

else

(IP) (0000DH) (0000CH)

Operanzi

Exemple

Descrierea formala a semanticii

INT

(SP) (SP) - 2

((SS)0H + (SP)+1) ((SS)0H + (SP)) (F)

(IF)

(TF)

(SP) (SP) - 2

((SS)0H +(SP)+1) ((SS)0H+(SP)) (CS)

(CS) (0000FH) (0000EH)

(SP) (SP) - 2 

((SS) 0H +(SP) +1) ((SS) 0H+(SP)) (IP)

(IP) (0000DH) (0000CH)

tip (tip

INT  10H

(SP) (SP) - 2

((SS)0H + (SP)+1) ((SS)0H + (SP)) (F) (IF) 0

(TF)

(SP) (SP) - 2

((SS)0H +(SP)+1) ((SS)0H+(SP)) (CS)

(CS) (00043H) (00042H)

(SP) (SP) - 2

((SS)0H +(SP) +1) ((SS)0H+(SP)) (IP)

(IP) (00041H) (00040H)

Cerere de

OF DF IF TF SF ZF AF PF CF

INTO

intrerupere

0 0

software de tip 4

Descrierea formala a semanticii:

if (OF) = 1 then

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F)

(IF) 0

(TF) 0

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS)

(CS) (00013H) (00012H)

(SP) (SP) - 2

((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP)  

(IP) (00011H) (00010H)

Revenire din

OF DF IF TF SF ZF AF PF CF

IRET

rutina de deservire

x  x x x x x x x x

a unei intreruperi

Reface registru indicatori salvat in stiva si salveaza valorile registrelor IP si CS.

Observatii:

Echivalente intre instructiuni:

CALL ↔INT

RET ↔ IRET

Nr

CALL

INT

Se sare la orice locatie in intervalul de adresare de 1MB

Sare la o adresa fixatain tabelul vectorilor de intrerupere

Utilizat de programator in secvente de instructiuni de program

Intrerupere externa activata extern, poate apare in orice moment

Nu poate fi mascata

INTR poate fi mascata

Se salveaza automat in CS: IP adresa noii instructiuni


In plus fata de CS:IP, registrul de fanioane poate fi salvat

RET este ultima instructiune

IRET face acelati lucru ca POP pentru F, CS:IP

3.1. Intreruperi elementare.

BIOS - ansamblu de subrutine de tratare a intreruperilor ce asigura servicii de baza.

Zona de lucru rezervata

- rezervarea se realizeaza la initializarea calculatorului;

- structura de date este pentru configuratia maxima permisa;

- unele date sunt initializate la pornirea PC-ului.

Detalirea instructiunilor

Apelul unei intreruperi presupune o pregatire anterioara a unor date in registrele folosite de rutina de tratare a acelei intreruperi. In general, trebuie parcurse urmatoarele etape:

se plaseaza un cod specific in AH;

 se incarca alte registre (asa cum se va vedea in descrierea sumarului functiei dorite), se pregatesc zonele de memorie tampon, sirurile de caractere ASCII, etc. ;

se invoca INT tip;

 se urmaresc indicatorii de eroare adusi din rutina de deservire a intreruperii atunci cand este cazul (de exemplu fanionul CF) si se folosesc datele rezultate din executarea rutinei, acolo unde ele exista.

3.1.1. INT 10H - "Servicii Video"

intrare:
AL = desired video mode. AH = modul video dorit

iar alte registre utilizate sunt AL, CX, DX,

Lista de serviciilor video asigurata de ROM-BIOS este urmatoarea:

AH Functia

00H impune modul video, 40x25. 16 colors. 16 culori. 8 pages. 8 pagini

01H impune marimea/forma cursorului

02H impune pozitia cursorului

DH = rand.
DL = column. DL = coloana.
BH = page number (0..7). BH = numar pagina (0 .. 7).

03H citeste pozitia cursorului,

04H citeste "light pen"

05H selecteaza pagina activa a afisajului

06H misca "fereastra" afisata in sus (sau sterge "fereastra")

07H misca "fereastra" afisata in jos citeste caracter sau atribut

09H scrie caracter sau atribut

0AH scrie caracter

0BH selecteaza paleta de culori sau chenarul

0CH scrie un pixel in modul grafic

0DH citeste un pixel in modul grafic

intrare: CX = column. CX = coloan, DX = row. DX = rand.
output: iesire: AL = pixel color AL = pixel de culoare

0EH scrie caracter in modul "TTY"

AL - caracter

0FH citeste modul video

10H impune paleta

11H generator caractere

12H functii speciale

13H scrie sir caractere ("string")

intrare:
AL = write mode: AL = Mod de scriere:
bit 0 : update cursor after writing; bit 0: actualizare cursor;
bit 1 : string contains
attributes bit 1: atribte .string
BH = page number. BH = numarul paginii.
BL =
attribute if string contains only characters (bit 1 of AL is zero). BL = daca sirul contine numai caractere
CX = number of characters in string (attributes are not counted). CX = numarul de caractere in sir .
DL,DH = column, row at which to start writing. DL, DH =pozitie coloana, rand scriere sir.
ES:BP points to string to be printed. ES: BP- sir de puncte pentru a fi tiparite

14H incarca tipuri de caractere "LCD"

15H incarca parametrii afisajului

08H (convertibili PC)

1AH cere/impune coduri afisaj

1BH cere stare/functie

1CH salveaza/aduce starea video

AX = 1003h - comuta intensitate / sclipitoare


03h - text mode.
example:when bit 5 of CH is set to 0 , the cursor is visible. when bit 5 is 1 , the cursor is not visible.

Exemple:

a) INT 10h / AH = 01h
Cand bitul 5 din CH este 0 logic, cursorul este vizibil iar cand este 1, cursorul nu este vizibil.

; hide blinking text cursor: ; Ascunde cursorul textul clipeste:
mov ch , 32 mov ch, 32
mov ah , 1 mov ah, 1
int 10h int 10h

; show standard blinking text cursor: ; Cursor Standard, clipeste text:
mov ch , 6 mov ch, 6
mov cl , 7 mov cl, 7
mov ah , 1 mov ah, 1
int 10h int 10h

; show box-shaped blinking text cursor: ; Afiseaza caseta in forma de text cursorul clipeste:
mov ch , 0 mov ch, 0
mov cl , 7 mov cl, 7
mov ah , 1 mov ah, 1
int 10h int 10h

INT 10h / AH = 0Ch - change color for a single pixel. b) INT 10h / AH = 0Ch - schimba culoarea pentru un singur pixel.

input: mov al , 13h mov al, 13H

mov ah , 0 mov ah, 0
int 10h ; set graphics video mode. int 10h; grafic stabilit modul video.
mov al , 1100b mov al, 1100b
mov cx , 10 mov cx, 10
mov dx , 20 mov dx, 20
mov ah , 0ch mov ah, 0ch
int 10h ; set pixel. int 10h; set de pixeli.

INT 10h / AH = 13h - write string. c) INT 10h / AH = 13H example:


mov al , 1 mov al, 1
mov bh , 0 mov bh, 0
mov bl , 0011_1011b mov bl, 0011_1011b
mov cx , msg1end - offset msg1 ; calculate message size. mov cx, msg1end - offset msg1; calcula mesaj dimensiune.
mov dl , 10 mov dl, 10
mov dh , 7 DH mov, 7
push cs impinge cs
pop es pop es
mov bp , offset msg1 mov BP, compensate msg1
mov ah , 13h mov ah, 13H
int 10h int 10h
jmp msg1end jmp msg1end
msg1 db ' hello, world! ' msg1 db 'Hello, World!'
msg1end: msg1end:

INT 11h - get BIOS equipment list. INT 11H - afiseaza lista de echipamente.

return: intoarcere:
AX = BIOS equipment list word, actually this call returns the contents of the word at 0040h:0010h. AX = lista echipamente BIOS, returneaza continutul de la 0040h:0010h.

Currently this function can be used to determine the number of installed number of floppy disk drives.Exemplu:


Bit fields for BIOS-detected installed hardware: Bit domenii pentru BIOS-detectate de hardware instalate:
bit(s) Description bit (s) Descriere
15-14 Number of parallel devices. Numarul de 15-14 paralel dispozitive.
13 Reserved. 13 sunt rezervate.
12 Game port installed. 12 Game port instalat.
Number of serial devices. 11.9 Numarul de dispozitive de ordine.
Reserved. 8 rezervate.
7-6 Number of floppy disk drives (minus 1): 7.6 Numarul de floppy disk (minus 1):
00 single floppy disk; 00 singura discheta;
01 two floppy disks; 01 doua dischete;
10 three floppy disks; 10 trei dischete;
11 four floppy disks. 11 patru dischete.
5-4 Initial video mode: 5-4 initiala modul video:
00 EGA,VGA,PGA, or other with on-board video BIOS; 00 EGA, VGA, PGA, sau cu alte on-board video BIOS;
01 40x25 CGA color. 01 40x25 CGA culoare.
10 80x25 CGA color (emulator default). 10 80x25 CGA culoare (emulator implicit).
11 80x25 mono text. 11 80x25 mono text.
Reserved. 3 rezervate.
PS/2 mouse is installed. 2 PS / 2 mouse-ul este instalat.
Math coprocessor installed. 1 Math coprocessor instalat.
Set when booted from floppy. 0 Setare cand bootat de pe discheta.

INT 12h - get memory size. INT 12h - marime memorie floppy

return: intoarcere:
AX = kilobytes of contiguous memory starting at absolute address 00000h, this call returns the contents of the word at 0040h:0013h. AX = acest apel returneaza continutul de cuvant la 0040h: 0013h.


Floppy drives are emulated using FLOPPY_0(..3) files. Floppy drive sunt imitat, folosind FLOPPY_0 (.. 3) de fisiere.

 
INT 13h / AH = 00h - reset disk system. INT 20H - "Termina Program"

Aceasta instructiune este folosita pentru a iesi din program si pentru a reda controlul procesului parinte (in mod curent command.com, interpretorul de comenzi DOS). Restaureaza valorile din vectorii de control DOS: INT 22H, INT 23H, INT 24H. Elibereaza toate memoriile-tampon de fisiere (fisierele trebuie sa fie inchise mai intai daca au schimbari in lungime).

INT 21H - "Functii DOS"

Pasii parcursi pentru a accesa o functie DOS:

 AH ←numarul functiei DOS;

- AL ← numar subfunctie DOS (daca exista);

 se incarca registrele asa cum este descris in sumarul functiei DOS, se pregatesc zonele de memorie-tampon, siruri de caractere ASCII;

se invoca INT 21H;

se urmaresc indicatorii de eroare adusi din DOS (spre exemplu fanionul CF)

DOS pastreaza toate valorile existente in registre in momentul apelului cu exceptia registrelor folosite pentru intoarcerea informatiei.

Functia DOS 01H - "citeste Tastatura"

Primeste - AH

01H

Intoarce - AL

caracterul primit de la intrarea standard

Asteapta sa citeasca un caracter de la dispozitivul de intrare standard. Intoarce acest caracter catre dispozitivul standard de iesire. Daca Ctrl-Break este detectat, este executata INT 23H.

Citirea codurilor speciale pentru taste ca F1-F12, PgUp, cursor. necesita un apel repetat al acestei intreruperi. La primul apel se va intoarce in AL 0H, iar la al doilea codul extins ASCII.

exemplu:

mov ah , 1 mov ah, 1

int 21h int 21h

Functia DOS 02H - "afisaj"

Primeste - AH

DL

02H

caracterul trimis la iesirea standard

Intoarce

-

Trimite caracterul aflat in DL la dispozitivul standard de iesire. Pentru caracterul backspace (ASCII 8) muta cursorul cu o pozitie la stanga.

Daca Ctrl-Break este detectat, se executa INT 23H.

Functia DOS 06H - "intrare/iesire consola"

Primeste - AH

DL

06H

0..0FEH caracterul trimis la iesirea standard

0FFH asteapta caracter de la intrarea standard

Intoarce - ZF

AL

daca caracterul este din AL este valid caracterul citit, daca ZF=0

Daca in DL este plasat codul 0FFH, se realizeaza o citire de tip "no wait" a consolei, intorcandu-se ZF=1 daca nu este valid caracterul si, in caz contrar, ZF=0 (caracterul ce tocmai a fost citit este plasat in AL).

Daca in DL se afla un cod diferit de 0FFH, el este trimis catre dispozitivul standard de iesire.

Nu se face verificare pentru Ctrl-Break. Se face un apel de doua ori al acestui serviciu pentru citirea codurilor ASCII extinse.

exemplu:

mov ah , 2 mov ah, 2

mov dl , 'a' mov dl, 'v'

int 21h int 21h

Functia DOS 09H - "afiseaza sir"

Primeste - AH

DS:DX

09H

adresa unui sir terminat cu '$'(ASCII 24)

Intoarce  

-

Sirul ce se termina cu caracterul'$' este trimis la dispozitivul standard de ie]ire. Pentru caracterul backspace se procedeaza similar cu functia DOS 02H (se muta cursorul stanga cu o pozitie).

Procedura normala de afisare a unei linii noi este sa se insereze o pereche CR/LF (ASCII 13 urmat de ASCII 0A) in sir.

Sirurile ce contin '$' poate fi tiparite cu functia 40H (BX=0).

Functia DOS 0AH - "citire sir in zona de memorie-tampon"

Primeste - AH

DS:DX

0AH

adresa unei memorii-tampon de intrare

Intoarce

sirul de intrare plasat in memorie, cu simbol terminal CR (ASCII 13)

La intrare in subrutina de tratare a intreruperii, zona de memorie de la DS:DX trebuie sa fie configurata astfel:

|max| ? | ? ? ? ? ?

unde, max este intrarea maxima acceptabila (domeniu: 1 .. 254)

La iesirea din subrutina de tratare a intreruperii, zona de memorie de la trebuie sa fie configurata astfel: |max|len| T E X T 0DH

unde, len este lungimea actuata a intrarii, mai putin simbolul terminal CR (in exemplul dat este 4).

Caracterele sunt citite de la dispozitivul standard de intrare pana cand este intalnit CR (ASCII 13) sau atata timp cat numarul lor nu depaseste max-1. Daca valoarea max-1 este depasita, se da un semnal sonor de avertizare pentru fiecare caracter ce este tastat, pana cand este citit CR (ASCII 13).

Al doilea octet din memorie este umplut cu lungimea actuala a intrarii, mai putin simbolul terminal CR. Caracterul final din memoria-tampon este intotdeauna CR (care nu este numarat in octetul de lungime).

Daca este detectat Ctrl-Break, se executa INT 23H si zona de memorie ramane neschimbata.

exemplu:

org 100h org 100h

mov dx , offset msg mov dx, offset mesaj

mov ah , 9 mov ah, 9

int 21h int 21h

ret ret

msg db 'hello world $' mesaj db 'Sunt Student $'

Functia DOS 40H - "scrie in fisier via identificator"

Primeste -

AH

BX

DS:DX

CX

40H

identificator fisier

adresa in memorie din care se vor scrie datele

numarul octetilor pentru scriere

Nota: 0000H specifica sa se truncheze fisierul

Intoarce- AX

un cod de eroare daca CF este setat,

altfel, numarul octetilor scrisi actualmente

Datele cuprinse in numarul de octeti specificati prin CX sunt scrise in fisierul sau dispozitivul cu identificatorul din BX. Datele sunt luate incepand de la adresa data de DS:DX. Datele sunt scrise in pozitia curenta a pointerului de citire/scriere al fisierului.

Este folosita functia DOS 42H ("Lseek") pentru a poztiona pointerul de citire/scriere inainte de apel atunci cand este necesar (OPEN seteaza pointerul de citire/scriere la 0). Pointerul de citire/scriere este actualizat ca subsecventa a accesului secvential.

Se poate compara [ntotdeauna valoarea intoarsa in AX (numarul de octeti scrisi efectiv) cu CX (dimensiunea impusa a fi scrisa). Daca sunt egale scrierea s-a facut cu succes, altfel, (daca AX < CX) a intervenit o eroare (cel mai adesea pentru scrierea pe disc este mesajul 'disk full').

Pentru DOS 3.2+, daca la apel CX=0, fisierul este trunchiat la pozitia curenta a pointerului de fisier.

Functia DOS 4CH - "termina program - EXIT"

Primeste -AH AL

4CH

codul de iesire

Intoarce 

Intoarce codul procesului "copil" catre procesul "parinte" si seteaza o valoare a codului de iesire care poate fi ceruta de functia DOS 4DH ("Wait").

Desfasurarea lucrarii

Exemplul 1

Functia 02h a intreruperii 21h permite afisarea unui caracter pe ecran. Intreruperea asteapta in registrul AH codul functiei (02h) iar in registrul DL, codul ASCII al caracterului pe care dorim sa il afisam. Modul de apel este:

mov AH, 02h

mov DL, 'A'

int 21h

Exemplul 2

Functia 00h a intreruperii 10h permite schimbarea modului de lucru din mod text in mod grafic precum si a rezolutiei ecranului. Intreruperea asteapta in registrul AH codul functiei (00h), iar in registrul AL noul mod de lucru cu ecranul.

mov AH, 00h

mov AL, 12h

int 10h

Efectul acestui grup de instructiuni este schimbarea modului de lucru in mod grafic, la o rezolutie de 640x480 de pixeli si mod de lucru cu 16 culori.

Exemplul 3

Sa se citeasca de la tastatura numele unui fisier. Sa se afiseze acest fisier pe ecran

assume cs:code, ds:data

data segment

msg db 'Numele fisierului: $'

maxFileName db

lFileName db ?

fileName db dup (?)

buffer db dup (?),

openErrorMsg db 'Fisierul nu exista.$'

readErrorMsg db 'Nu se poate citii din fisier.$'

data ends

code segment

start

mov ax, data

mov ds, ax

; afisam mesajul cu functia 09h, int 21h

mov ah, 09h

mov dx, offset msg

int 21h

; citim de la tastatura numele fisierului cu ajutorul functiei 0ah, int 21h

mov ah, 0ah

mov dx, offset maxFileName

int 21h

; in urma citirii la adresa maxFileName + 2 = fileName se memoreaza numele fisierului citit

; la adresa maxFileName + 1 = lFileName se memoreaza dimensiunea sirului de caractere care reprezinta numele fisierului

; transformam numele fisierului intr-un sir ASCIIZ

mov al, lFileName

xor ah, ah

mov si, ax

mov fileName[si],

; deschidem fisierul cu functia 3dh, int 21h

mov ah, 3dh

mov al, ; deschidem fisierul pentru citire

mov dx, offset fileName

int 21h

jc openError ; eroare la deschiderea fisierului daca CF e setat

mov bx, ax ; salvam identificatorul fisierului in registrul bx

; cat timp nu e sfarsit de fisier citim din fisier si afisam pe ecran

goOn

mov ah, 3fh

mov dx, offset buffer

mov cx, ; citim maxim 100 de caractere

int 21h

jc readError

; in caz de succes functia 3dh intoarce in ax numarul de octeti cititi

; salvam numarul octetilor cititi si pregatim sirul pentru afisare

mov si, ax

mov buffer[si],

; afisam ce am citit

mov ah, 09h

int 21h

cmp si,

je goOn ; daca am citit 100 de octeti inseamna ca nu am terminat de citit

jmp endPrg ; sarim peste tratarea eventualelor erori

openError

mov ah, 09h

mov dx, offset openErrorMsg

int 21h

jmp endPrg

readError:

mov ah, 09h

mov dx, offset readErrorMsg

int 21h

endPrg:

mov ax,4c00h

int 21h

code ends

end start

Probleme Propuse

Urmatoarele probleme se vor rezolva in limbaj de asamblare:

1. Sa se tipareasca continutul registrilor si suma primilor 4 biti ai lor.

2. Sa se citeasca cate un caracter de la tastatura, fara ecou. Daca este cifra, sa se tipareasca pe ecran, daca este caracterul '$', se termina programul, in orice alta situatie se adauga caracterul intr-un buffer care se va tipari in final pe ecran.

3. Daca unitatea implicita este cea citita de la tastatura (X), atunci sa se selecteze ca si unitate implicita unitatea A:, in caz contrar, sa se selecteze unitatea X:. Orice situatie de eroare va fi semnalata.

4. Sa se afiseze data curenta si ziua curenta din saptamana (in litere).

5. Sa se afiseze ora sistem curenta sub forma hh:mm si sa se specifice cu sirul 'AM' sau 'PM' daca este antemeridian sau postmeridian.

6. Sa se afiseze spatiul liber de pe o discheta.

7. Sa se afiseze spatiul ocupat pe o discheta.

8. Sa se stearga un fisier al carui nume va fi introdus de la tastatura. Orice situatie de eroare va fi semnalata printr-un mesaj corespunzator.

9. Sa se afiseze numele si continutul directorului curent.

10. Sa se afiseze atributele unui fisier al carui nume va fi introdus de la tastatura.

11. Sa se pozitioneze atributele unui fisier al carui nume va fi introdus de la tastatura. Noile atribute vor fi determinate in urma unui dialog cu utilizatorul de la tastatura.

12. Sa se citeaca de la tastatura doua nume de fisiere. Sa se copieze primul fisier in cel de al doilea. Se va semnala orice situatie de eroare.

13. Sa se citeasca de la tastatura un nume de fisier si un nume de director. Sa se afiseze un mesaj corespunzator daca fisierul exista sau nu in directorul dat.

14. Sa se citeasca de la tastatura un cuvant si un nume de fisier. Sa se afiseze daca cuvantul exista sau nu in fisierul dat.

15. Sa se citeasca de la tastatura un doua nume de directoare dir1 si dir2. Sa se creeze directorul dir1dir2.

16. Sa se citeasca de la tastatura numele unui fisier. Sa se verifice daca dimensiunea fisierului este multiplu de 13, si in caz negativ sa se completeze fisierul cu un numar minim de octeti 0 astfel incat dimensiunea fisierului sa devina multiplu de 13.

Anexa Laborator 6

Tabela vectorilor de intrerupere (data de catalog)

Bibliografie

1.https://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte1at0.htm

2. https://spike.scu.edu.au/~barry/interrupts.html

3. https://heim.ifi.uio.no/~stanisls/helppc/idx_interrupt.html





Politica de confidentialitate


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