From 4e9197016656f8be41750b1529585cfd51fe4380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Wed, 28 Mar 2007 15:52:40 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20modification=20de=20la=20gestion=20des?= =?UTF-8?q?=20contextes=20pour=20un=20usage=20plus=20=C3=A9tendu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- noyau/8259a.asm | 64 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/noyau/8259a.asm b/noyau/8259a.asm index 47da5eb..2349253 100644 --- a/noyau/8259a.asm +++ b/noyau/8259a.asm @@ -272,29 +272,49 @@ endp installirqhandler interruptionbloc db '/interrupts',0 -PROC savecontext far +PROC savecontext FAR ARG @pointer:word -USES si -push [word ptr ss:bp] -push esi -pushfd -mov si,[@pointer] -pop [dword ptr cs:(regs si).seflags] -pop [dword ptr cs:(regs si).sesi] -pop bp -mov [cs:(regs si).seax],eax -mov [cs:(regs si).sebx],ebx -mov [cs:(regs si).secx],ecx -mov [cs:(regs si).sedx],edx -mov [cs:(regs si).sedi],edi -mov [cs:(regs si).sebp],ebp -mov [cs:(regs si).sesp],esp -mov [cs:(regs si).scs],cs -mov [cs:(regs si).sds],ds -mov [cs:(regs si).ses],es -mov [cs:(regs si).sfs],fs -mov [cs:(regs si).sgs],gs -mov [cs:(regs si).sss],ss +USES eax,si,ds +pushfd +push eax +push ebx +push ecx +push edx +push esi +push edi +push ds +push es +push fs +push gs +push ss +mov si,[@pointer] +mov ds,[ss:bp+4] +mov eax,ebp +mov ax,[word ptr ss:bp] +push eax +push [word ptr ss:bp+4] +xor eax,eax +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 endp savecontext