Опрос клавиатуры (несколько нажатых кнопок сразу) - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д