首页
社区
课程
招聘
一段好用的**代码
发表于: 2007-3-26 16:54 20008

一段好用的**代码

aki 活跃值
2
2007-3-26 16:54
20008
void _declspec(naked) Shutoooo()
{  
        __asm
        {

        push    ebx
        push    ebx

ooo0:                              
        in      al, 64h         
        mov     bl, al
        test    bl, 1
        jz      short ooo1

        in      al, 60h         

ooo1:                              
        test    bl, 2
        jnz     ooo0

        mov     al, 0FEh
        out     64h, al         

        pop     ebx
        pop     ebx
        retn
        }
}


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (45)
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
板凳沙发自己占
2007-3-26 16:56
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
看不懂,一下in 一下 out的
2007-3-26 17:30
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
4
NP的驱动里用的这个
实际起作用的是
  mov     al, 0FEh
  out     64h, al      
2007-3-26 17:39
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
最初由 shoooo 发布
NP的驱动里用的这个
实际起作用的是
mov al, 0FEh
out 64h, al


那他还跳个卵啊!
2007-3-26 17:43
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
传说的迷踪步
2007-3-26 17:50
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
本身60 和64端口是键盘的端口,跳是等待键盘事件.关于后面那句我查了下好像是说让键盘重发,结果怎么成了这样了呢?
2007-3-26 18:28
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 fonge 发布
那他还跳个卵啊!


这句话经典

我以前看fonge做的算法动画呢!支持一下!
2007-3-26 19:13
0
雪    币: 1593
活跃值: (766)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
9
那几个跳转是用来等待input buffer和output buffer准备完毕,然后就读用户输入的字符,并回填一次。之所以要out 64h, FEh一下是因为output buffer的数据已经被读出来了,上层就读不到原始数据了。

顺便说一下,这种方法对USB键盘无效。
2007-3-26 19:38
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
最初由 luocong 发布
那几个跳转是用来等待input buffer和output buffer准备完毕,然后就读用户输入的字符,并回填一次。之所以要out 64h, FEh一下是因为output buffer的数据已经被读出来了,上层就读不到原始数据了。

顺便说一下,这种方法对USB键盘无效。


又长见识了.还有个问题就是给ps2键盘发数据怎么会成了这种效果?
2007-3-26 21:34
0
雪    币: 238
活跃值: (108)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
这是IBM PC或兼容机实现当中的一个功能,记忆中为了让BIOS在测试完内存容量后做模式切换使用的。键盘控制器8042上有一个输出连到了系统的复位!
2007-3-26 22:07
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
还是有点奇怪,我把键盘拔掉还是复位,8042芯片还能起作用?另外老罗说的usb键盘一说好像也不行。找朋友帮忙测试了下,usb的好像也是这样的
2007-3-26 22:48
0
雪    币: 202
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
学习!学习 再学习!!
2007-3-27 00:55
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
14
最初由 aki 发布
ooo0:
in al, 64h
mov bl, al
test bl, 1
jz short ooo1

in al, 60h


ooo1:
test bl, 2
jnz ooo0

mov al, 0FEh
out 64h, al


最初由 shoooo 发布
NP的驱动里用的这个
实际起作用的是
mov al, 0FEh
out 64h, al


贴一个,跟你比创意

push    eax
xor     eax, ebx
push    eax
pop     ecx
pop     eax
push    ecx
and     eax, ebx
shl     eax, 1
pop     ebx
add     eax, ebx


等同于add eax,ebx
2007-3-27 08:46
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
最初由 fonge 发布
贴一个,跟你比创意

[code]
push eax
xor eax, ebx
........


够黑暗的
2007-3-27 09:01
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
16
忽然有个想法,不知道挂接0x33后,这段代码还行不行
2007-3-27 09:51
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
17
最初由 HuangZhiHua 发布
这是IBM PC或兼容机实现当中的一个功能,记忆中为了让BIOS在测试完内存容量后做模式切换使用的。键盘控制器8042上有一个输出连到了系统的复位!


你太有才了
2007-3-27 13:46
0
雪    币: 217
活跃值: (15)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
最初由 heXer 发布
你太有才了


牛人吃菜了
2007-3-27 16:57
0
雪    币: 217
活跃值: (15)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
http://chpie.org/blog/
这个网站上关于键盘这方面的东西不少
虽然是韩文的大致可以看出思路来
看完这些东西,可以不用看np的那个键盘驱动了:)
当然usb的资料我也没有找到
不过最近白细胞老大倒是公布了一篇文章
搞usb可以参考一下,呵呵
2007-3-27 17:05
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
20
np衰了牛人盛了
挂掉键盘.
挂掉鼠标
挂掉硬盘.
....
挂掉world.
2007-3-28 14:59
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
21
太强了。。
这年头流行折磨机器
2007-3-28 16:50
0
雪    币: 238
活跃值: (108)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
最初由 aki 发布
还是有点奇怪,我把键盘拔掉还是复位,8042芯片还能起作用?另外老罗说的usb键盘一说好像也不行。找朋友帮忙测试了下,usb的好像也是这样的


键盘控制器本身是隶属于主机的设备接口芯片。键盘在不在根本没什么关系!
2007-3-28 20:47
0
雪    币: 213
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
早就跟过了,没什么意思,熟悉DOS的人都应该知道
2007-3-28 21:03
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
24
不是从dos那个年代过来的,没办法。。
2007-3-28 21:54
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
25
最初由 luocong 发布
那几个跳转是用来等待input buffer和output buffer准备完毕,然后就读用户输入的字符,并回填一次。之所以要out 64h, FEh一下是因为output buffer的数据已经被读出来了,上层就读不到原始数据了。

顺便说一下,这种方法对USB键盘无效。


下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢下面呢
2007-3-29 13:18
0
游客
登录 | 注册 方可回帖
返回
//