|
|
|
@ -0,0 +1,66 @@
|
|
|
|
|
# 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
|