www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

idt.S (1437B)


      1 .section .text
      2 
      3 .irp _ligne_1,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
      4 .irp _ligne_2,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
      5 
      6 .globl enregistrerContexteInterruption\_ligne_1\_ligne_2
      7 enregistrerContexteInterruption\_ligne_1\_ligne_2:
      8 
      9 /* Les noms de registres proviennent de :
     10  * x86-doc-vol3.pdf fig 6.2 (section 6.2.1) */
     11 pushl %esp
     12 pushl %ebp
     13 
     14 pushl %edi
     15 pushl %esi
     16 
     17 pushl %eax
     18 pushl %ebx
     19 pushl %ecx
     20 pushl %edx
     21 
     22 subl $2,%esp
     23 pushw %ds
     24 pushw %es
     25 pushw %fs
     26 pushw %gs
     27 pushw %ss
     28 
     29 call *(tableGestionnairesInterruption + 4*0x\_ligne_1\_ligne_2)
     30 
     31 popw %ss
     32 popw %gs
     33 popw %fs
     34 popw %es
     35 popw %ds
     36 addl $2,%esp
     37 
     38 popl %edx
     39 popl %ecx
     40 popl %ebx
     41 popl %eax
     42 
     43 popl %esi
     44 popl %edi
     45 
     46 popl %ebp
     47 popl %esp
     48 
     49 iret
     50 
     51 .endr
     52 .endr
     53 
     54 
     55 .section .data
     56 
     57 .globl tableEnregistreursContexteInterruption
     58 tableEnregistreursContexteInterruption:
     59 .irp _ligne_1,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
     60 .irp _ligne_2,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
     61 	.long (enregistrerContexteInterruption\_ligne_1\_ligne_2)
     62 .endr
     63 .endr
     64 
     65 /* .globl tableEnregistreursContexteInterruption
     66    tableEnregistreursContexteInterruption:
     67    .long (_tableEnregistreursContexteInterruption) */
     68 
     69 .globl tableGestionnairesInterruption
     70 tableGestionnairesInterruption:
     71 .irp _ligne_1,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
     72 .irp _ligne_2,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
     73 	.long (gestionnaireInterruptionVide)
     74 .endr
     75 .endr
     76 
     77 /* .globl tableGestionnairesInterruption
     78    tableGestionnairesInterruption:
     79    .long (_tableGestionnairesInterruption) */