Bootstrap

哈工大-操作系统L27

键盘

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中

;