<!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>