社区
C语言
帖子详情
如何向键盘端口写数据?
briar
2004-03-22 07:14:43
请教各位大虾,我想向键盘端口写数据以控制键盘指示灯的开关,不知该如何来做?!另外不知那里有关于Bland c++ 3.1方面以及基本的基于DOS的控制电脑各种硬件方面编程的书籍?
...全文
215
11
打赏
收藏
如何向键盘端口写数据?
请教各位大虾,我想向键盘端口写数据以控制键盘指示灯的开关,不知该如何来做?!另外不知那里有关于Bland c++ 3.1方面以及基本的基于DOS的控制电脑各种硬件方面编程的书籍?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnxiaohai
2004-03-25
打赏
举报
回复
还是用汇编吧
看看90年代初的C语言书吧
那些里面有很多这样的程序
dodog
2004-03-23
打赏
举报
回复
up
柯本
2004-03-23
打赏
举报
回复
如果要在windows下直接访问端口,可用dlportio或winio
nickadams
2004-03-23
打赏
举报
回复
键盘port是60h(数据寄存器)和61h(控制寄存器),但不记得是否能够通过该port写键盘。
我以前一般通过bios的键盘缓冲区来向键盘写数据:
0040:001A 键盘缓冲区读出位置
0040:001C 键盘缓冲区写入位置
0040:0080 键盘缓冲区起始位置
0040:0082 键盘缓冲区结束位置
写键盘:
mov es, 40h
mov bx, es:[1Ch]
mov es:[bx], ax ; ax - 键值
add bx, 2
cmp bx, 3Eh ; 3Eh is keyboard buffer end
jb no@wrap
mov bx, 1EH ; 1Eh is keyboard buffer start
no@wrap:
cmp bx, es:[1Ah]
je end
mov es:[1Ch], bx
end:
briar
2004-03-23
打赏
举报
回复
能否直接访问端口不使用BIOS,我不一定仅仅访问Caps Lock, Num Lock其它输出亦有可能要做!如何嵌入汇编向键盘端口发送数据还请各位大虾不吝赐教!!!
SCUM
2004-03-23
打赏
举报
回复
同意楼上
nickadams
2004-03-23
打赏
举报
回复
是要控制Caps Lock, Num Lock等吗?
如果是Windows程序,可以使用keybd_event来模仿按下、释放VK_CAPSLOCK键:
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
如果是DOS程序,直接访问bios的键盘状态字(位于0040:0017/0018/0096处):
mov es, 40h
and BYTE PTR es:[17h], 10111111b ; 关Caps Lock
or BYTE PTR es:[17h], 01000000b ; 开Caps Lock
Wolf0403
2004-03-23
打赏
举报
回复
如果是说向标准输入流写入字符,则 cin.putback(char) 可以实现这个功能。
C 和硬件级别的偶不晓得。。。
redbad2
2004-03-22
打赏
举报
回复
在C里面嵌套汇编吧!
junnyfeng
2004-03-22
打赏
举报
回复
up
zzlouiszz
2004-03-22
打赏
举报
回复
sorry I used to VC++ studio 6.0 usually!
Bland c++ 我不是很行。
全面系统完整的Flume教程
在本课程中,你将学习到,Flume架构原理、安装配置、拓扑结构、使用Flume搭建监控
端口
采集
数据
、监控本地(或HDFS)文件(或文件夹)采集
数据
、多
数据
源采集
数据
、多
数据
出口收集日志、Flume负载均衡以及对于Flume的...
读
写
键盘
端口
数据
网上有一篇这样的,大家帮忙测试下,是不是都能. 该代码出自http://www.99orc.net/thread-135-1-1.html 3.驱动级模拟 如果上面的方法你都试过了,可是你发现目标程序却仍然顽固的不接受你模拟的消息,寒~~~~~~~~~还好,我还剩下最后一招,这就是驱动级模拟:直接读
写
键盘
的硬件
端口
! 有一些使用DirectX接口的游戏程序,它们在读取
键盘
操作时绕过
服务器远程
端口
是什么?远程
端口
怎么设置?
服务器远程
端口
是什么?远程
端口
怎么设置?服务器
端口
是什么?远程
端口
怎么设置?Windows服务器Linux服务器 服务器
端口
是什么? 随着计算机网络技术的发展,原来物理上的接口(如
键盘
、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络通信的要求,TCP/IP协议作为网络通信的标准协议就解决了这个通信难题,TCP/IP协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在TCP/IP协议中引入了一种称之为"Socket(套接字)“应用程序接口,有了这样一种接口技术,一台计
第四章5 直接用
端口
操作
键盘
4.8.1读取
键盘
数据
和命令
端口
PS/2
键盘
的
数据
端口
是0x60,直接读取这个
端口
就能取到
数据
.但是前提是,
键盘
必须处于可读状态. 在驱动中没有对
端口
的读取进行限制,直接汇编指令就可以读取.请注意每次只能读取1字节. //定义1字节P2C_U8 sch;__asm in all,0x60__asm mov sch,al 上面的代码把
端口
8086CPU
端口
读
写
CPU可以读取3个地方的
数据
1CPU内部寄存器2内存单元3
端口
端口
读
写
指令:in 读取 out
写
入,注意:在in ,out 指令中,只能通过ax和al来存放
端口
的
数据
和把
数据
写
入
端口
,访问8位
端口
用al,16位用ax8086对应的是外设
端口
,外设提供
端口
给CPU访问,通过访问
端口
来操作外设例子:in al,60h 从60h
端口
中读取一个字节
数据
到al中 out 60h,al 向60...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章