找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1876|回复: 1

电脑出现"致命异常错误"排除方法

论坛快速 发表于 2006-11-18 14:05:24 | 显示全部楼层 |阅读模式 来自 中国河南开封

马上注册,结交更多好友,享用更多功能。

您需要 登录 才可以下载或查看,没有帐号?注册

x
Windows 98"蓝屏"现象较多,并提示"致命的异常错误0E发生在......",致使IE或其它软件无法安装或正常运行,而一旦遇之又不知是何原因、如何排除,因此给用户的操作带来很大的不便和麻烦,下面就产生该类问题的原因及相应的对策,作一综述,供大家参考。
 Windows 9x是32位操作系统,对内存具有32位寻址能力,可以发挥80386以上CPU所具有的保护模式功能,为每个应用程序提供独立的4GB地址空间,但事实上,这远远超过了目前大部分PC机的内存容量,这就造成了有4GB地址空间,而无真正物理内存与之对应的问题。
于是,Windows 9x便利用CPU的虚拟内存能力,把硬盘的一部分当作内存(硬盘交换文件)来使用,即通常所说的虚拟内存。现在很多用户配置的硬盘容量一般都较大,这下似乎有了用不完的内存,不会发生内存不够的情况了。
其实不然,首先,能作虚拟内存的必须是硬盘上的空余空间,而且这些被分若干块的空间连续长度必须是512K的整数倍,才能被用作虚拟内存;
第二,CPU在RAM存取数据的速度远远快于RAM与硬盘交换数据的速度。
这样,有时就会发生应用程序存取当前不在RAM中而在交换文件中数据的情况,这时,CPU就会产生异常错误0E(也称为页面异常),但此时屏幕上不会有任何提示,Windows 9x尝试继续运行,只有当应用程序存取数据的地址或者将要跳转到的地址根本就没有分配RAM或虚拟内存时(即出现页面无效),Windows 9x才显示"异常错误发生......",这下它真不行了,提示用户中止程序运行。  引起该错误的原因很多,相应有不同的处理方法:
  1.CPU超频
这是最近很多人电脑发生上述故障的一个重要原因。超频提高了CPU的工作频率,同时也使其性能变得不稳定,尤其是在炎热的夏季,这个问题暴露得更加明显。究其原因,CPU在RAM存取数据的速度本来就快于RAM与硬盘交换数据的速度,超频使这种矛盾更加突出,同时由于气温升高,构成CPU等电子元器件材料的指标参数也发生微妙变化,加剧了在RAM或虚拟内存中找不到需要数据的情况,这样就会出现"异常错误"。解决办法:降低频率,使CPU工作在规定的正常频率,同时使用"降温"软件,清扫CPU风扇等。
  2.硬盘剩余空间太少或碎片太多
前面已经谈到,硬盘上能作虚拟内存的必须是自由空间,而且空间连续长度必须是512K的整数倍。如果你的硬盘还只有几百MB,出现"异常错误"与此很可能有关,当然,就算硬盘容量再大,隔一段时间进行一次碎片整理也是非常必要的。
  3.Windows启动的程序过多
系统资源消耗殆尽,使个别程序需要的数据在内存或虚拟内存中找不到,也会出现异常错误。解决办法:不要同时启动过多的程序,一个简单的监测方法是,随时打开Windows各窗口上"帮助"→"关于...",看系统资源还剩多少,低于60%就应该小心了,不要再启动新的程序、打开新的窗口了。万一因此发生"异常错误",只需重新启动系统就正常了。顺便说一句,有的朋友喜欢"Shift + 重新启动计算机",虽然重新启动的速度较快,但系统资源并不能完全释放,所以本人建议大家还是以正常方式重新启动计算机。
  4.系统冲突
经常遇到的是由于声卡或显卡的设置冲突,引起异常错误。此外,其它设备的中断、DMA或端口出现冲突的话,可能导致少数驱动程序产生异常,甚至无法正常启动Windows 9x。解决办法:以"安全模式"启动,在"控制面板→系统→设备管理"中进行适当调整,一般可以解决。对于在驱动程序中产生异常错误的情况,可以修改注册表。选择"开始/运行",键入"Regedit",进入注册表编辑器,通过菜单下的"查找"功能,找到并删除与驱动程序前缀字符串相关的所有"主键"和"键值",重新启动。
论坛快速  | 发表于 2006-11-18 14:06:12 | 显示全部楼层 来自 中国河南开封

