怎么判断按没按组合键

fipl 2002-07-17 09:54:01
如CRTL+A等等
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
giantzz 2002-07-20
  • 打赏
  • 举报
回复
mov ah,12h
int 16h
wyd95968 2002-07-19
  • 打赏
  • 举报
回复
一样可检测。不信你瞧:
code segment
assume cs:code,ds:code
show macro ; used input output function
local sh1,sh2 ; AX DL CON disp BIN and ' '
push ax ; CX
push cx ; DX
push dx
mov ah,2
mov cx,4
shr dl,cl
cmp dl,0ah
jb sh1
add dl,07h
sh1: add dl,30h
int 21h
pop dx
push dx
and dl,0fh
cmp dl,0ah
jb sh2
add dl,07h
sh2: add dl,30h
mov ah,2
int 21h
mov ah,2
mov dl,20H
int 21h
pop dx
pop cx
pop ax
endm
crlf macro
push dx
mov dl,0ah
disp
mov dl,0dh
disp
pop dx
endm
tip macro a
local tip0,tip1
jmp tip1
tip0: db a,'$'
tip1: push ds
push cs
pop ds
push dx
push ax
mov ah,9
lea dx,tip0
int 21h
pop ax
pop dx
pop ds
endm
start: mov ax,cs
mov ds,ax
reprec:mov ah,0
int 16h
push ax
crlf
mov ah,2
int 16h
test al,80h
jz nextbi1
tip 'INS '
nextbi1:test al,40h
jz nextbi2
tip 'Caps Lock '
nextbi2:test al,20h
jz nextbi3
tip 'Num Lock '
nextbi3:test al,10h
jz nextbi4
tip 'Scroll Lock '
nextbi4:test al,8
jz nextbi5
tip 'Alt '
nextbi5:test al,4
jz nextbi6
tip 'Ctrl '
nextbi6:test al,2
jz nextbi7
tip 'L shift '
nextbi7:test al,1
jz nextbi8
tip 'R shift '
nextbi8:cmp al,0
je nextbi9
mov dl,al
show
crlf
nextbi9:pop ax
mov dl,ah
show
mov dl,al
show
cmp al,1bh
je exits
jmp reprec
exits:mov ah,4ch
int 21h
code ends
end start
fipl 2002-07-19
  • 打赏
  • 举报
回复
软中断16H的2号子功能只能转换特殊的键呀
要是配合起普通贱怎么用呀?
wyd95968 2002-07-17
  • 打赏
  • 举报
回复
软中断16H的2号子功能读键盘各转换键的当前状态
入口参数:AH=2
出口参数:AL=各转换键的当前状态。AL中每一位代表一个转换键,且相应位为1时表示按了相应键。AL的8个二进制位定义如下:
bit7:INS
bit6:Caps Lock
bit5:Num Lock
bit4:Scroll Lock
bit3:Alt
bit2:Ctrl
bit1:左Shift
bit0:右Shift
Areslee 2002-07-17
  • 打赏
  • 举报
回复
40H:13H中有控制键的状态,接管INT 9H可以得到按下的键的扫描码
int10 2002-07-17
  • 打赏
  • 举报
回复
看看中断16吧。。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