[英]How to fix an 'unresolved external' error in assembly x86?
我有两个文件,其中一个我声明变量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
我究竟做错了什么?
谢谢!
应该将file1.asm中的SEED设置为PUBLIC,以供其他模块查看。
这是通过在file1.asm中的某处添加一行来完成的
PUBLIC SEED
请注意,根据您使用的汇编程序的不同,可能需要使用“ global ”。
这样的作用域语句可以在文件中的+/-位置出现,但是关于执行此操作的位置有几种样式/约定。 主要两个是:
其他约定通常是上述内容的变体,例如,所有公共数据变量的作用域都位于文件顶部附近,但是proc的公共声明在适用的情况下恰好在每个文件上方进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.