Exception Errors with EMM386.SYS / EMM386.EXE

ID: q52195

The information in this article applies to:

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

Last Reviewed: December 21, 1994