The information in this article applies to:
SYMPTOMSIn the Microsoft Macro Assembler (MASM) versions 5.1 and 5.1a or QuickAssembler versions 2.01 and 2.51, using an absolute external symbol as a software interrupt number fails to generate the correct number at link time. The module accessing this PUBLIC symbol does not generate the proper number; instead, it gets set to 0. This is a problem only when the symbol is used with the INT instruction. In MASM version 5.1, using an absolute external symbol causes the linker to generate:
RESOLUTIONYou can work around this problem by using an equate declared in an include file rather than relying on an absolute external. The include file that contains this equate can be included in all the source files that need to access the equate. This allows the assembler to determine the value of the symbol, instead of relying on the linker to provide the value. STATUSMicrosoft has confirmed this to be a problem in MASM versions 5.1 and 5.1a and QuickAssembler versions 2.01 and 2.51 (buglist2.01 and buglist2.51). This problem was corrected in MASM version 6.0. MORE INFORMATIONThe following code demonstrates the incorrect result. To reproduce this error, assemble both HELLO.ASM and DISPLAY.ASM with MASM 5.1a, then link together using LINK version 5.01.20. Sample Code
Additional query words: 5.10 5.10a extern extrn buglist5.10 buglist5.10a fixlist6.00
Keywords : |
Last Reviewed: January 4, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |