# 1 "mouse.S"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "mouse.S"
# 1 "mouse.S"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "mouse.S"

# 1 "../../include/linux/config.h" 1





















# 36 "../../include/linux/config.h"

# 47 "../../include/linux/config.h"

# 2 "mouse.S" 2
.globl mouse_interrupt
mouse_interrupt:
	pushl %eax
	pushl %ebx
	pushl %ecx
	pushl %edx

	push %ds
	movl $0x10,%eax
	mov %ax,%ds			#为后面的call做准备
	xor %eax,%eax
#鼠标对应数据寄存器端口是$0x60,通过inb命令将该数据寄存器中
#存放的一个字节信息读入到寄存器AL中，
#用户对鼠标的全部信息包含在这一个字节的数据编码里
	inb $0x60,%al		#读入鼠标数据
	pushl %eax
	call readmouse		#调用c函数进行细致处理
    addl $4,%esp

#在mouse_interupt 处理完中断以后，给8259A发送结束中断(EOI)指令	
    movb $0x20,%al 
    outb %al,$0xA0 
    outb %al,$0x20 
	
	pop %ds
	popl %edx
	popl %ecx
	popl %ebx
	popl %eax
	iret
