MSM9204001: MASM Moves Segment Register w/out Generating Error

ID Number: Q83087

6.00 6.00a | 6.00 6.00a

MS-DOS | OS/2

buglist6.00 buglist6.00a buglist6.00b

Summary:

PROBLEM ID: MSM9204001

SYMPTOMS

Microsoft Macro Assembler (MASM) versions 6.0 6.0a and 6.0b may move

a segment register instead of generating an error on an invalid code

statement. In the following example, the statement

mov bx, es[1234h]

should generate an error. However, MASM treats the statement as

mov bx, es

and thus does not generate the code that may be expected. The code

that the user anticipated being generated was:

mov bx, es:[1234h]

STATUS

Microsoft has confirmed this to be a problem in MASM versions 6.0

and 6.0a. We are researching this problem and will post new

information here as it becomes available.

More Information:

The following program should generate two assembler errors but does

not:

Sample Code

-----------

; Assemble options needed: none

.MODEL small

.386

.CODE

start:

mov bx,es[1234h] ; This should generate an error.

mov es[1234h],bx ; This should generate an error.

mov ax, 4C00h

int 21h

END start

Additional reference words: 6.00 6.00a