这个带有 IO 端口 0x61 和 0x20 的 x86 汇编语言代码有什么作用?

Inv*_*Zim 6 x86 assembly interrupt

这是代码:

push ax
in al, 0x61
or al, 0x80  ; 10000000b
out 0x61, al
and al, 0x7F ; 01111111b
out 0x61, al
mov al, 0x20
out 0x20, al
pop ax
Run Code Online (Sandbox Code Playgroud)

它有什么作用?我只知道它连接到定时器中断。0x61发生了什么0x20

Bo *_*son 5

in al, 0x60附近可能有一条说明。

端口 0x60 和 0x61 与 PC 中的键盘控制器通信。端口 0x60 包含按下的按键,0x61 包含状态位。

切换状态端口的高位表示您已获得密钥并需要下一个。

端口 0x20 是中断控制器,您可以在其中确认已处理中断。