OS-programming

Thomas Lenherr lenherr@netpeople.ch
Sat Oct 20 04:46:00 GMT 2001


Hi everybody,

I regret, that I have to write my problem here, but I think it's my last
chance to solve my problem, so please, don't be angry, but it my problem has
ABSOLUTLY NOTHING to do with gcc!


I'm writing a little PM-program, but now I need to switch back to real mode.

After some hours of work this switch worked fine and I was back home in real
mode. But then a strange thing happened:

After I've loaded all registers with its new segments
(CS,DS,ES,FS,GS:0x800/SS:0x7e0) and loaded a new idt (content: dw 0x03ff dd
0) I reactivated the interrupts with sti.
After these steps, the processor always made a fault a rebooted, but I don't
know why. I search the point where the machine crashes with a death-loop
(die: jmp die) and found out, it was the sti.
I have no idea, why reboots, I didn't change any segments but 0x7c0-0x840
and 0xb800.
I tested also, if the stack-access results in the fault, but it doesn't.

Please help me!

Thanks

Thomas Lenher



More information about the Gcc-help mailing list