我有一个问题,我已经获得了使用汇编语言(即MASM)创建静态库的任务,但我在互联网上找到的所有教程要么不完整,要么难以理解。我使用的是dosbox,因为我有一个64位的窗口。 请一步一步帮助 拜托,谢谢
答案 0 :(得分:1)
我建议仅使用DosBox运行最终的可执行文件。您不需要DosBox来生成此可执行文件,因为Masm32在64位Windows下运行。但Masm32附带的lib.exe
不会产生适合link16.exe
的OMF库。所以你必须得到lib.exe
“说”OMF,例如DigitalMars的lib.exe
(http://www.digitalmars.com/ctg/lib.html)。
示例:
<强> main.asm中:强>
.MODEL small
.code
EXTERN sub1:NEAR
main PROC
mov ax, @data
mov ds, ax
call sub1
mov ax, 4C00h
int 21h
main ENDP
.stack 1000h
END main
<强> function.asm:强>
.MODEL small
.data
text db "This is sub1.",13,10,"$"
.code
sub1 PROC
push ax
push dx
mov ah, 09h
mov dx, OFFSET text
int 21h
pop dx
pop ax
ret
sub1 ENDP
END
<强> build.cmd:强>
@ECHO OFF
SET PATH=C:\masm32\bin
ml.exe /c function.asm
ml.exe /c main.asm
<Path to DigitalMars>\dm\bin\lib.exe -c main.lib main.obj function.obj
link16.exe main.lib ;
在Windows控制台中构建它并在DosBox中运行main.exe
。