· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› INT 16h keyboard buffer

Посл.отвђт Сообщенiе


Дата: Июл 18, 2003 02:51:49 · Поправил: Безпощадный даос

Interrupt 16h ah=1
Priyom znaka v buffer vo vremya zikla
Moya beda v tom chto
ya ne znayu kak mogno ochistit etot samiy bufer
chtobi prinyat noviy znak.
Yesli kto znayet pomogite pogalusto.


Дата: Июл 18, 2003 02:53:48 · Поправил: PROFi

Учи переменные BIOS с адреса 0000:0400h
0:041a 2 адрес головы буфера клавиатуры (символ по
этому адресу следующий)
0:041c 2 адрес хвоста буфера клавиатуры
0:041e 20H буфер клавиатуры. Здесь BIOS хранит ввод
клавиш (голова и хвост
указывают на адреса от 041eH до 043dH
включительно).


Дата: Июл 18, 2003 04:17:48

scanf
...
checkForKey:
  mov ah,1
  int 16h
  jnz gotKey
; буфер клавиатуры пуст
...
  jmp checkKey
gotKey:
  mov ah,0
  int 16h
; обработать полученную клавишу
...
  jmp checkKey


Дата: Июл 18, 2003 04:52:57

...
  push 0040h
  pop ds
  mov di, word ptr ds:001Ah ; адрес головы буфера
  mov word ptr ds:001Ch,di  ; сделаем равным хвосту,=> ,буфер пуст!...


Дата: Июл 18, 2003 15:07:44

Spasibo bolshoye vsem kto otvetil.
Vi mne ochen pomogli.


Дата: Июл 19, 2003 14:06:19

scanf
Можно так очистить буфер.
L1:



1386506340__mov ah,6


Дата: Июл 19, 2003 14:08:40

scanf
Можно так очистить буфер.
L1:
mov ah,6
mov dl,0ffh
int 21h
jnz L1


Дата: Июл 21, 2003 03:58:47

ruslan20031
Imho Int21h AH=6h работает со стандартным потоком ввода/вывода, т.е. не обязательно с буфером клавиатуры.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.077