键盘的中断代码是否会被发送到键盘缓冲区?

时间:2017-02-16 12:41:36

标签: assembly hardware

我们知道,当我们按下键盘上的一个键时,它会生成一个“生成代码”并使INT 9将生成代码和ASCII代码发送到键盘缓冲区或设置相关的二进制位(如ctrl,shift和ALT)。

此外,当我们在键盘上释放一个键时,它会生成一个“中断代码”(有时为"break code" = "make code" + 80H)。

所以,我想知道是否将中断代码发送到键盘缓冲区并编写了这段代码:

assume cs:code

code segment
    start:
    mov ax,stack
    mov ss,ax
    mov sp,64

    mov ah,10H
    int 16H
    mov ah,10H
    int 16H

    mov ah,4CH
    int 21H
code ends

end start

当我在Debug中运行此代码时,从第二个INT 16H开始,我按a并在AX中获得返回值1E61,似乎中断代码不在键盘缓冲区中

如果是这样,计算机如何知道我何时释放一个键(尤其是shift,ctrl)?或者它不需要知道?当我发布密钥时,中断代码在哪里?

0 个答案:

没有答案