Organizarea RAM în ms dos

numele programului de formate ASCIZ pentru blocurile cu PSP

Dimensiunea blocului este de 16 octeți.

Pentru a determina primul bloc al lanțului, puteți utiliza funcția nedocumentată MSDOS 52h. care în es: bx returnează o listă de listă. în es: [bx-2] este segmentul primului bloc MCB.







Manipularea evenimentelor în MSDOS

Unele evenimente pot apărea în timpul funcționării. Evenimentele sunt sincrone și asincrone. Evenimentele sincrone sunt cele care apar în timpul executării programului întotdeauna în același loc. Evenimentele asincrone sunt cele care apar independent de program. Evenimentele sincrone includ apelurile către sistemul DOS, BIOS-ul. Evenimentele asincrone includ apeluri pentru apăsarea tastelor de pe tastatură, sosirea unui simbol pe canalul de comunicare și așa mai departe. Întreruperile asincrone sunt, de obicei, întreruperi hardware.

Primul 1024 bytes - acest tabel vector (tabelul întrerupe), cuprinzând pentru fiecare 256 de vectori de două cuvinte pointer la handler. Când apelați controlerul de întrerupere de întrerupere corespunzătoare menține steaguri în registrul stivă, stabilește interdicția de întrerupere, cu mai mare sau egal cu numărul IRQ (pentru întreruperi hardware) păstrează stiva în CS, IP, și trece de control la un handler de întrerupere. Operatorul trebuie să efectueze acțiunile necesare și să revină la comanda IRET. În unele literaturi, este greșit scris despre necesitatea de a permite întreruperi înainte de a se întoarce, acest lucru nu trebuie făcut, deoarece după rezoluția întrerupere începe să proceseze următoarea întrerupere de așteptare înainte de a IRET de instruire, și există o probabilitate mare de a primi un mesaj:







Depășirea stivei interne. Sistemul sa oprit.

Există două modalități posibile de gestionare a evenimentelor de către distribuitorul său:
  1. înlocuirea completă a dispozitivului de manipulare;
  2. încorporarea handlers de întrerupere într-un lanț.

Este necesar să se recurgă la înlocuirea completă destul de rar. De obicei, acest lucru este folosit pentru a scrie un handler pentru vectori "goi". Încorporarea în lanțul procesatorilor de întreruperi utilizează toți driverele de software care trebuie să obțină control când apar anumite evenimente.

Integrarea în lanțul procesatorilor de întrerupere are loc în conformitate cu următoarea schemă:

Uneori trebuie să obțineți controlul atât înaintea bătrânului manipulator, cât și după acesta. Acest lucru se face după cum urmează:

Comenzile Pushf și Call Far simulează Int. comanda Pushf. POPF. Retf 2 face Iret. dar returnează steagurile care au provocat programul, care a returnat vechiul handler.

Recepții de "încadrare frumoasă" cu înlocuirea unei părți a echipei:







Articole similare

Trimiteți-le prietenilor: