文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构Windows中断编程
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
·正则表达式从入门到精通
·SQL Server不能启动的常见故障
·Windows应用程序设计的基本术语
·软件本地化与汉化
·Windows中断编程
·windows nt 4.0中文版的开机过程
热点TOP10
·网游外挂编写完全攻略
·兵之利器 软件开发辅助工具纵览
·开发WDM型的USB设备驱动程序
·DCOM揭秘之六
·VS2008 第一次安装心得及使用
·游戏外挂设计技术探讨
·《数据结构》试题下载2004
·饺子馆的物流故事之二——供应链视角下的缺货及品类管理
·代码静态分析工具PC-LINT安装配置
·使用BHO定制你的IE浏览器
·原始套接字透析之Raw Socket基础
·基于CS模式的Winsock网络通讯程序
·程序语言效率比较
·《Windows程序设计》读书笔记之六
·四种网络游戏外挂的设计方法
·用CVSNT与WINCVS实现CVS的架设
·利用HOOK拦截封包原理
·简单对象访问协议(SOAP)初级指南
·带你全面了解数据库应用系统的开发步骤
·UML业务建模实例分析

Windows中断编程

日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]


    下面我们首先介绍DPMI接口,然后基于它实现Windows下中断服务程序的设计。
    四、DOS保护模式接口 DMPI  Windows除了标准服务外,还支持一组特殊的DOS服务,称为DOS保护模式接口 DPMI,由一些INT2FH和INT31H服务组成。它使应用程序能够访问 PC系列计算机的扩充内存,同时维护系统的保护功能。 DPMI通过软件中断31h来定义了一个新的接口,使得保护模式的应用程序能够用它作分配内存,修改描述符以及调用实模式软件等工作。
    Windows为应用程序提供 DPMI服务。即Windows是DPMI的宿主(host),应用程序是DPMI的客户(client),可通过INT31H调用得到DPMI服务。INT 31H本身提供多功能。其中它的中断管理服务允许保护模式用于拦截实模式中断,并且挂住处理器异常。有些服务能够和 DPMI宿主合作,以维护应用程序的虚拟中断标志。
    可以用INT31H来挂住保护模式中断向量,以中断方式处理外部实时事件。利用 INT 21H,功能0205H:设置保护模式中断向量,将特定中断的保护模式处理程序的地址置入中断向量里。调用方式:
AX=0205H,BL=中断号,CX:(E)DX=中断处理程序选择符:偏移值。返回:执行成功CF=清零,执行失败CF,置位。
    挂住/解挂中断向量的时机很重要。主窗口第一次被创建时会传送它WM—CREATE消息,这时是挂住中断向量的最好时机。退出时需解挂向量,否则Windows可能崩溃。上窗口接收到WM_DESTROY之后进行解挂工作,是最适合的。解挂向量可先用INT35H,0204H功能将老的中断向量保存,退出时用INT35H,0205H恢复。
    五、编程实现
    有了DPMI的支持,我们就可以很方便地处理数据采集、串行通信等工业过程中的实时事件。下面以Windows3.1平台下中断方式实现的串行通信为例,说明中断程序的编制和实现。为便于参考,给出了详细的代码。开发平台BC3.1/BC4.5,其本身支持0.9版的DPMI,无需运行其它支持DPMI的软件。编程语言C,可与C++混合编译。
    初始化COM1,9600波特率,每字符8bits,1个停止位,中断接收,查询发送。
  //windows asy COmmunica60n
  //by Li Xiumi98
  //last modified on June25,1996
  #include<windows.h>
  #include<dos.h>
  void interrupt far DataReceive() ;
  void interrupt far( * old_vector)();
  unsigned char dataCom_r[1024],datacom_s[1024]:
  int inflag=0 ;
  unsigned int s8259;

  int InitCom1()
  {
  s8259=inportb(0x21);
  outportb(0x21,s8259&0xe8);
  outportb(0x3fb,0x83);
  outportb(0x3f8,0x0c);
  outportb(0x3f9,0x00);
  outportb(0x3fb,0x03);
  outportb(0x3fc,0x08);
  outportb(0x3f9,0x01);
  return 1;
}

void interrupt far DataReceive()
{
static int i=0 ;
char rechar =0 ;
rechar=inportb(0x3f8);
if(inflag==0)
{
if(rechar!='s'&&i==0)
{
i=0;
goto l1;
}
datacom_r[i++]=rechar;
if(rechar=='e')
{
inflag=1;
i=0;
}
}
l1:outportb(0x20,0x20);
}


void InitCom(void)
{
asm{
cli;
mov ax,204h
mov bl,0ch
int 31h
sti
}
old_vector=MK_FP(_CX,_DX);
asm{
cli
mov ax,205h

上一页 [1] [2] [3] 下一页 




上一篇:Windows应用程序设计的基本术语

下一篇:八皇后问题的java实现

Windows中断编程 相关文章:
·Windows Vista震撼1600X1200高清壁纸
·WindowsXP超级技巧
·最全面的WindowsXP修改大全
·Windows XP的20个超级实用技巧大全
·让Windows XP系统快10倍
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·图文详解 Windows 2003服务器集群安装
·破解windowsXP,window2000的开机密码
·Windows XP鲜为人知的N招实用技巧
·DirectX 10 for Windows XP修改版下载
Windows中断编程 相关软件:
·Windows主题70合一典藏版
·Windows 2003 Server 简体中文企业版(免激活)ISO
·Windows 98简体中文第二版
·Windows XP Service Pack 2简体中文版
·如何加固Windows XP 主机安全
·Windows环境下32位汇编语言程序设计
·Windows XP Home Edition SP2简体中文版
·番茄花园 Windows 2000 3 合 1 最终版
·Windows 97(Windows95第二版)
·Windows XP SP2 EN ISO 英文原版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot