<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY id=role_body style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Arial" 
bottomMargin=7 leftMargin=7 topMargin=7 rightMargin=7><FONT id=role_document 
face=Arial color=#000000 size=2>
<DIV>Bonjour,</DIV>
<DIV> </DIV>
<DIV>   Dans l'article concernant les interruptions matérielles et les 
exceptions, j'ai remarqué que vous empiliez les registres.</DIV>
<DIV> </DIV>
<DIV>    Pourquoi empilez-vous les registres lors de l'appel 
des interruptions ?</DIV>
<DIV> </DIV>
<DIV>    Cela n'est pas une obligation étant donné que le 
processeur réalise déjà cette opération (chapitre 5 de la doc intel volume 3). 
Pour ma part, j'ai écrit, il  a quelques temps un driver souris en mode 
protégé ainsi qu'un driver clavier. Je n'empilais pas les registres, la seule 
chose que je faisais était de restaurer la pile (POP BP) et de réaliser 
un (IRET) pour dépiler le registre (EFLAGS) sans oublier d'envoyer un ACK 
au PIC concerné.</DIV>
<DIV> </DIV>
<DIV>Voilà à quoi ressemblait la fin de la procédure pour la souris:</DIV>
<DIV> </DIV>
<DIV> Out(MASTER_PORT_A, 0x20);<BR> Out(SLAVE_PORT_A, 0x20); </DIV>
<DIV> </DIV>
<DIV> __asm__ ("mov %ebp, %esp");<BR> __asm__ ("pop 
%ebp");<BR> __asm__ ("iret");</DIV>
<DIV> </DIV>
<DIV>    Alors pourquoi empiler les registres ?</DIV>
<DIV> </DIV>
<DIV>    Dans certains codes je trouve même des instructions 
comme "CLI" et "STI", pourquoi étant donnée que lors de l'appel d'une interrupt 
gate le processeur réalise déjà cette opération ?</DIV>
<DIV> </DIV>
<DIV>Krys.</DIV>
<DIV> </DIV>
<DIV> </DIV></FONT></BODY></HTML>