Опрос клавиатуры (несколько нажатых кнопок сразу) - Assembler

Узнай цену своей работы

Формулировка задачи:

Подскажите как лучше сделать опрос клавиатуры, чтобы можно было отслеживать несколько одновременно нажатых клавиш. Пробовал по int 16h, пробовал по in al,60h но работает не так как надо (или я что-то не так делаю) Делаю что-то типа игры, надо одновременно и стрелки жать, и пробел при этом проверять.

Решение задачи: «Опрос клавиатуры (несколько нажатых кнопок сразу)»

textual
Листинг программы
.386
  ;  Стек
SSegMem SEGMENT STACK
   ReqMem   Dw 256  Dup(0)
SSegMem EndS
  ;  Данные
DtAREA SEGMENT
DtAREA EndS
  ;  Процедуры
PrAREA SEGMENT USE16
ASSUME CS:PrAREA, DS:DtAREA
   Include InterLIB.asm
   Include KeyLIB.asm
PrAREA EndS
  ;  Код
CsegAREA SEGMENT USE16
ASSUME CS:CsegAREA, DS:DtAREA, FS:PrAREA
 
     START:
   Push ds
   Push fs
   Push es
   Pushad
      ;  Моя паранойя на чистоту старт регистров
   Xor eax, eax
   Xor ebx, ebx
   Xor ecx, ecx
   Xor edx, edx
   Xor esi, esi
   Xor edi, edi
   Push cs
   Pop ds
   Mov ax, PrAREA
   Mov fs, ax
 
     ;  бла бла бла  иниты иниты иниты
 
   Call KeyBoard_INIT
   
   ReTryKbd:
 
     ;   бла бла бла [> цикл прожки <]
 
     Mov bx, 1     ;  ESCAPE
     Call KeyStatus
     Mov al, NowKEY
     Cmp al, 0
   Je ReTryKbd
 
   Call KeyBoard_CLOSE
 
TerminationPRG:
Popad
Pop es
Pop fs
Pop ds
Mov ah, 4Ch
Int 21h
 
CsegAREA EndS
     End START

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы