我做了个试验,C语言程序用medium内存模式编译,被调用的汇编子程说明为FAR,可是连接后程序不能正常运行。察看map文件后发现,汇编程序根本就没有连接上去,这是怎么回事?
如果链接时没有任何错误的话, 是链接进去了. 如果有错误提示 _xxxx 没有定义这样的错误信息, 说明确实是没有链接进去. 这时分别查看一下两个的 obj 文件, 看看响应的名称在它们中被表现成了什么, 这样就可以找出错误的原由并进行改正了.
_TEXT 不定义成 public 对 Medium 模式没有关系吧. 因为, public 就是表明可以和其他同类段进行合并的, Medium 模式下, 各模块间的代码段本来就是独立的, 段名也是不同的, 不进行合并. 但应该说明段的类别, 即 _TEXT segment CODE 其中的 CODE 不要省去