Microsoft KB Archive/30377

From BetaArchive Wiki

Article ID: 30377

Article Last Modified on 10/16/2003



APPLIES TO

  • Microsoft Macro Assembler 5.1 Standard Edition
  • Microsoft Macro Assembler 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
                


Additional query words: 5.10 5.10a buglist5.10 buglist5.10a fixlist6.00

Keywords: kbfix KB30377