Call to @Mkthread Macro Results in Phase Error

ID Number: Q34664

5.10 5.10a | 5.10 5.10a

MS-DOS | OS/2

buglist5.10 buglist5.10a fixlist6.00

Summary:

The program below generates a phase error on the call to the @Mkthread

macro that only includes the line "mov cx, seg fproc". The similar

MASM statements do not generate a phase error.

The problem has nothing to do with the macro. The difference between

the MASM statements is moving into CX versus AX.

Microsoft has confirmed this to be a problem in MASM versions 5.1 and

5.1a for MS-DOS and OS/2. This problem was corrected in MASM version

6.0.

More Information:

To work around this problem, change the macro line to the following:

MOV CX, WORD PTR (SEG PROG)

The following sample code demonstrates the problem:

.model large

@mkthread macro prog

mov cx,seg prog

endm

.code

mov ax, seg fproc

@mkthread fproc

fproc proc

mov ax,seg fproc

fproc endp

end