Microsoft KB Archive/74746

= FIX: ORG Following ORG Statement with $ May Fail in 6.0 =

Article ID: 74746

Article Last Modified on 11/17/2003

-

APPLIES TO


 * Microsoft Macro Assembler 6.0 Standard Edition

-



This article was previously published under Q74746



SYMPTOMS
The Microsoft Macro Assembler (MASM) version 6.0 may generate an incorrect offset when using the ORG directive following a previous ORG statement that uses the current-address operator ($). For example, incorrect code will be generated if the statement &quot;ORG $+1&quot; is placed anywhere before another ORG statement.



STATUS
Microsoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.



MORE INFORMATION
The sample code below demonstrates this problem. You can see in the source listing that the label &quot;wrongoffset&quot; has an incorrect offset. Instead of having an offset of 200h, wrongoffset is placed at offset 304h, which is 104h plus the 200h specified in the last ORG statement. Rather than assigning the location to 200h, the assembler added 200h to the current location.

Sample Code
; Assemble options needed: none

_text SEGMENT one  BYTE ? ORG 100h two  BYTE ? ORG $+2 three BYTE ? ORG 200h wrongoffset LABEL word _text ENDS END

Source Listing
0000              _text SEGMENT 0000 00           one   BYTE ? ORG 100h 0100 00           two   BYTE ? ORG $+2 0103 00           three BYTE ? ORG 200h 0304              wrongoffset LABEL word 0304              _text ENDS END

Additional query words: 6.00 buglist6.00 fixlist6.00a

Keywords: kbfix KB74746

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.