Fix-Up Overflow Caused By Extrn Statements and .Fardata

ID: Q30576


The information in this article applies to:
  • Microsoft Macro Assembler for MS-DOS, 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 :
Version : :5.1
Platform :
Issue type :


Last Reviewed: January 4, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.