HELP: assembly & C linking woes....

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Andrew Wan

    HELP: assembly & C linking woes....

    I am having problems linking an assembly object with my C object
    files. Am getting:

    Linker Warning: DOSSEG directive ignored in module asm.asm
    Linker Error: Undefined symbol _ASMClsV in module main.c
    Linker Error: Undefined symbol VADDR in module asm.asm

    In my asm.asm file I've got:

    DOSSEG
    ..MODEL huge
    ..386

    ..DATA
    EXTRN vaddr : word;

    ..CODE
    PUBLIC ASMClsV

    ASMClsV PROC Near
    ;bla bla
    ASMClsV EndP

    In main.c I've got:

    extern void ASMClsV();

    Am trying to link using Borland C++ 4.5 since my source files are all
    16-bit. I successfully linked the same asm.asm file with a 16-bit
    pascal object using Turbo Pascal 7.0. Why can't I link using Borland C+
    + 4.5 to a 16-bit C file?

    Also, I used Microsoft Macro Assembler 5. Should I use Turbo Assembler?

  • jacob navia

    #2
    Re: HELP: assembly & C linking woes....

    Andrew Wan wrote:
    I am having problems linking an assembly object with my C object
    files. Am getting:
    >
    Linker Warning: DOSSEG directive ignored in module asm.asm
    Linker Error: Undefined symbol _ASMClsV in module main.c
    Linker Error: Undefined symbol VADDR in module asm.asm
    >
    MAYBE the problem is the missing underscores in the asm
    program

    In my asm.asm file I've got:
    >
    DOSSEG
    .MODEL huge
    .386
    >
    .DATA
    EXTRN vaddr : word;
    EXTRN _vaddr : word;

    add a leading underscore
    >
    .CODE
    PUBLIC ASMClsV
    Shouldn't that be
    PUBLIC _ASMClsV

    with the leading _
    >
    ASMClsV PROC Near
    ;bla bla
    ASMClsV EndP
    >
    In main.c I've got:
    >
    extern void ASMClsV();
    >
    Am trying to link using Borland C++ 4.5 since my source files are all
    16-bit. I successfully linked the same asm.asm file with a 16-bit
    pascal object using Turbo Pascal 7.0. Why can't I link using Borland C+
    + 4.5 to a 16-bit C file?
    >
    Also, I used Microsoft Macro Assembler 5. Should I use Turbo Assembler?
    >

    Comment

    Working...