int86 en functies int86x
Deze functies zijn algemene software 8086 onderbreken interfaces die in Registers dos.h. worden bepaald worden geplaatst aan de gewenste waarden en deze functies worden geroepen om MS-dos aan te halen onderbreekt. De verklaring van de functie int86 is als volgt:
int int86(int intno, union REGS *inregs,
union REGS *outregs);
int86x is de variatie van functie int86. Het wordt verklaard als volgt:
int int86x(int intno, union REGS *inregs,
union REGS *outregs, struct SREGS *segregs);
Zowel voeren de functies int86 als int86x een software 8086 uit onderbreken gespecificeerd door argumentintno of wij kunnen zeggen om onderbreek te produceren wordt gespecificeerd door intno.
Met functie int86x is de toegang mogelijk slechts aan S en DS en niet aan Cs en SS zodat kunt u een software aanhalen 8086 onderbreekt die een waarde van DS verschillend van het standaardgegevenssegment neemt en/of een argument in S neemt.
Deze functies kopiëren registerwaarden van inregs in de registers vóór uitvoering van de software onderbreken. De functie int86x kopiëert ook segregs - ds en segregs - Swaarden in de overeenkomstige registers alvorens de software uit te voeren onderbreekt. Deze eigenschap staat programma's toe die verre wijzers gebruiken of een groot model van het gegevensgeheugen om te specificeren welk segment voor de software moet worden gebruikt onderbreekt.
De functies kopiëren de huidige registerwaarden aan outregs, draagt de status van vlag aan het x.cflag- gebied in outregs en de waarde van het 8086 vlaggenregister aan het x.flags- gebied in outregs, nadat de software winst onderbreekt. De functie int86x herstelt ook DS en plaatst segregs - S en segregs - ds gebieden aan de waarden van de overeenkomstige segmentregisters.
In beide functies inregs en outregs kan aan de zelfde structuur richten en beide functies keren na voltooiing de waarde van BIJL van de software terug onderbreken. Als draag wordt de vlag geplaatst, wijst het gewoonlijk erop dat een fout is voorgekomen.
|