【发布时间】:2013-12-02 14:45:17
【问题描述】:
我想编写一个程序,它通过按三个键结束:大写锁定、标称锁定和左移。我可以使用 AH=02h , INT 16h 来检查它们是否被压在一起吗? 我还可以使用哪些其他中断? 好奇:)
这是我的代码,但我不分享这个中断是如何工作的:
TITLE 'PressKeys' ;key program
;-----------------------------------------------------------------------------------
;DATA SEGMENT
DASEG SEGMENT PARA PUBLIC 'data'
CHECK DB 01100010b;The number which is used to check the control keys
;in the INT 16H (caps lock,nom lock,left shoft)
MESG DB 'FINISH $';Massage to say finish
DASEG ENDS
;--------------------------------------------------------------------------------------
;CODE SEGMENT
COSEG SEGMENT PARA PUBLIC 'code'
ASSUME CS:COSEG, DS:DASEG, ES:NOTHING, SS:NOTHING
MAIN:
MOV AX,DASEG
MOV DS,AX
;Check if the caps and nom and left shift keys has been pressed
KLOOP:
MOV AH,02H
INT 16H
TEST AL,CHECK
Jnz PRESSED ;If the keys has been pressed finish the programm
JMP KLOOP
PRESSED:;PRINT MESSAGE
LEA DX,MESG
MOV AH,09H
INT 21H
;GET BACK TO OS
MOV AX,4C00H
INT 21H
COSEG ENDS
;------------------------------------------------------------------------------
;END OF PROGRAMM
END MAIN
【问题讨论】:
-
“但我不分享这个中断是如何工作的”
-
你可以查找任何中断here
-
@DanielKamilKozar:应该说“当然”。