Gut, das habe ich jetzt kapiert. Aber was meintest du mit schwer wenn der Ring gewechselt wird? In den Deskritoren der Segmente steht doch der Ring, das hat doch dann nichts mit dem Taskwechsel zu tun?
EDIT: Also so habe ich es bis jetzt verstanden:
;Task wechsel:
IRQ0:
cli
pusha
push ds
push es
push fs
push gs
mov eax,ss
mov [mem],eax
mov [mem],sp
mov eax,[mem]
mov ss,eax
mov sp,[mem]
mov al,20h
out 20h,al
pop fs
pop es
pop ds
popa
sti
iret
;[mem] ist jeweils ein anderer Speicherbereich!!!
Aber wenn ich jetzt einen Task zum aller ersten mal starte, dann holt der IRQ0 Werte vom Stack die ich aber noch nie gespeichert habe??? komisch, scheck gerade gar nichts mehr...