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


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

最佳答案

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

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

10-04 20:56