我有两个文件, 在一个我声明变量SEED:
;file1.asm
.MODEL SMALL,BASIC
.FARDATA RAND_DATA
SEED DW ?
.CODE
;Some code
END
另一方面,我尝试引用变量
;file2.asm
.MODEL SMALL,BASIC
EXTERNDEF SEED:WORD
FOO PROC FAR PUBLIC USES DX,DS
MOV SEED,DX
FOO ENDP
END
当我尝试使用代码
编译这两个文件时ml file1.asm file2.asm io.lib
我收到以下错误:
error L2029: 'SEED' : unresolved external
我做错了什么?
谢谢!
答案 0 :(得分:1)
file1.asm中的SEED应该让PUBLIC被其他模块看到。
这是通过在file1.asm中的某处添加一行
来完成的 PUBLIC SEED
请注意,根据您使用的汇编程序,可能需要“ global ”。 这样的范围语句可以在文件中的任何位置+/-,但是关于完成此操作的位置有几种样式/约定。两个主要的是:
其他约定通常是对上述内容的变体,例如,所有公共数据变量都位于文件顶部附近,但procs的公开声明在适用的每个文件的上方完成。