| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:如何清空键盘缓冲区?
只看楼主 加入收藏
aoyueshizhan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-9
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:4 
如何清空键盘缓冲区?
网上说用ah,0ch
        int 21h
        于是我是这样写的。
           ........
           ........
           mov ah,0ch
           int 21h      
           mov ax,cs
           mov ds,ax
           mov si,timechar-myfloppy
           mov di,0
           ........
           ........

     但是发现后来根本没用,请问到底如何清除?
  
搜索更多相关主题的帖子: 键盘 缓冲区 如何 网上 
2011-06-25 16:52
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:20 
参考使用bios的int 16h 10H/11H

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-25 17:19
xtdhwl
Rank: 2
等 级:论坛游民
帖 子:29
专家分:11
注 册:2008-3-23
收藏
得分:0 
MOV AX,0040H
MOV DS,AX
MOV SI,001A
MOV AX,0
MOV CL,15
S:MOV DS:[SI],AX
  LOOP S
不知道行不行
2011-07-12 15:07
shweei
Rank: 2
等 级:论坛游民
帖 子:24
专家分:10
注 册:2011-7-27
收藏
得分:0 
首先要判断键盘缓冲区是否存在字符
如果存在就取走一个,再继续判断

如果不存在字符就为空

判断缓冲区是否存在字符的指令是 INT 16H 中断的 AH=1功能号

取缓冲区字符是 INT 16H 中断的AH=0功能号


楼上的方法太麻烦 只要直接修改缓冲区头指针就可以了

[ 本帖最后由 shweei 于 2011-8-8 15:43 编辑 ]
2011-08-08 14:46
huangqingfu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-15
收藏
得分:0 
试试下面的代码:
...
again: mov    ah, 01h   
       int    16h          ;The key buffer is empty?
       jz     next         ;Yes, jump to next
       mov    ah, 0        
       int    16h          ;No, get out a char from key buffer
       jmp    short again  ;Continue
next:
...
2012-11-15 18:51
快速回复:如何清空键盘缓冲区?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047261 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved