Article: Q30576
Product(s): Microsoft Macro Assembler
Version(s): 5.1
Operating System(s):
Keyword(s):
Last Modified: 04-MAY-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Macro Assembler (MASM), version 5.1
-------------------------------------------------------------------------------
SUMMARY
=======
The following assembler modules produce a fix-up overflow error message during
linking.
When linking these two modules together, the .fardata-simplified segment
directive will cause a link-error fix-up overflow.
Every module with a .fardata segment is defining a different .fardata segment.
The linker will keep the segments separate. Therefore, declaring the fvar
variable external in module 2 generates the problem. The extrn far data item,
fvar, should be declared outside the .fardata segment.
MORE INFORMATION
================
Module 1
.model large
.stack
.data
public gvar
.fardata
public fvar
fvar db 55h
.code
extrn t2:proc
start: mov ax,@DATA
mov ds,ax
mov ax,@FARDATA
mov es,ax
call dword ptr t2
end start
Module 2
.model large
.data
extrn gvar:byte
.fardata
extrn fvar:byte
.code
public t2
t2 proc far
mov bl, es:fvar
ret FAR
t2 endp
end
Additional query words: 5.10
======================================================================
Keywords :
Technology : kbMASMsearch kbAudDeveloper kbMASM510
Version : :5.1
Solution Type : kbfix
=============================================================================