程序集16h BIOS调用不起作用

时间:2018-07-14 22:33:43

标签: c assembly x86 keyboard bios

char getchar() {
    char a;
    __asm {
            int 16h
            mov [a], AL
    }
    return a;
}

我试图从键盘上获取用户输入,但是它没有等待按键,而是返回了奇怪的字符,而没有按下键盘上的任何键。

1 个答案:

答案 0 :(得分:1)

here所述,16H中断具有多种服务,您必须使用ah寄存器选择其中之一。

用于读取按键的功能代码为0,因此您必须在xor ah, ah之前int 16h(将ah设置为零)。