Error Message A2051 Incorrectly Generated

ID Number: Q30377

5.10 5.10a

MS-DOS

buglist5.10 buglist5.10a fixlist6.00

Summary:

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.

More Information:

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.

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

JE instruction.

The following code demonstrates the problem:

.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 reference words: 5.10 5.10a 6.00