键盘
set_trap_gate(0x21,&keyboard_interrupt)将0x21号中断设置成keyboard_interrupt)
inb $0x60,%al将0x60扫描码赋给al
lea key_map,%ebx将key_map的地址赋给ebx
key_map存放的是扫描吗所对应的ASCLL码
movb (%ebx,%eax),%al ebx是起始,eax是偏移 根据这些得到ASCLL赋给al
call put_queue 将al放入队列
movl _table_list, %edx 得到列表里的read_q
movl head(%edx),%ecx 得到read_q的head赋给ecx
mov %al,buf(%edx,%ecx)将al输出到对应的头部
PUTCH(c,tty->write_q)将字符放到write_q中,回显再将字符放到write_q中