DOSBox - 此程序无法在dos模式下运行(程序集)

时间:2015-10-02 15:31:43

标签: assembly nasm

几个星期以来,我一直在研究汇编语言编程,今天我安装了所有必要的应用程序来编译汇编程序。

我安装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上出现这个错误?

3 个答案:

答案 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支持。