能力值:
( LV6,RANK:90 )
26 楼
下面是:这种方法对usb仍然有效。想办法从8259中关闭键盘中断估计可以。但是只是在实模式。保护模式用idt的话好像还比较麻烦,可能会被发现的说
能力值:
( LV12,RANK:770 )
27 楼
最初由 云重 发布 早就跟过了,没什么意思,熟悉DOS的人都应该知道
云重早就鼓点了呵呵....
如果搞单片硬件和嵌入编程这玩意不在话下,很easy!
如果逆向过BIOS程序.或者跟踪过BIOS程序,里边都是与PC周边硬件控制器接口打交道的In Out.
如果用在保护措施上.到是有意思.
能力值:
( LV6,RANK:90 )
28 楼
学过单片机,但是不知道键盘中断控制字在8059的什么地址,是否可以直接访问关闭掉。我看资料说是实模式下才可以直接关闭,保护模式是不能访问控制字的,不知道是不是真的如此。
能力值:
( LV12,RANK:770 )
29 楼
PIC编程随便找几个就有吧.比如处理键盘中断过程的例子或者看bios怎么处理键盘set和reset等控制
IRQ和IDT表选择子之间影射...
可以直接访问8259a接口
如果没有用EPIO就中断控制器中的向量寄存器 ...
EPIO没有搞过,不清楚,你去看IA32的哪个第三卷上面写着
读8259a的0x21端口。看第一个是多少,这是iRQL0的中断。
如果用了EPIO的话,读模式寄存器。
能力值:
( LV6,RANK:90 )
30 楼
最初由 qiweixue 发布 PIC编程随便找几个就有吧.比如处理键盘中断过程的例子或者看bios怎么处理键盘set和reset等控制 IRQ和IDT表选择子之间影射... 可以直接访问8259a接口 如果没有用EPIO就中断控制器中的向量寄存器 ... EPIO没有搞过,不清楚,你去看IA32的哪个第三卷上面写着 ........
thanks.非计算机专业,微机原理没开,只学的51,很多东西还要再找资料。受教了
能力值:
( LV12,RANK:770 )
31 楼
最初由 shoooo 发布 NP的驱动里用的这个 实际起作用的是 mov al, 0FEh out 64h, al
偶在偶扣肉2 ,技嘉945PE 1G条子 Award Software BIOS中
贴一段bios引导程序:
CLI
CLD
XCHG BX,BX
DB 0F
ADD AX,SP
TEST AL,01
JZ F480
CLI
MOV AL,FE
OUT 64,AL
CLI
HLT
JMP F47C
JMP E043
JNZ F488
CALL 4F3E
能力值:
( LV6,RANK:90 )
32 楼
给你发邮件了,方便的加我下,谢谢
能力值:
( LV12,RANK:770 )
33 楼
哈问题,直接讨论就可以.
QQ 哈滴不经常用了.
到有一个小blog在自娱自乐.
水平不杂地!
吹吹水可以在上边,
偶也是半瓶子醋.
http:\\hi.baidu.com\qiweixue
能力值:
( LV2,RANK:10 )
34 楼
新手,请问这个是干吗的,直接用汇编写in al, 64h出错
请问怎么使用
能力值:
( LV4,RANK:50 )
35 楼
以前在图书馆翻过一本叫《DOS大全》的书,在书的最后几页有个系统重启的程序,就是想键盘端口填充FE,但是却记得好像是0x60或是0x61,今日在这又以得见,实在有幸。
利用向‘8253控制器0号计时器’填数据的方法还可以实现系统变速,还可以监视键盘端口,记录键盘按键,总之端口操作很有趣了。
一直想要各个端口的功能说明,可是总是得不到,希望各位高手有的话发给小弟一个。
能力值:
( LV8,RANK:130 )
36 楼
DB 0F
ADD AX,SP
这两行看着多别扭,应该是:
SMSW AX
能力值:
( LV12,RANK:770 )
37 楼
当时还奇怪这段BIOS引导汇编,怎么反成这样...
现在无话可说膜拜大牛......
能力值:
( LV6,RANK:90 )
38 楼
bios引导程序怎么弄出来的?贴一个一块瞅瞅吧
能力值:
( LV6,RANK:90 )
39 楼
这个...好久前就有了
能力值:
( LV2,RANK:10 )
40 楼
这段代码到底什么意思?
能力值:
( LV2,RANK:10 )
41 楼
我也想知道!!
能力值:
( LV12,RANK:450 )
42 楼
这几句汇编的意思就是HuangZhiHua所说的意思,楼主将这段汇编直接用几个数字写出来,所有人都晕过去了,其实多定义几个值,这样就非常好理解了。
PORT_A EQU 60H ; 8042键盘扫描/诊断输出
STATUS_PORT EQU 64H ; 8042状态口
OUT_BUF_FULL EQU 01H ; 0 = + 输出缓冲器满
INPT_BUF_FULL EQU 02H ; 1 = + 输入缓冲器满
... ...
... ...
SHUT_CMD EQU 0FEH ; 引起停止命令
;KEYBOARD STATUS REGISTER
; 7 6 5 4 3 2 1 0 Name Allowable Values
; * Parity error 0=odd parity(no error),1=even parity
; * Receive time out 0=no error,1=keyboard did not finish
; * Transmit time out 0=no error,1=keyboard did not finish
; * Inhibit switch 0=keyboard inhibited,1=not inhibited
; * Command/data 0=addressed as port 60H,1=port 64H
; * System flag 0=reset by power ON,1=Self test OK
; * Input buffer full 0=empty,1=full
; * Output buffer full 0=empty,1=full
ooo0:
in al, STATUS_PORT ; 检测输入缓冲器满
mov bl, al
test bl, OUT_BUF_FULL
jz short ooo1 ; 若没有,转ooo1
in al, PORT_A ; 冲清
ooo1:
test bl, INPT_BUF_FULL ; 输出缓冲器还满吗?
jnz ooo0 ; 再次尝试
mov al, SHUT_CMD ; shutdown cmd
out STATUS_PORT, al ; 返回到实模式
能力值:
( LV2,RANK:10 )
43 楼
想问一下,这段代码执行后的效果是什么呢?
执行了一下,没任何结果~~~~
能力值:
( LV12,RANK:650 )
44 楼
根据Ralf的中断大全:
0064 -W keyboard controller input buffer (ISA, EISA) (see #P0401)
在P401里有:
F0-FF sngl pulse output port low for 6 microseconds.
bits 0-3 contain the mask for the bits to be pulsed. A bit is
pulsed if its mask bit is zero
bit0=system reset. Don't set to zero. Pulse only! FE的bit0是0,所以直接就reset了
当然,out 64h,f0h效果一样
能力值:
( LV2,RANK:10 )
45 楼
短小精悍嘛,收藏备用
能力值:
( LV2,RANK:10 )
46 楼
唉 实在是看不懂啊 我太笨了。。