You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
711 B
65 lines
711 B
# 1 "mouse.S"
|
|
# 1 "/home/mz/1/linux-0.11/kernel/chr_drv//"
|
|
# 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
|
|
|
|
//prepare for call readmouse
|
|
movl $0x10,%eax
|
|
mov %ax,%ds
|
|
|
|
|
|
xor %eax,%eax
|
|
inb $0x60,%al
|
|
pushl %eax
|
|
call readmouse
|
|
|
|
addl $4,%esp
|
|
|
|
//EOI
|
|
movb $0x20,%al //8259A 操作命令字 EOI
|
|
outb %al,$0xA0 //send EOI to 8259a second
|
|
outb %al,$0x20 //send EOI to 8259a first
|
|
|
|
|
|
pop %ds
|
|
popl %edx
|
|
popl %ecx
|
|
popl %ebx
|
|
popl %eax
|
|
iret |