| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2003 人关注过本帖
标题:自己修改int 1ch中断处理程序执行不正确应该怎么修改
只看楼主 加入收藏
parson
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-30
收藏
 问题点数:0 回复次数:3 
自己修改int 1ch中断处理程序执行不正确应该怎么修改
自己修改了int 1ch的中断服务程序,在Windows的DOS下执行不正确,不知道应该怎么调试,情各位帮忙
搜索更多相关主题的帖子: int 中断处理程序 DOS 服务程序 Windows 
2007-09-01 15:04
liyun2060
Rank: 2
等 级:新手上路
威 望:3
帖 子:22
专家分:0
注 册:2007-9-2
收藏
得分:0 

调用很简单~~
你直接在程序中用这个语句
int 1ch
就可以调用了。

调试的话 你用DEBUG加载主程序 主程序中肯定有个安装中断程序的功能
一路T 到 安装程序完毕
然后通过中断向量表计算自己的中断程序被安装到了内存的什么地方 然后一路跟踪进去执行 调试

你还是不明白的话看下我以前学习的笔记
8086CPU用称为中断类型码的数据来标识中断信息的来源。中断类型码为一个字节型数据。可以表示256种中断信息的来源(简称中断源)。
内中断有四个,在8086CPU中的中断类型码如下:
1 除法错误 0
2 单步执行 1
3 执行int0指令 4
4 执行int n指令 n 为字节型立即数,是提供给CPU的中断类型码

中断向量表 所谓中断向量就是中断处理程序的入口地址
CPU用中断类型代码,通过查找中断向量表,就可以得到中断处理程序的入口地址。中断向量表在内存中存放,对于8086PC机。中断向量表指定放在内存地址0处。从0000-0000到0000-03E8的1000个单元中存放着中断向量表对于8086,这个入口地址包括段地址和偏移地址。高地址字存放段地址,低地址字存放偏移地址

中断过程(由CPU自行完成)
1 从中断信息中取得中断类型码
2 PUSHF
3 TF=0 IF=0
4 PUSH CS
5 PUSH IP
6 (ip)=(N*4),(CS)=(N*4+2)

中断处理程序
1 保存用到的寄存器
2 处理中断
3 恢复用到的寄存器
4 用iret指令返回

iret指令的功能用汇编语法描述为
pop ip
pop cs
popf


2007-09-04 17:23
liyun2060
Rank: 2
等 级:新手上路
威 望:3
帖 子:22
专家分:0
注 册:2007-9-2
收藏
得分:0 

最好把代码贴出来


2007-09-04 17:24
快乐出发0220
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:130
注 册:2012-4-13
收藏
得分:0 
我也表示看不懂啊。。。
2012-06-24 10:47
快速回复:自己修改int 1ch中断处理程序执行不正确应该怎么修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049783 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved