Code: Select all
call irq_handler
pop ebx ; reload the original data segment descriptor
mov ds, bx ; <- EIP points to this line
mov es, bx
mov fs, bx
mov gs, bx
Code: Select all
call irq_handler
pop ebx ; reload the original data segment descriptor
mov ds, bx ; <- EIP points to this line
mov es, bx
mov fs, bx
mov gs, bx
I posted a link to the file that the problem is in, and if you want to see the whole source, the full tree is here.Craze Frog wrote:You need to debug it yourself or post more code so we can debug it. We can't find the fault in irq_handler and called functions when we can't see them...
OK, I'll take a look at that.Craze Frog wrote:And better print the value of esp at various stages to see if it is what you expect.
No, I can assure you that problem isn't in that file. It's the inside irq_handler or any functions called from irq_handler.Steve the Pirate wrote:I posted a link to the file that the problem is inCraze Frog wrote:You need to debug it yourself or post more code so we can debug it. We can't find the fault in irq_handler and called functions when we can't see them...
I meant that that is the file that contains the last instruction executed (mov ds, bx) before the exception is raised. It's probably not the file that the problem is in - I suppose it's far more likley there is a problem with my stack.Craze Frog wrote:No, I can assure you that problem isn't in that file. It's the inside irq_handler or any functions called from irq_handler.