FIX: ORG Following ORG Statement with $ May Fail in 6.0Last reviewed: September 16, 1997Article ID: Q74746 |
6.00 | 6.00
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSThe 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 "ORG $+1" is placed anywhere before another ORG statement.
STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a.
MORE INFORMATIONThe sample code below demonstrates this problem. You can see in the source listing that the label "wrongoffset" 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 100htwo BYTE ? ORG $+2three BYTE ? ORG 200hwrongoffset 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 reference words: 6.00 buglist6.00 fixlist6.00a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |