我正在写代码,但是在Visual Studio中会出错。
在emu上可以正常工作,但在Visual Studio上则不能正常工作。
我看到了有关显示hello world程序的不同教程,但没有一个正在处理我的Visual Studio masm。.
执行此代码的正确方法是什么?
. MODEL SMALL
. STACK 100H
.DATA
MSG DB "HELLO! $"
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
LEA DX, MSG
MOV AH, 9
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
告诉我。什么是执行它的正确程序
答案 0 :(得分:3)
您显示的代码是MSDOS的16位代码。 Windows 64位版本不能运行16位代码,除非通过模拟器或虚拟PC。我不知道可以产生16位代码的Visual Studio版本。您可以尝试找到可汇编代码的16位工具集的可下载版本,例如Masm 6.11(进行网络搜索)。
如果对16位C或C ++感兴趣,Microsoft Visual C / C ++ 4.1通常包括16位工具集,但不包括Masm,因此您仍然需要Masm 6.11,并且可以将文件合并到公用目录中。 Microsoft 16位工具集可以在32位版本的Windows上运行,也可以在MSDOS仿真器或运行MSDOS的虚拟PC上运行(具有emm386设置,因为该工具集使用了dos扩展器)。如果使用虚拟PC,建议您使用USB记忆棒在虚拟PC之间传输文件。
一个完整的Microsoft 16位工具集,包括MASM(ml.exe),C / C ++编译器,链接器,CodeView(cv.exe-源级调试器),QuickHelp(qh.exe)-帮助实用程序),程序员的工作台(pwb) .exe-IDE),H2INC(将C .h包含文件转换为MASM .inc包含文件,NMAKE(make实用程序),DOSXNT(工具集本身使用的dos扩展器),...。我不确定您可以找到完整的工具集。