作者james732 (紫雁)
站内ASM
标题[问题] 如何把函式分开写在独立的档案?
时间Sun May 6 04:09:26 2007
这学期修了组合语言这门课
但觉得自己有一个写法很不好:
不管是主程式、一大堆副程式
通通都塞在同一个档案里面
写到後来 动辄上百行的程式 自己都看得烦了...
因此想学着把副程式尽量独立撰写
等到组译与连结的时候再结合起来就好
就像C/C++把function/class独立写出来一样
但是却不知道应该要怎麽做...
我写了两个档案:test.asm、test2.asm
想要把程式启始点写在test.asm里
在test2.asm里写了一个 mytest 的简单函式
呼叫 Irvine 所写的 lib 里的 WriteString 之後返回主程式
但是却碰上了困难...
我把两个档案的内容,与组译时所出现的错误讯息附在後面
想请教我应该要怎麽修改我的程式,或我的组译参数呢?
先说一声谢谢 :)
我在命令提示字元下,使用 masm32 里提供的 ml(应该是masm 6.14?)
如果在VS.NET 2005也有方法可以把副程式分别写出来的话
那就再好不过了!!!!
test.asm
==========
INCLUDE Irvine32.inc
.code
main PROC
call mytest2
exit
main ENDP
end main
==========
test2.asm
==========
INCLUDE Irvine32.inc
.const
TestMessage BYTE "There is in the function",0
.code
mytest PROC uses edx
mov edx, OFFSET TestMessage
call WriteString
ret
mytest ENDP
==========
D:\asm_code\test>
ml test.asm /c /coff
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: test.asm
test.asm(8) : error A2006: undefined symbol : mytest2
D:\asm_code\test>
ml test2.asm /c /coff
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: test2.asm
test2.asm(10) : error A2088: END directive required at end of file
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.109.146
※ 编辑: james732 来自: 221.169.109.146 (05/06 04:14)