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) */