Я пишу программу на ассемблере x86 для запуска в 16-битном реальном режиме под DOS.
.model small
.stack 100h
.code
start:
mov dl, 4bh
loop1:
mov ah, 2h
int 21h
mov ah, 1h
int 16h
cmp al, 6bh
jne loop1
mov ah, 4ch
int 21h
end start
end
Программа должна писать «K» все время, и когда «k» нажата на Программа клавиатуры должна остановиться.
Все в порядке, программа все время пишет «K», и когда я нажимаю «k» на клавиатуре, моя программа останавливается, но, когда я нажимаю другую кнопку на клавиатуре (ничего не должно происходить) и когда я нажимаю кнопку «» Кнопка k "позже, программа не останавливается, но печатает" K "все время.
Я думаю, это потому, что эта другая кнопка заполнила буфер, и я не знаю, как ее сбросить или взять из буфера только последнюю часть буфера, где находится код последней нажатой кнопки.