FIX: EXTRN ABS Doesn't Work As Software Interrupt Number (82290)
The information in this article applies to:
- Microsoft Macro Assembler (MASM) 5.1
- Microsoft Macro Assembler (MASM) 5.1a
This article was previously published under Q82290 SYMPTOMS
In 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:
error L2029: Unresolved externals.
RESOLUTION
You 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.
STATUS
Microsoft 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.
Modification Type: | Major | Last Reviewed: | 10/22/2003 |
---|
Keywords: | kbfix KB82290 |
---|
|