这个汇编程序是我看到的内核汇编里较难懂的一个程序,很有幸在网上找到一篇文章便是分析该程序。结合他举的两个例子,能够加深对该程序的理解。
注解:该文件后缀是.S而不是.s,使用这样的后缀可以让as使用GNU编译器的预处理程序CPP(在linux-0.11中的每个makefile中有定义),这样在汇编程序中就可以使用很多C语言的伪指令,例如,#include,#if等。
本程序的主要功能就是根据引起键盘中断的按键扫描码,调用已经编排成跳转表(key_table)的相应扫描码处理子程序,把扫描码对应的支付放入字符队列(read_q)中。