我有2个文件:
平方米:
.model small
.stack 100h
.data
global print ;######4######
.code
main:
MOV AX, @data
MOV DS, AX
print proc ;expects information from DX
MOV AH,9
INT 21h
ENDP
MOV AH, 4ch
INT 21h
END main
M1:
.model small
.stack 100h
.data
str1 DB 'hello $'
.code
EXTRN print:far
main:
MOV AX, @data
MOV DS, AX
MOV DX, OFFSET str1
CALL print
MOV AH, 4ch
INT 21h
END main
我试图弄清楚如何使用this解释来链接这两个文件但是它适用于NASM,而我使用的是TASM而且我遇到了问题。
我链接了两个文件,但在组装 m2 时我收到了警告:
全局类型与符号不匹配:PRINT。
我尝试删除第4行,但后来我无法链接 m1 , m2 并收到警告:
模块M1.ASM
中的未定义符号PRINT
我还尝试从 m1.asm 文件中删除关键字far
...也没用。
我的问题是如何删除警告并能够链接这两个文件?
答案 0 :(得分:4)
只需给符号一致输入即可
最简单的方法是使用PROC
让汇编程序选择正确的类型:
<强> m2.asm 强>
...
GLOBAL print: PROC
...
<强> m1.asm 强>
...
EXTRN print: PROC
...
否则,您可以声明类型为NEAR
或FAR
的符号(使用它代替PROC
),只需确保正确定义该函数(例如{{1 }})。
有关类型的完整列表,请参阅TASM manual的第5章。