lwglucky
驱动牛犊
驱动牛犊
  • 注册日期2003-01-06
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望129点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
阅读:1745回复:1

进入中断后,比如说int 1中断,如何获得引起该中断的ring 3程序当时的寄存器值呢?

楼主#
更多 发布于:2009-04-22 17:07
进入中断后,比如说int 1中断,如何获得引起该中断的ring 3程序当时的寄存器值呢?中断的时候寄存器都是ring 0的值了..

请大侠指教一下,或者告诉我应该找什么资料
眼底手高
partime
驱动牛犊
驱动牛犊
  • 注册日期2002-02-27
  • 最后登录2009-11-09
  • 粉丝0
  • 关注0
  • 积分211分
  • 威望61点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-04-28 15:03
比如说int 1中断,如何获得引起该中断的ring 3程序当时的寄存器值呢?

好象是DWORD *Stacklocation = (DWORD *)ESP进入中断处理时的ESP
EFLAGS     Stacklocation[2]
EAX     Stacklocation[-1]
EBX     Stacklocation[-4]
ECX     Stacklocation[-2]    
EDX     Stacklocation[-3]    
ESI     Stacklocation[-7]    
EDI     Stacklocation[-8]    
EBP     Stacklocation[-6]    
ESP     Stacklocation[3]    
EIP     Stacklocation[0]
看别人做Interrupt代码就这样处理的
游客

返回顶部