使用dosbox时在MASM中创建库

时间:2014-05-09 18:08:42

标签: assembly masm32 dosbox

我有一个问题,我已经获得了使用汇编语言(即MASM)创建静态库的任务,但我在互联网上找到的所有教程要么不完整,要么难以理解。我使用的是dosbox,因为我有一个64位的窗口。 请一步一步帮助 拜托,谢谢

1 个答案:

答案 0 :(得分:1)

我建议仅使用DosBox运行最终的可执行文件。您不需要DosBox来生成此可执行文件,因为Masm32在64位Windows下运行。但Masm32附带的lib.exe不会产生适合link16.exe的OMF库。所以你必须得到lib.exe“说”OMF,例如DigitalMars的lib.exehttp://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