Ich versuche, einige Interrupts aus dem geschützten Modus in C++ aufzurufen, indem ich zurück in den Real-Modus gehe, den Interrupt aufruft und in den geschützten Modus zurückschalte. Ich erhalte einen Fehler:Interrupts mit einem Register aufrufen
Ich versuche, dies zu beheben, aber ich weiß nicht, wo ich anfangen soll. Hier ist ein Auszug aus meinem Code:
void intupt(char intr) //Call interrupt function. INTR is number of interrupt.
{
pm2rm(); //Protected Mode To Real Mode
__asm
{
mov al, [intr] //Put intr to AL register
int al // call interrupt using AL
}
rm2pm(); //Real Mode to Protected Mode
}
Warum bekomme ich diesen Fehler? Irgendwelche Vorschläge, warum das passiert?
Um einen Real-Mode-Interrupt aufzurufen, drücken Sie einfach die Flags und führen Sie einen Fernaufruf über die Interrupt-Vektortabelle durch. – Jester
Welchen Compiler benutzen Sie? Was macht der Code in 'pm2rm()'? Lädt es das CS-Register mit einem geeigneten Real-Mode-Segmentwert neu? Oder löscht es nur das PE-Bit in CR0? –