diff --git a/mouse.s b/mouse.s new file mode 100644 index 0000000..7e10b5d --- /dev/null +++ b/mouse.s @@ -0,0 +1,65 @@ +# 1 "mouse.S" +# 1 "" +# 1 "" +# 1 "mouse.S" +# 1 "mouse.S" +# 1 "" +# 1 "" +# 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 + + //读入鼠标数据 + xor %eax,%eax + inb $0x60,%al + pushl %eax + call readmouse + addl $4,%esp + + //发送EOI + movb $0x20,%al + outb %al,$0xA0 + outb %al,$0x20 + + pop %ds + popl %edx + popl %ecx + popl %ebx + popl %eax + iret