社区
汇编语言
帖子详情
键盘缓冲区的操作
饶鹏
2005-09-26 05:48:36
我本来打算用BIOS中断10h读键盘缓冲区,用读到的按键控制程序走向,可无论我读多少次,读到的总是第一次按下的键。怎样才能依次读取缓冲区内的数据呢?
getc: MOV AH, 1
INT 16H
MOV DL, AL
MOV AH, 2
INT 21H
SUB AX, AX
JMP getc
按照这个运行,总只能显示第一次按下的键。我想做到程序依次显示我按下的每个键,请各位帮帮忙。
...全文
98
7
打赏
收藏
键盘缓冲区的操作
我本来打算用BIOS中断10h读键盘缓冲区,用读到的按键控制程序走向,可无论我读多少次,读到的总是第一次按下的键。怎样才能依次读取缓冲区内的数据呢? getc: MOV AH, 1 INT 16H MOV DL, AL MOV AH, 2 INT 21H SUB AX, AX JMP getc 按照这个运行,总只能显示第一次按下的键。我想做到程序依次显示我按下的每个键,请各位帮帮忙。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
饶鹏
2005-09-26
打赏
举报
回复
弄明白了,原来是在缓冲区没有按键储存时才等待用户输入,只要输入速度够快,就只用等待一次而已。多谢了。
饶鹏
2005-09-26
打赏
举报
回复
多谢,终于成功了。
但是,为什么单独用
mov ah,0
int 16h
程序会暂停并等待用户输入,而这里就不暂停了呢?请再讲解一下,在下感激不尽。
csdsjkk
2005-09-26
打赏
举报
回复
getc: MOV AH, 1
INT 16H
jz 无按键
mov ah,0
int 16h
MOV DL, AL
MOV AH, 2
INT 21H
SUB AX, AX
JMP getc
饶鹏
2005-09-26
打赏
举报
回复
刚才试了下直接从60H端口读取当前按键扫描码,这样做确实不用等待用户输入了,但好像没有缓冲功能。比如我依次键入"asdf",有时只显示出"adf"三个字符(程序循环一次的时间有点长)。而我想做的是让程序依次显示我按的所有键,看来用这个方法也不行啊。
饶鹏
2005-09-26
打赏
举报
回复
抱歉,首帖的键盘中断16H错写成10H了。
饶鹏
2005-09-26
打赏
举报
回复
这样当然可以,但就无法直接对缓冲区操作了吧?就是因为从键盘读字符必须等待用户输入,我才直接读键盘缓冲区的。
如果有其他不用等待用户输入的方法也可以,多谢了。
csdsjkk
2005-09-26
打赏
举报
回复
MOV AH,0
INT 16H
缓冲区
溢出-CTF-PWN
【c语言】
键盘
缓冲区
当我们在计算机上输入字符...
键盘
缓冲区
是由
操作
系统提供和管理的。当用户在
键盘
上按下一个键时
键盘
控制器将该键的字符数据发送给计算机的
操作
系统。然后,
操作
系统将这些字符存储在
键盘
缓冲区
中,以便稍后被程序读取。
c语言从
键盘
缓冲区
取值,【C语言篇】? 3.
缓冲区
问题
缓冲区
:输入
缓冲区
键盘
—》
键盘
缓冲区
—》输入
缓冲区
—》程序(scanf函数)我们在
键盘
上输入的任何东西,会先进入输入
缓冲区
区域,然后程序从输入
缓冲区
里把数据一个一个读出来。输入
缓冲区
的管理方式:先进入的数字...
懂scanf()和
键盘
缓冲区
的关系(基础向)
目录原理的概述
键盘
缓冲区
1.原理2.缘由3.实例scanf函数原理缘由实例 原理的概述
键盘
的内部有一块微处理器,它控制着
键盘
的全部工作,比如主机加电时
键盘
的自检、扫描,扫描码的缓冲以及与主机的通讯等等。当一个键...
清空
键盘
缓冲区
清空
键盘
缓冲区
很多种方法,如用fflush(stdin); rewind(stdin);等,但是在linux这些都不起作用,还得我今天试了半天都没成功,上网搜了一下发现setbuf(stdin, NULL);就能直接清空
键盘
缓冲区
了。 以下几个实例: ...
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章