|
主题 : : 关于调用int9原中断例程的疑问 [待解决] |
回复[ 3次 ]
点击[ 488次 ] | |
荣誉值:0
信誉值:0
注册日期:2012-11-20 00:37 |
发一个 键盘驱动吧 你们自己看看吧。
; this program just a little keyboard driver feeler
assume cs:extra
stack segment stack
db 40H dup(?)
stack ends
extra segment
start:
mov ax,0H
mov ds,ax
mov word ptr ds:[24H],offset start1
mov word ptr ds:[26H],seg code
mov ax,4c00H
int 21H
extra ends
code segment
assume cs:code,ds:code
keyControl_offset dw 0H
keycontrol_segment dw seg key
; assignment the varible of segment address
start1:
in al,60H
or al,0
jns keyupcode
call clr_IRQ1
;mov ax,4c00H
;int 21H
jmp $
;judge the keyup code
keyupcode:
mov dx,seg code
mov ds,dx
mov cl,3H
mul cl
mov [keyControl_offset],ax
call dword ptr keyControl_offset
mov dl,al
mov ah,02H
int 21H
call clr_IRQ1
;mov ax,4c00H
;int 21H
;//////////////////////////////////
;just clear the hard interrupt
;//////////////////////////////////
clr_IRQ1 proc near
in al,20H
or al,00100000b
out 20H,al
sti
ret
clr_IRQ1 endp
code ends
key segment
db 3 dup(?)
;ESC key 01H
mov al,'.'
retf
;1 key 02H
mov al,'1'
retf
;2 key 03H
mov al,'2'
retf
;3 key 04H
mov al,'3'
retf
;4 key 05H
mov al,'4'
retf
;5 key 06H
mov al,'5'
retf
;6 key 07H
mov al,'6'
retf
;7 key 08H
mov al,'7'
retf
;8 key 09H
mov al,'8'
retf
;9 key 0AH
mov al,'9'
retf
;0 key 0BH
mov al,'0'
retf
;- key 0cH
mov al,'-'
retf
;= key 0dH
mov al,'='
retf
;backspace key 0EH
mov al,'.'
retf
;tab key 0FH
mov al,'.'
retf
;q key 10H
mov al,'q'
retf
;w key 11H
mov al,'w'
retf
;e key 12H
mov al,'e'
retf
;r key 13H
mov al,'r'
retf
;t key 14H
mov al,'t'
retf
;y key 15H
mov al,'y'
retf
;u key 16H
mov al,'u'
retf
;i key 17H
mov al,'i'
retf
;o key 18H
mov al,'o'
retf
;p key 19H
mov al,'p'
retf
;[ key 1AH
mov al,'['
retf
;] key 1BH
mov al,']'
retf
;enter key 1CH
mov al,'.'
retf
;ctrl key 1DH
mov al,'.'
retf
;A key 1EH
mov al,'a'
retf
;s key 1FH
mov al,'s'
retf
;d key 20H
mov al,'d'
retf
;f key 21H
mov al,'f'
retf
;g key 22H
mov al,'g'
retf
;h key 23H
mov al,'h'
retf
;j key 24H
mov al,'j'
retf
;k key 25H
mov al,'k'
retf
;l key 26H
mov al,'l'
retf
;; key 27H
mov al,';'
retf
;, key 28H
mov al,','
retf
;other key 29H
mov al,'.'
retf
;l_shift key 2AH
mov al,'.'
retf
;\ key 2BH
mov al,'\'
retf
;Z key 2CH
mov al,'z'
retf
;X key 2DH
mov al,'x'
retf
;C key 2EH
mov al,'c'
retf
;V key 2FH
mov al,'v'
retf
;B key 30H
mov al,'b'
retf
;n key 31H
mov al,'n'
retf
;M key 32H
mov al,'m'
retf
;, key 33H
mov al,','
retf
;. key 34H
mov al,'.'
retf
;/ key 35H
mov al,'/'
retf
;r_shift key 36H
mov al,'s'
retf
;prtse key 37H
mov al,'.'
retf
;alt key 38H
mov al,'.'
retf
;space key 39H
mov al,' '
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
;s key 1FH
mov al,'s'
retf
key ends
end start | | |