每当我们使用汇编语言从用户那里获得输入时,数字/字母的 ASCII 码就会存储在寄存器“AL”中。同样,我想知道我是否按 'Ctrl+C' 、 'Ctrl+V' 或 'Ctrl+X' 等系统执行了哪些操作,即,
- 扫码是如何存储的?
- 程序是什么?
- 系统正在使用哪些寄存器?
主要是我的重点是了解硬件对上述指令执行的内部操作。
每当我们使用汇编语言从用户那里获得输入时,数字/字母的 ASCII 码就会存储在寄存器“AL”中。同样,我想知道我是否按 'Ctrl+C' 、 'Ctrl+V' 或 'Ctrl+X' 等系统执行了哪些操作,即,
主要是我的重点是了解硬件对上述指令执行的内部操作。
广义而言,此功能由 BIOS 中的键盘例程定义。 本文档虽然侧重于 MS-DOS,但对低级 BIOS 键盘例程提供了相当好的解释。在此处描述的标准 PC BIOS 中,您通常需要解释包含击键扫描代码的 AH 寄存器的值。例如,在标准的美国 PC-AT 键盘上,左键向下扫描码Ctrl是0x1D
.
通常,操作系统要么使用 BIOS,要么直接捕获键盘中断并从键盘中提取 make/break 代码(假设键盘处于 make/break 模式,通常是这样,但不一定是这样)。