Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:966回复:1

求命,谁能解决这个问题?(定时中断、异常)

楼主#
更多 发布于:2002-08-15 15:11
我的程序修改了时钟中断(直接修改IDT)以达到16US的定时,但在运行中会出现缺页异常(有时候几秒后出现,有时长一点,但一定会出现)。
发生异常的代码如下:
              mov fs:[0],edx
              mov ecx,[esp+48]
              mov esi,fs:[124]
0008:80464a37 mov fs:[esi+13],cl

请问哪位大侠能帮我分析它的原因,谢谢
易水
WindThruEars
驱动老牛
驱动老牛
  • 注册日期2002-11-17
  • 最后登录2004-07-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-16 07:05
I don\'t think it\'s a good idea to modify IDT and hook your ISR. Not because M$ doesn\'t like it. If you look into a Windows provided ISR, you can find the first thing it does is to switch segment registers according to the interrupted task ( to see if it\'s user mode or kernel mode).

81857344 54               push    esp
81857345 55               push    ebp
81857346 53               push    ebx
81857347 56               push    esi
81857348 57               push    edi
81857349 83ec54           sub     esp,0x54
8185734c 8bec             mov     ebp,esp
8185734e 89442444         mov     [esp+0x44],eax
81857352 894c2440         mov     [esp+0x40],ecx
81857356 8954243c         mov     [esp+0x3c],edx
8185735a f744247000000200 test    dword ptr [esp+0x70],0x20000
81857362 0f8513010000     jne     8185747b
81857368 66837c246c08     cmp     word ptr [esp+0x6c],0x8
8185736e 7423             jz      81857393
81857370 8c642450         mov     [esp+0x50],fs
81857374 8c5c2438         mov     [esp+0x38],ds
81857378 8c442434         mov     [esp+0x34],es
8185737c 8c6c2430         mov     [esp+0x30],gs
81857380 bb30000000       mov     ebx,0x30
81857385 b823000000       mov     eax,0x23
8185738a 668ee3           mov     fs,bx
8185738d 668ed8           mov     ds,ax
81857390 668ec0           mov     es,ax
81857393 648b1d00000000   mov     ebx,fs:[00000000]
8185739a 64c70500000000ffffffff mov dword ptr fs:[00000000],0xffffffff
818573a5 895c244c         mov     [esp+0x4c],ebx
818573a9 81fc00000100     cmp     esp,0x10000
818573af 0f829e000000     jb      81857453
... ...

I am not sure how your ISR works, it should be little difficult to hook the ISR without some special considerations.
我是假耳朵
游客

返回顶部