程序如何实际接收字符输入?从扫描码到最终的原始输入位

时间:2012-11-12 22:03:57

标签: encoding character-encoding scancodes low-level-io

所以,我的问题很简单:在用户“输入”(从物理键盘或任何其他方式)字符键后,程序如何接收原始输入位?

我的意思是我知道字符编码在之后如何工作它被程序作为原始位接收但我不清楚该位序列首先出现的方式。

我一直在阅读,但事实证明这对我的谷歌来说是一个艰难的搜索。操作系统似乎从输入设备(通常是键盘)接收扫描代码,使用字符映射和键盘布局将其映射到编码,然后将生成的位序列传递给程序。我对吗?如果是这样,对我来说唯一缺少的部分就是:

  1. 键盘布局如何定义扫描码的字符 对应?使用Unicode代码点?特定于OS的内部 表

  2. 其次,程序是否定义了编码它的字符 期望在编译时输入(来自OS)?它有没有?

1 个答案:

答案 0 :(得分:1)

关于如何从键盘读取作为汇编程序的一部分,有一个非常好的低级描述。它涵盖了从击键到CPU的整个管道。您可以找到整个课程here和有关键盘输入here的章节。