feat: modification de la gestion des contextes pour un usage plus étendu

This commit is contained in:
Nicolas Hordé 2007-03-28 15:52:40 +00:00
parent 5af55420ca
commit 4e91970166
1 changed files with 42 additions and 22 deletions

View File

@ -272,29 +272,49 @@ endp installirqhandler
interruptionbloc db '/interrupts',0 interruptionbloc db '/interrupts',0
PROC savecontext far PROC savecontext FAR
ARG @pointer:word ARG @pointer:word
USES si USES eax,si,ds
push [word ptr ss:bp] pushfd
push esi push eax
pushfd push ebx
mov si,[@pointer] push ecx
pop [dword ptr cs:(regs si).seflags] push edx
pop [dword ptr cs:(regs si).sesi] push esi
pop bp push edi
mov [cs:(regs si).seax],eax push ds
mov [cs:(regs si).sebx],ebx push es
mov [cs:(regs si).secx],ecx push fs
mov [cs:(regs si).sedx],edx push gs
mov [cs:(regs si).sedi],edi push ss
mov [cs:(regs si).sebp],ebp mov si,[@pointer]
mov [cs:(regs si).sesp],esp mov ds,[ss:bp+4]
mov [cs:(regs si).scs],cs mov eax,ebp
mov [cs:(regs si).sds],ds mov ax,[word ptr ss:bp]
mov [cs:(regs si).ses],es push eax
mov [cs:(regs si).sfs],fs push [word ptr ss:bp+4]
mov [cs:(regs si).sgs],gs xor eax,eax
mov [cs:(regs si).sss],ss mov ax,[word ptr ss:bp+2]
push eax
mov ax,bp
add ax,4
push eax
pop [(regs si).sesp]
pop [(regs si).seip]
pop [(regs si).scs]
pop [(regs si).sebp]
pop [(regs si).sss]
pop [(regs si).sgs]
pop [(regs si).sfs]
pop [(regs si).ses]
pop [(regs si).sds]
pop [(regs si).sedi]
pop [(regs si).sesi]
pop [(regs si).sedx]
pop [(regs si).secx]
pop [(regs si).sebx]
pop [(regs si).seax]
pop [(regs si).seflags]
ret ret
endp savecontext endp savecontext