rt_IRQ0_interrupt: push %ds push %es pushl %eax pushl %edx pushl %ecx movl $0x18,%edx mov %dx,%es mov %dx,%ds movb $0x20,%al outb %al,$0x20 call *(RTaction + 0 * 4) cmpl $1,SFIF je 1f popl %ecx popl %edx popl %eax pop %es pop %ds iret 1: sti popl %ecx popl %edx popl %eax pop %es pop %ds push %ds push %es pushl %eax pushl %edx pushl %ecx movl $0x18,%edx mov %dx,%es mov %dx,%ds cli movl SFREQ,%edx andl SFMASK,%edx bsrl %edx,%eax jz 991f movl $0,SFIF sti jmp *SFIDT,%eax,4 991: movl $1,SFIF sti popl %ecx popl %edx popl %eax pop %es pop %ds iret