汇编题目:按A键,当松开的时显示字母A
生活随笔
收集整理的這篇文章主要介紹了
汇编题目:按A键,当松开的时显示字母A
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
安裝一個(gè)新的int9中斷例程,功能:在DOS下,按下“A”鍵后,除非不再松開(kāi),如果松開(kāi),就顯示滿屏的“A”;其他的按鍵照常處理。
提示:按下一個(gè)鍵時(shí)產(chǎn)生的掃描碼稱為通碼,松開(kāi)一個(gè)鍵時(shí)產(chǎn)生的掃描碼稱為斷碼,斷碼 = 通碼 + 80h
我把程序改了下,按c鍵,在屏幕上顯示B字母,程序代碼如下:
;程序功能:按A鍵,當(dāng)松開(kāi)的時(shí)候在屏幕的80*25的里面全部顯示字母A,不松開(kāi)則不作任何處理,其他的鍵照常處理。 assume cs:code data segment db 100 dup(0)data endscode segment start: mov ax,0mov es,axmov di,200hmov ds,axmov si,[9*4]mov cx,4cldrep movsbmov ax,offset int9mov ds:[9*4],axmov ax,csmov ds:[9*4+2],axcall breakPoint;還原int9中斷向量表mov ax,0mov ds,axmov si,200hmov di,9*4mov cx,4cldrep movsbmov ax,4c00hint 21h;實(shí)現(xiàn)int9中斷例程 int9:clipush axmov ax,0b800hpush esmov es,axpush bxmov bx,0push cxmov cx,2000in al,60hcmp al,2eh+80hjne int9retmov ah,'B's0:mov byte ptr es:[bx],ahadd bx,2loop s0int9ret:int 80hpop cxpop bxpop espop axiretbreakPoint:push axpushfpop axor ah,3 ;這里可以增加判斷,例:當(dāng)cx為100的時(shí)候再設(shè)置斷點(diǎn)push axpopfpop axretcode ends end start運(yùn)行:我使用的是win7+masm6.15環(huán)境,通過(guò)編譯、鏈接后,使用debug xxx.exe的形式運(yùn)行,直接按g命令,則會(huì)執(zhí)行到斷點(diǎn)處call breakPoint,這時(shí)候你按c鍵盤(pán),就可以在屏幕上顯示B字母了。
總結(jié)
以上是生活随笔為你收集整理的汇编题目:按A键,当松开的时显示字母A的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库 'MessageManage'
- 下一篇: Javascript学习资源整理