Întreruperi
Noţiunea de întrerupere presupune intreruperea programului în curs de execuţie şi transferul controlului
la o rutină de tratare. Mecanismul prin care se face acest transfer este, în esenţă, de tip apel de procedură,
ceea ce înseamnă revenirea în programul întrerupt, după terminarea rutinei de tratare. Pe lângă rutinele de
tratare ale sistemului de operare, pot fi folosite şi propriile rutine. Întreruperile software apar ca urmare a
execuţiei unor instrucţiuni, cum ar fi INT, INTO, DIV, IDIV. Intreruperile hardware externe sunt provocate
de semnale electrice care se aplică pe intrările de întreruperi ale procesorului, iar cele interne apar ca urmare
a unor condiţii speciale de funcţionare a procesorului (cum ar fi execuţia pas cu pas a programelor).
Într-un sistem cu procesor 8086, pot exista maxim 256 de întreruperi. Fiecare nivel de întrerupere poate
avea asociată o rutină de tratare (procedură de tip far). Adresele complete (4 octeţi) ale acestor rutine sunt
memorate în tabela vectorilor de intrerupere, pornind de la adresa fizică 0 până la 1KB. Intrarea în tabelă se
obţine înmulţind codul întreruperii cu 4. Rutina de tratare a întreruperii se termină obligatoriu cu
instrucţiunea IRET.
Noţiunea de întrerupere presupune intreruperea programului în curs de execuţie şi transferul controlului
la o rutină de tratare. Mecanismul prin care se face acest transfer este, în esenţă, de tip apel de procedură,
ceea ce înseamnă revenirea în programul întrerupt, după terminarea rutinei de tratare. Pe lângă rutinele de
tratare ale sistemului de operare, pot fi folosite şi propriile rutine. Întreruperile software apar ca urmare a
execuţiei unor instrucţiuni, cum ar fi INT, INTO, DIV, IDIV. Intreruperile hardware externe sunt provocate
de semnale electrice care se aplică pe intrările de întreruperi ale procesorului, iar cele interne apar ca urmare
a unor condiţii speciale de funcţionare a procesorului (cum ar fi execuţia pas cu pas a programelor).
Într-un sistem cu procesor 8086, pot exista maxim 256 de întreruperi. Fiecare nivel de întrerupere poate
avea asociată o rutină de tratare (procedură de tip far). Adresele complete (4 octeţi) ale acestor rutine sunt
memorate în tabela vectorilor de intrerupere, pornind de la adresa fizică 0 până la 1KB. Intrarea în tabelă se
obţine înmulţind codul întreruperii cu 4. Rutina de tratare a întreruperii se termină obligatoriu cu
instrucţiunea IRET.
Niciun comentariu:
Trimiteți un comentariu