FIX: Error Message A2051 Incorrectly Generated (30377)



The information in this article applies to:

  • Microsoft Macro Assembler (MASM) 5.1
  • Microsoft Macro Assembler (MASM) 5.1a

This article was previously published under Q30377

SYMPTOMS

The code given below generates the following error message:
A2051: Operand not in current CS ASSUME segment
The error is caused by the JE NEAR PTR statement. However, the first jump statement assembles without error. Both statements should or should not assemble as they generate full 16-bit fixup records.

RESOLUTION

You can work around this problem by not using the PTR operator in the JE instruction.

STATUS

Microsoft has confirmed this to be a problem in Microsoft Macro Assembler (MASM) version 5.1 and 5.1a. This problem was corrected in MASM version 6.0.

MORE INFORMATION

The following code demonstrates the problem:

Sample Code

   .386
   PGROUP  group   CODE,NCODE
   CODE    segment use16 byte public 'prog'
           assume  cs:PGROUP
           jmp     SYM
           je      near ptr SYM
   CODE    ends
   NCODE   segment use16 byte public 'prog'
           assume  cs:PGROUP
   SYM:
   NCODE   ends
           end
				

Modification Type:MajorLast Reviewed:10/16/2003
Keywords:kbfix KB30377