我试图看看asm语言支持功能是否基于#34; C"语言。例如。我有" m.asm":
assume cs:code
code segment
start:
mov ax,20h
call s
mov ah,4ch
int 21h
code ends
end start
其中" s"是源代码中不存在的符号,然后我有n.asm文件来定义符号(实际上是标签)
code segment
s:
mov bx,4h
div bx
code ends
实际上m.asm无法编译,告诉我" s"是一个未定义的符号。如何解决此问题并满足我的要求?
答案 0 :(得分:4)
你需要声明函数s
对于希望使用call
指令在n.asm
中访问它的其他模块(例如通过public
)可见,你需要使用s
中的extern
指令将m.asm
声明为外部参考。
这适用于少量声明,但如果您的模块增长到任何实际大小,您可能需要使用include
头文件来管理它。