我把程式改了下,按c鍵,在螢幕上顯示b字母,程式**如下:
;程式功能:按a鍵,當鬆開的時候在螢幕的80*25的裡面全部顯示字母a,不鬆開則不作任何處理,其他的鍵照常處理。
assume
cs:code
data segment
db 100 dup(0
)data ends
code segment
start:
mov ax,0
moves,ax
movdi,200h
movds,ax
mov si,[9*4
]
mov cx,4
cldrep
movsb
movax,offset int9
movds:[9*4
],ax
movax,cs
movds:[9*4+2
],ax
call
breakpoint
;還原int9中斷向量表
mov ax,0
movds,ax
movsi,200h
mov di,9*4
mov cx,4
cldrep
movsb
movax,4c00h
int21h
;實現int9中斷例程
int9:
clipush
ax
movax,0b800h
push
es
moves,ax
push
bx
mov bx,0
push
cx
mov cx,2000
inal,60h
cmpal,2eh+80h
jneint9ret
mov ah,'b
's0:
mov byte ptr es:
[bx],ah
add bx,2
loop s0
int9ret:
int80h
popcx
popbx
popes
popax
iret
breakpoint:
push
ax
pushf
popax
or ah,3
;這裡可以增加判斷,例:當cx為100的時候再設定斷點
push
ax
popf
popax
retcode ends
end start
執行:我使用的是win7+masm6.15環境,通過編譯、鏈結後,使用debug ***.exe的形式執行,直接按g命令,則會執行到斷點處call breakpoint,這時候你按c鍵盤,就可以在螢幕上顯示b字母了。
判斷鍵是否按下
確定系統當前物理滑鼠按鈕與邏輯滑鼠按鈕的對應關係,當滑鼠按鈕被左右交換後,函式返回true int ismouseswap getsystemmetrics sm swapbutton 確定函式被呼叫時,相應按鍵是處於按下狀態,還是處於彈起狀態 並且按下此鍵前否呼叫過getasynckeystate...
2020 10 21 925 長鍵按入
925.長按鍵入 難度簡單143 你的朋友正在使用鍵盤輸入他的名字name。偶爾,在鍵入字元c時,按鍵可能會被長按,而字元可能被輸入 1 次或多次。你將會檢查鍵盤輸入的字元typed。如果它對應的可能是你的朋友的名字 其中一些字元可能被長按 那麼就返回true。示例 1 輸入 name alex t...
當輸入ur1之後,按下回車鍵發生了哪些動作
1.當瀏覽器輸入url,先解析url位址是否是合法的。2.瀏覽器檢查是否存在快取 瀏覽器快取 系統快取 路由器快取 如果快取中都沒有,看第三步。3.發起http請求前,需要進行網域名稱解析 dns解析 獲取對應的ip位址。4.發起tcp連線,經過三次握手。5.握手成功,瀏覽器想伺服器傳送http請求...