当前位置:  技术问答>linux和unix

在x86中断发生时,eflag中的寄存器是什么值,都是0吗?

    来源: 互联网  发布时间:2016-05-31

    本文导语:  在x86中断发生时,eflag中的寄存器是什么值,都是0吗?还是照被中断程序的eflag,只是修改各别位,像中断门陷阱门对IF的处理? | 呵呵,貌似中断时要先在堆栈中保存 eflag,退出时弹出 eflag 吧......

在x86中断发生时,eflag中的寄存器是什么值,都是0吗?还是照被中断程序的eflag,只是修改各别位,像中断门陷阱门对IF的处理?

|
呵呵,貌似中断时要先在堆栈中保存 eflag,退出时弹出 eflag 吧...
中断中的 eflag 不影响中断前后的 eflag...
不知道你说的没有任何关系是指的...

|
貌似一般情况下,都不为0,根据具体情况而定...

标志寄存器EFLAGS存放有关处理器的控制标志,标志寄存器中的第1、3、5、15位及18~31位都没有定义
第8位TF(Trap Flag)是自陷标志,当将其置1时则可以进行单步执行。当指令执行完后,就可能产生异常1的自陷(参看第四章)。也就是说,在程序的执行过程中,每执行完一条指令,都要由异常1处理程序 (在Linux内核中叫做debug())进行检验。当将第8位清0后,且将断点地址装入调试寄存器DR0~DR3时,才会产生异常1的自陷。                                   

第12、13位IOPL是输入输出特权级位,这是保护模式下要使用的两个标志位。由于输入输出特权级标志共两位,它的取值范围只可能是0、1、2和3共4个值,恰好与输入输出特权级0~3级相对应。但Linux内核只使用了两个级别,即0和3级,0表示内核级,3表示用户级。在当前任务的特权级CPL(Current Privilege Level)高于或等于输入输出特权级时,就可以执行像IN、OUT、INS、OUTS、STI、CLI和LOCK等指令而不会产生异常13(即保护异常)。在当前任务特权级CPL为0时,POPF(从栈中弹出至标志位)指令和中断返回指令IRET可以改变IOPL字段的值。

第9位IF(Interrupt Flag)是中断标志位,是用来表示允许或者禁止外部中断(参看第四章)。若第9位IF被置为1,则允许CPU接收外部中断请求信号;若将IF位清0,则表示禁止外部中断。在保护模式下,只有当第12、13位指出当前CPL为最高特权级时,才允许将新值置入标志寄存器EFLAGS以改变IF位的值。

第10位DF(Direction Flag)是定向标志。DF位规定了在执行串操作的过程中,对源变址寄存器ESI或目标变址寄存器EDI是增值还是减值。如果DF为1,则寄存器减值;若DF为0,则寄存器值增加。

第14位NT是嵌套任务标志位。在保护模式下常使用这个标志。当80386在发生中断和执行CALL指令时就有可能引起任务切换。若是由于中断或由于执行CALL指令而出现了任务切换,则将NT置为1。若没有任务切换,则将NT位清0。

第17位VM (Virtual 8086 Mode Flag)是虚拟8086方式标志,是80386新设置的一个标志位。表示80386CPU是在虚拟8086环境中运行。如果80386CPU是在保护模式下运行,而VM为又被置成1,这时80386就转换成虚拟8086操作方式,使全部段操作就像是在8086CPU上运行一样。VM位只能由两种方式中的一种方式给予设置,即或者是在保护模式下,由最高特权级(0)级代码段的中断返回指令IRET设置,或者是由任务转换进行设置。

|
咋会都是0呢?google一下几个标志位的含义。

    
 
 

您可能感兴趣的文章:

  • 网卡寄存器读写:X86 vs ARM
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Solaris 9是否有x86版本?免费吗?
  • S8 for X86怎么安装呀?
  • HTML标签参考手册 iis7站长之家
  • X86下使用C、C++
  • 有没有AIX for x86虚拟机
  • X86引导启动程序 我的OS第一帖
  • 我可以在机器上同时装win98,2000,linux,freeBSD,solaris x86吗?
  • solaris9 x86如何安装?必须要从软盘启动吗?
  • 小声的问一句,有没有能装在x86上的unix操作系统
  • 极小的x86操作系统 KolibriOS
  • Solaris for X86 和Solaris for Sparc主要区别在哪?
  • MacOS有没有X86平台上的版本?
  • x86(大雪), 谢谢你指点wget, 请进!
  • 关于mac os x86的问题,如何进入图形界面。
  • solaris8 for x86(intel)那里有的下
  • 请问哪有solaris x86 下载
  • 我想装Solaris for X86 能用软盘引导吗?
  • solaris 8 for x86能用 u盘哇?
  • solarsi10(x86)中如何安装Sundance ST201网卡?
  • i386的和x86的盘还有什么区别么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3