Функция
GetKeyState возвращает код нажатой пользователем клавиши.
Параметры:- Функция не принимает параметров.
Возвращаемое значение:- AX: Код нажатой пользователем клавиши.
Состояние флагов:- Функция влияет на все флаги.
Особенности:- Функция не изменяет значения регистров, кроме AX.
ПРИМЕР 1:
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string db "Нажмите ALT+F4, чтобы "
- ___________db "выйти из программы...\n\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handykey.inc
- ____main proc
- ________call____SetDataSegment
- ________lea_____ax, ds:[string]
- ________call____WriteString
- ____WaitUserKeyPress:
- ________call____GetKeyState
- ________cmp_____ax, KB_ALT_F4
- ________jne_____WaitUserKeyPress
- ________xor_____al, al
- ________call____ExitProcess
- ____main endp
- code ends
- end main
ПРИМЕР 2:
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____fmtout db "%b\n\0"
- ____number dw 0001000110100101b
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handykey.inc
- ____main proc
- ________call____SetDataSegment
- ________mov_____cx, 16
- ____MainLoop:
- ________push____cx
- ________push____number
- ________lea_____ax, ds:[fmtout]
- ________call____PrintFormatString
- ________add_____sp, 2
- ________call____GetKeyState
- ________cmp_____ax, KB_SPACE
- ________jne_____Done
- ________rol_____number, 1
- ________pop_____cx
- ________loop____MainLoop
- ____Done:
- ________xor_____al, al
- ________call____ExitProcess
- ____main endp
- code ends
- end main