Exception Errors with EMM386.SYS / EMM386.EXE

Last reviewed: December 21, 1994
Article ID: Q52195
The information in this article applies to:
  • Microsoft MS-DOS operating system versions 4.x, 5.0, 6.0, 6.2, 6.21, 6.22

SYMPTOMS

If you install the EMM386.EXE device driver included with MS-DOS, you may get the following error message:

   EMM386 Exception error #13 @ xxxx:xxxxxxxx CODE xxxx
   PRESS ENTER TO REBOOT.

CAUSE

The error means that the 80386 microprocessor has encountered a general protection violation. Because the EMM386 driver operates the 80386 chip in virtual real mode, the microprocessor checks for valid memory accesses. If a program tries to access memory that it is not allowed to access, the 80386 chip generates an exception fault error, which is detected by EMM386. In essence, EMM386 is reporting an error detected by the CPU in virtual mode.

WORKAROUND

You should remove EMM386 to determine if problems still occur without it. If problems still occur, correct them and reinstall EMM386.

MORE INFORMATION

The 12 hexadecimal digits following the error (represented by x in the above error message) are the address of the machine language instruction following the instruction that caused the exception error. This number is given in CS:EIP format, where CS is the code segment, and the EIP is the instruction pointer (relative to the code segment). This value indicates where in memory the CPU was executing instructions when the exception occurred. It is sometimes possible to determine from this value what software caused the exception to occur.

This error should not occur on systems that are 100 percent IBM compatible. Because of the hardware-intensive nature of the EMM386 device driver, strict IBM hardware compatibility is required. If this error does occur on your system, the EMM386.SYS or EMM386.EXE device driver may need to be modified by your machine's manufacturer.

The following is a list of Intel 80386 protected mode exception errors and their names:

   Code    Meaning
   ----    -------

   0       Divide error
   1       Debugger interrupt
   2       Nonmaskable interrupt
   3       Breakpoint
   4       Overflow interrupt
   5       Array boundary violation
   6       Invalid opcode
   7       Coprocessor not available
   8       Double fault
   9       Coprocessor segment overrun
   10      Invalid task state segment
   11      Segment not present
   12      Stack exception
   13      General protection violation
   14      Page fault
   16      Coprocessor error


KBCategory: kbref kbhw kberrmsg kb3rdparty
KBSubcategory: msdos gpf win31 win30 wfw wfwg
Additional reference words: 6.22 4.0 4.00 4.0a 4.00a 4.01 4.01a 5.00
5.00a 6 6.0 6.00 6.20 3.0 3.1 GP


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: December 21, 1994
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.