日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编:键盘中断(int 9)

發(fā)布時間:2025/6/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编:键盘中断(int 9) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?鍵盤中斷, 一般按下鍵盤上的某個按鈕就會觸發(fā)鍵盤中斷.

assume cs:code, ds:data, ss:stackdata segmentdb 128 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segmentstart: mov ax, stackmov ss, axmov sp, 128call cpy_new_int9call set_old_int9 call set_new_int9testA: mov ax, 1000Hjmp testAcall set_init_int9mov ax, 4C00Hint 21H;======================================= set_init_int9:mov bx, 0mov es, bxclipush es:[200H]pop es:[9*4]push es:[202H]pop es:[9*4+2]stiret ;======================================= set_new_int9: push bxpush esmov bx, 0mov es, bxclimov word ptr es:[9*4], 7E00Hmov word ptr es:[9*4+2], 0stipop espop bxret ;======================================== set_old_int9:push bxpush esmov bx, 0mov es, bxclipush es:[9*4]pop es:[200H] ; int9 ippush es:[9*4+2]pop es:[202H] ; int9 csstipop espop bxret ;========================================= new_int9:push axin al, 60Hpushfcall dword ptr cs:[200H]cmp al, 48H ; 方向鍵-- 上 掃描碼je isUpcmp al, 50H ; 方向鍵-- 下 掃描碼je isDowncmp al, 3BH ; F1 掃描碼jne int9Retcall change_screen_colorint9Ret: pop axiret ;============================================================ isUp:mov di, 160*10+40*2mov bx, 0B800Hmov es, bxmov byte ptr es:[di], 'U'jmp int9Ret;============================================================ isDown:mov di, 160*10+40*2mov bx, 0B800Hmov es, bxmov byte ptr es:[di], 'D'jmp int9Ret ;============================================================ change_screen_color:push bxpush cxpush esmov bx, 0B800Hmov es, bxmov bx, 1mov cx, 2000 ; 整個屏幕是 25行 80列, 1列是2個字節(jié), 所以一行一共160個字節(jié)changeColor: inc byte ptr es:[bx];mov byte ptr es:[bx], 01000001Badd bx, 2loop changeColorpop espop cxpop bxret new_int9_end: nop;======================================== cpy_new_int9:mov bx, csmov ds, bxmov si, OFFSET new_int9mov bx, 0mov es, bxmov di, 7E00Hmov cx, OFFSET new_int9_end - OFFSET new_int9cldrep movsbretcode endsend start

當(dāng)按下"F1"鍵,會改變屏幕顏色, ?當(dāng)按 "上方向鍵",會在屏幕上打印"U", 按“下方向鍵”,會在屏幕上打印"D"

總結(jié)

以上是生活随笔為你收集整理的汇编:键盘中断(int 9)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。