编程论坛's Archiver

yyt_3891 发表于 2007-7-18 12:54

[求助]问一个关于中断的函数

void far interrupt NewInterupt9(void)<BR>{<BR>     unsigned char ScanCode,temp;<BR>     ScanCode = inportb(0x60);<BR>     temp = inportb(0x61);<BR>     outportb(0x61,temp | 0x80);<BR>     outportb(0x61,temp &amp; 0x7f);<BR>     if(ScanCode&amp;0x80)<BR>     {<BR>        ScanCode&amp;=0x7f;<BR>        keyState[ScanCode]=0;<BR>     }<BR>     else<BR>     {<BR>        keyState[ScanCode]=1;<BR>        keyPressed[ScanCode]=1;<BR>     }<BR>     outportb(0x20, 0x20);<BR>}<BR>这是一个关于调用中断控制键盘输入的函数, 但具体每一行是什么意思不懂,有那位给解释一下,还有关于中断函数的一些格式有什么也请不惜赐教...

一笔苍穹 发表于 2007-7-19 09:18

<P>这段代码并没有使用中断,而是一段中断服务例程(ISR),是用来接管原中断的。里面只涉及到了端口操作(outportb和inportb),具体往哪个端口里送什么数据,这都是有规定的,可以查查相关的标准文档。</P>

yyt_3891 发表于 2007-7-19 15:03

<P>老大谢谢了</P>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.