电脑出现"致命异常错误"排除方法 (续

5.程序设计问题。部分程序在编制时内存分配不合理(Windows的Bug都不少),完成后又未经过严格测试,在特殊的运行条件下就会因找不到内存分配地址而频频出错。还有,编制时考虑不周,程序只适用于特殊型号、种类的硬件,如果遇到其它硬件时也会出错。顺便说一句,一些盗版软件因解密过程中破坏、丢失了部分源代码,也常常导致"异常错误"的发生。因此,还是用正版软件的好,以免前功尽弃。
  6.版本冲突。多数应用程序都要调用特定版本的动态链接库DLL或者OLE组件,如果在安装某个软件时,旧版本的DLL覆盖了新版本的DLL,或者删除应用程序时,误删了有用的DLL文件,就可能使上述调用失败,从而引起"异常错误"。遇到这种情况,解决的办法,自然就是找到新版文件。"找"的方法较多,可以直接从光盘上某个软件中、游戏中拷贝,或者用Windows 9x(包括OSR2版)光盘中的Extract这个小工具,直接从CAB压缩文档找到并解压出所需文件。
  7.注册表错误。注册表是Windows 9x的"命根子",其中保存有Windows 9x及应用程序的重要数据,即使是哪个细小地方出了问题,都很可能引发"致命异常错误"的发生,甚至可能引起系统崩溃。因此,在你估计到操作可能引起它的变动以前(如安装一个新软件),先对其进行备份是很有必要的,一旦发生错误,可以恢复注册表,否则,要么请专业人士修复注册表,要么重新安装Windows 9x及你的其它程序,那麻烦就真的有点大了。
  8.软硬件不兼容。常遇到的是,BIOS或驱动程序太旧,以致不能很好支持硬件,导致"异常错误"的发生。如果你的主板支持BIOS升级,尽量升级到最新版本,同样,尽量找到与你设备配套的最新的设备驱动程序,也可以减少错误的发生。
  9.BIOS设置。众所周知,是否正确设置BIOS,是电脑能否正常运行的关键。其中硬盘及内存等的参数设置尤为重要,弄不好,就有可能出现程序存取数据失败,而导致"异常错误"的发生。其实,现在多数主板BIOS有"硬盘实用程序"一项,它可以检测并存储硬盘的各项参数,通常使用这些检测值是安全的。但对于较老的硬盘,有必要对一些较新的设置进行屏蔽(如硬盘的32位模式等)。至于内存,要注意一、二级缓存以及影子内存的设置。实在有困难,对于BIOS
的设置,可以请行家帮忙,这样,不仅正确,而且可能更加优化。
  10.硬件老化或存在故障。如现在有人还在用的540M硬盘,其转速仅为3600转/分钟左右,假如用在PⅢ、PC133 SDRAM、133外频主板这样的配置上,快马拉破车,出现"异常错误"的可能性自然较大。此外,少数不法商人在给顾客组装兼容机时,使用质量低劣的板卡、内存,有的甚至出售冒牌主板和Remark过的CPU、内存,这样的机器在运行Windows 9x时很不稳定,发生"异常致命错误"在所难免。因此,用户购机时应擦亮自己的眼睛,最好带个内行参谋,并用一些较新的工具软件(如Hwinfo、Norton等)测试电脑,长时间连续烤机(如72小时),以及争取尽量长的保修时间等。
  从上面可以看出,Windows 9x发生异常错误的原因的确是多种多样的,上面不一定已经列举完了,各自的解决办法也有所不同。实际当中,有时候,如果真要弄清此类故障的"来龙去脉",其实是比较困难的,遇到这种情况,除了上面谈到的各种相关解决方法外,可以试试重装软件,甚至重装系统,如果仍然时常发生"异常错误",那么应怀疑硬件有问题了,条件允许的话,可用替换法和排除法来确定问题所在。
    3、CPU的处理器的10种异常代码说明 下面给出80x86 CPU的处理器的部分异常代码及其代表的意义。这些代码实际上是80386的保留中断号。我想很多人都对异常代码代表的意义很感兴趣,然而,这些信息不太容易被初学者看懂,只能满足一下你的好奇心,呵呵。
    00: Divide Fault (除法错误)
    此异常发生在企图让CPU做除数为0的除法运算,或者除法运算结果溢出时。通常这个错误不会导致蓝屏,但是windows会显示"该程序执行了非法操作..."这样的对话框。
    02: NMI interrupt (不可屏蔽中断)
    2号中断被保留作为硬件的不可屏蔽中断。不可屏蔽中断具有最高优先权,它通常用于解决系统中最紧急的情况。2号中断不会被异常机制截获。
    03: Overflow trap (溢出)
    当CPU执行一条INTO指令时,如果0F位被置为1,则会发生Overflow trap异常。
    04: Bounds Check Fault (边界检查错误)
    BOUND指令比较数组的下标是否越界,如果是,发生边界检查错误。
    05: Invalid Opcode fault (无效指令码错误)
    这个错误产生的原因有:
    1) CPU试图对一个同任何合法的指令都不对应的bit pattern进行解码(需要有计算机体系结构知识才能看懂这句话,呵呵。我不知道该怎么用中文表达"bit pattern")。
    2) CPU试图执行一条带有无效操作数的指令 。
    3) CPU试图在虚拟8086模式下执行保护模式下的指令
    4) CPU试图在一条不能被锁的指令前执行LOCK前缀。
    06: Coprocessor not available fault (协处理器不可用错误)
    当系统中不存在数学协处理器,并且CR0寄存器的EM位为1,代表现在正在使用数学协处理器仿真时,如果执行浮点运算指令,则产生7号中断。当数学协处理器正在工作时如果发生任务切换,该中断也会被引发,以通知CPU保存数学协处理器的工作。
    07: Double Fault (双重错误)
    处理一个异常时可能会引发另一个异常。在这种情况下产生双重错误。
    08: Coprocessor Segment Overrun (协处理器段超出)
    当一个浮点运算指令导致对内存中超过段边界的区域进行读写的情况时,发生此错误。如果开始时浮点操作数就在段边界以外,则GPF错误(一般保护错误)将发生。
    09: Invalid Task State Segment Fault (无效任务状态段错误)
    由于任务状态段中包含很多描述符,很多情况都会导致这个错误。通常,CPU将从任务状态段中收集足够的信息,以便确定究竟是哪个地方出了娄子。
    0A: Not Present Fault (不存在错误,段不存在错误)
    "不存在"中断使得操作系统可以通过分段机制实现虚拟存储器。当一个段被标记为"不存在"时,该段被"交换"到磁盘交换文件中。当程序需要访问一个在磁盘交换文件中的段时,引发0B中断。
    0B: Stack Fault (堆栈错误)
    当一条指令引用了超出堆栈段界限的存储空间时,发生堆栈错误。如果操作系统支持"向下扩展的段",也就是说堆栈的大小可以被增加,则会缓解这样的问题。而如果试图用一个无效的描述符加载一个堆栈段将会导致一般保护错误。
    0C: General Protection Fault (呵呵,这个就是臭名远扬的一般保护错误啦)
    任何未被列在本文中的其他错误,都被当成一般保护错误引发。通常,一般保护错误代表程序已经崩溃,需要立即被终止。
    0D: Page Fault (页错误)
    正常情况下,这是采用页式存储管理(实现虚拟存储器的一种方法)的操作系统处理缺页中断的信号。如果某个操作违反了页的保护规则,比如从虚拟存储器中取页失败、取数据失败、指令违反了处理器的保护规则等,也会引发页错误。
    0E: Coprocessor error Fault (协处理器错误)
    10: Alignment Check Fault (对齐检查错误)
    这个中断只发生在80486CPU上。当一个ring3优先级的程序试图读写的操作数必须使用多于一个字节的存储空间来保存(字、双字等),并且这个操作数在内存中不从偶地址开始存放,则产生此错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表