DOSBox
适合运行 16 位 DOS 程序,而不是 32/64 位 Windows 程序。MASM 从 6.x 版开始可以生成 Windows 程序。因此,如果您不明确想要制作 DOS 程序,则不需要 DOSBox。
您的示例是一个 16 位 DOS 程序(“INT 21h”)。要构建它,您必须打开一个“Windows 命令提示符”,即控制台,而不是DOSBox。如果您不知道如何,请在 Google 上搜索。我假设您的汇编程序的路径是c:\masm615\bin
. 现在输入:
c:\masm615\bin\ml.exe prog.asm
请注意,我使用ml.exe
而不是masm.exe
.
现在可以运行prog.exe
了DOSBox
。
在网上搜索 32 位 MASM 程序,您可以用相同的方式组装它们,但在当前的 Windows 控制台中运行。然后你可以而且应该忘记任何事情INT 21h
!
现在让我们用 Visual Studio (VS) 来做。我会用 VS 2010 Express 来展示它,但是其他版本的 VS 应该是类似的。
您需要一个 Windows 程序 (.MODEL FLAT),我们称之为prog.asm:
.686p
.MODEL FLAT
includelib msvcrt.lib
extern _printf:PROC
extern _exit:PROC
.DATA
format1 db "%s",10,0
string1 db "Hello world!",0
format2 db "The square root of %f is %f.",10,0
double1 REAL8 10.0
double2 REAL8 ?
.CODE
_main PROC
push OFFSET string1
push OFFSET format1
call _printf
fld double1
fsqrt
fstp double2
push DWORD PTR double2 + 4
push DWORD PTR double2
push DWORD PTR double1 + 4
push DWORD PTR double1
push OFFSET format2
call _printf
push 0
call _exit
_main ENDP
END _main
打开控制台。首先你需要知道它的位置vcvarsall.bat
。输入:
dir /s /b \vcvarsall.bat
几分钟后,您应该得到类似C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat
. 在此行中输入双引号,然后按 ENTER。当您看到时一切正常:设置使用 Microsoft Visual Studio 2010 x86 工具的环境。
现在您可以组装并运行 prog.asm:
ml prog.asm
prog.exe