By the way, Im already in pmode and the selectors are for 16 bits...
Code: Select all
isr_00_wrapper:
push ds
push es
pusha
mov ax, 0x10
mov ds, ax
mov es, ax
call isr_00
; ** I have added here for test of return a print "isr_00 has returned"
popa
pop es
pop ds
iret
isr_20_wrapper:
push ds
push es
pusha
mov ax, 0x10
mov ds, ax
mov es, ax
call isr_20
popa
pop es
pop ds
iret
Code: Select all
int 0x20
xor bx, bx
div bl
Now my question is, if I comment the lines abou the division by zero, the programm execution continue his flow and the termination message is printed.
But if I the divide exception (or interruption) cause that the control dosent flow, but I have tracked to the mark ** above int he code with a print of string that it return.
Also I have tryied copy completely the code of "isr_20_wrapper:" to "isr_00_wrapper:" without change nothing even the call to isr_20, and the hang continue there.
Hope I have explained my situation, any tought?, is that the correct behaviour?, I need cleear some flag or something for interrupt 0 ?
Thx, if you need more of my code say me...