汇编实验扩充键盘处理功能的程序

汇编实验扩充键盘处理功能的程序

ID:41702355

大小:180.87 KB

页数:7页

时间:2019-08-30

汇编实验扩充键盘处理功能的程序_第1页
汇编实验扩充键盘处理功能的程序_第2页
汇编实验扩充键盘处理功能的程序_第3页
汇编实验扩充键盘处理功能的程序_第4页
汇编实验扩充键盘处理功能的程序_第5页
资源描述:

《汇编实验扩充键盘处理功能的程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验六扩充键盘处理功能的程序一、实验的目的与要求(一)实验目的:掌握中断的概念以及中断服务程序的编写(二)实验要求:完成键盘处理基本功能的基础上,增加left_shift和right_shift键的功能。要求实现左右SHIFT任何一个键处于按下状态时输入字符为键盘的上档字符或大写字母,否则输出数字或小写字母。二、实验正文实验分析:本次实验要求在示例3.6的基础上,添加功能,关于left_shift和right_shift可以通过它们各口的扫描码进行判断,此外还应该设置标志变量便于程序的判断,较示例的程序除了要添加判断是否为shift键外,还应该再设置一张shifttab转换表,这样当shif

2、t被按下时,应由这样转换表进行转换,而其他情况下由,scantab转换表转换。在读入信息时候需要在不同的端口读入信息并判断,通过检测状态和数据作出正确的操作。四、流程图如下kbflglxl四、实验结果附录:程序源代码如下:stacksegmentdb256dup(O)stackends*******************************************************databufferbufptlbufpt2kbflagkbflaglpromptseantabsegmentdb16hdup(O)dw0dw0db0db0db'…kbd_ioprogrambegin…

3、:Odh,Oah,'$‘db0,0;1234567890-='/8,0db'qwertyuiop[]:0dh,0db'asdfghjkrz3bh,27h,0,0,0db'zxcvbnm,./1,0,0,0db'',0,0,0,0,0,0,0,0,0^,0,0,0db789-456+1230.*shiftabdbOzO;!@#$%A&*()_+',0z0dbQWERTYUIOP{}:0DH,0db’ASDFGHJKL:”',0,0,0db'ZXCVBNMo?',0,0,0db'',26dup(0)evenoldcs9oldip9datadw?dw?endscodesegmentstartpro

4、cfarassumecs:code,ds:datapushdsmovax,0pushaxmovax,datamov•ds,ax/climoval,09movah,35hint21hmovoldcs9,es;开中断;屮断类型号;DOS调用,取中断向量;ES:BX=中断向量mov•oldip9,bx9pushdsmovdx,offsetkbintmovax,segkbintmovds,ax;DS:DX=中断向量moval,09;中断类型号movah,25h;DOS调用,设置中断向量int21hpopdsinandout■al,21hal,Ofdh21hzal/movdx,offsetprompt

5、movah,9int21hstiforever:callkbgettestkbflag,80hjnzendintpushaxcalldispcharpopaxcmpal,Odhjnzforevermoval?Oahcalldispcharjmpforeverendint:movdx,oldip9movax,oldcs9movds,axmovalz09hmovah,25hint•21h/retstartendp检测并等待键盘屮断;设置中断屏蔽字,只允许键盘中断kbgetprocpushnearbxcmpal,2ahjnzshift5cmpkbflagl,ljzshiftlmovkbflagl,

6、ljmpshiftlcli;关屮断movbx,bufptlcmpbx,bufpt2jnzkbget2cmpkbflagzOjnzkbget3sti;开中断Popbxjmpkbgetkbget2:moval,[buffer+bx]incbxcmpbx,16jckbget3movbx,0kbget3:movbufptl,bxpopbxretkbgetendp•9键盘中断程序kbintprocfarpushbxpush■ax/inalz60h;从也口读扫描码pushaxinal,61h;从卩8口读信息oral,80hout61h,al;置键盘应答位andal,7fhout•61h,al;复位键盘应

7、答位/popaxtestal,80h;检测AL第8位是否为1,判断键位是按下(1)还是放开jnzkbint2;判断是否为左Shift键;标志位置1shift5:cmpal,36hjnzshift2cmpkbflagl,ljzshiftlmovkbflagl,ljmpshiftl;判断是否为右Shift键cmpkbflagl,!jnzshift3leabx,shiftab;shifttab换码xlat;(AL)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。