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

一段好用的**代码

aki 活跃值
2
2007-3-26 16:54
20009
收藏
免费 7
支持
分享
最新回复 (45)
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
26
下面是:这种方法对usb仍然有效。想办法从8259中关闭键盘中断估计可以。但是只是在实模式。保护模式用idt的话好像还比较麻烦,可能会被发现的说
2007-3-29 20:09
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
27
最初由 云重 发布
早就跟过了,没什么意思,熟悉DOS的人都应该知道




云重早就鼓点了呵呵....

如果搞单片硬件和嵌入编程这玩意不在话下,很easy!

如果逆向过BIOS程序.或者跟踪过BIOS程序,里边都是与PC周边硬件控制器接口打交道的In Out.

如果用在保护措施上.到是有意思.

2007-3-30 08:48
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
28
学过单片机,但是不知道键盘中断控制字在8059的什么地址,是否可以直接访问关闭掉。我看资料说是实模式下才可以直接关闭,保护模式是不能访问控制字的,不知道是不是真的如此。
2007-3-30 09:18
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
29
PIC编程随便找几个就有吧.比如处理键盘中断过程的例子或者看bios怎么处理键盘set和reset等控制
IRQ和IDT表选择子之间影射...
可以直接访问8259a接口
如果没有用EPIO就中断控制器中的向量寄存器 ...
EPIO没有搞过,不清楚,你去看IA32的哪个第三卷上面写着
读8259a的0x21端口。看第一个是多少,这是iRQL0的中断。
如果用了EPIO的话,读模式寄存器。
2007-3-30 09:30
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
30
最初由 qiweixue 发布
PIC编程随便找几个就有吧.比如处理键盘中断过程的例子或者看bios怎么处理键盘set和reset等控制
IRQ和IDT表选择子之间影射...
可以直接访问8259a接口
如果没有用EPIO就中断控制器中的向量寄存器 ...
EPIO没有搞过,不清楚,你去看IA32的哪个第三卷上面写着
........


thanks.非计算机专业,微机原理没开,只学的51,很多东西还要再找资料。受教了
2007-3-30 10:47
0
雪    币: 258
活跃值: (230)
能力值: ( 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
2007-3-30 10:57
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
32
给你发邮件了,方便的加我下,谢谢
2007-3-30 11:07
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
33
哈问题,直接讨论就可以.
QQ 哈滴不经常用了.
到有一个小blog在自娱自乐.
水平不杂地!
吹吹水可以在上边,
偶也是半瓶子醋.

http:\\hi.baidu.com\qiweixue
2007-3-30 13:51
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
新手,请问这个是干吗的,直接用汇编写in al, 64h出错
请问怎么使用
2007-3-31 15:43
0
雪    币: 225
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
35
以前在图书馆翻过一本叫《DOS大全》的书,在书的最后几页有个系统重启的程序,就是想键盘端口填充FE,但是却记得好像是0x60或是0x61,今日在这又以得见,实在有幸。
利用向‘8253控制器0号计时器’填数据的方法还可以实现系统变速,还可以监视键盘端口,记录键盘按键,总之端口操作很有趣了。
一直想要各个端口的功能说明,可是总是得不到,希望各位高手有的话发给小弟一个。
2007-4-1 10:27
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
36

DB      0F
ADD     AX,SP
这两行看着多别扭,应该是:
SMSW AX
2007-4-1 11:14
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
37
当时还奇怪这段BIOS引导汇编,怎么反成这样...
现在无话可说膜拜大牛......
2007-4-1 14:03
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
38
bios引导程序怎么弄出来的?贴一个一块瞅瞅吧
2007-4-1 16:30
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
39
这个...好久前就有了
2007-4-10 00:44
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
这段代码到底什么意思?
2007-4-10 07:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
我也想知道!!
2007-4-10 14:12
0
雪    币: 238
活跃值: (326)
能力值: ( 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   ; 返回到实模式
2007-4-10 17:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
想问一下,这段代码执行后的效果是什么呢?
执行了一下,没任何结果~~~~
2007-4-10 17:38
0
雪    币: 390
活跃值: (707)
能力值: ( 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效果一样
2007-4-14 13:12
0
雪    币: 538
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
短小精悍嘛,收藏备用
2007-4-14 16:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
唉  实在是看不懂啊 我太笨了。。
2007-4-14 22:20
0
游客
登录 | 注册 方可回帖
返回
//