几个星期以来,我一直在研究汇编语言编程,今天我安装了所有必要的应用程序来编译汇编程序。
我安装DOSBox 0.74,NASM(汇编程序)和AFD(调试程序)。我挂载驱动器并正确查看我的.asm文件。但是当我执行以下命令时:
nasm firstprogram.asm -o firstprogram.com
它给了我以下错误:This program cannot be run in dos mode
但是当我通过命令提示符(cmd)编译文件时,它正确编译然后我必须去DOSBox运行AFD并调试.com文件。
我知道为什么我在DOSBox上出现这个错误?
答案 0 :(得分:3)
如果你在DOSBox中执行nasm
,那么发生的事情非常简单......
如果您看到Portable Executable Format的详细信息(又名:.exe
s,.dll
和.com
的内部格式(最后用于使用Common Object File Format)),你会注意到有一种叫做 MS-DOS存根头的东西。它的目的是在16位real mode操作系统(如MS-DOS)上显示消息“此程序无法在DOS模式下运行”,以通知用户该程序与旧系统不兼容。
这意味着您在 MS-DOS (虚拟)平台上运行 Windows nasm
。尝试使用the DOS binaries而不是你应该没问题。
答案 1 :(得分:1)
您下载了在Windows中运行的版本。当您打开特定版本的目录时,会有各种操作系统的子目录。
例如,这里: https://www.nasm.us/pub/nasm/releasebuilds/2.12/
如果你从/ dos文件夹下载一个,你可以在DOSBox中运行它,但是如果你在/ win32文件夹中下载它,你将只能从Windows运行它。
答案 2 :(得分:-4)
可能你这样称为console application
。它在控制台上运行,但需要Windows 95
或从不在幕后,主要用于fat32
支持。