几周以来,我一直在学习汇编语言编程,今天我安装了编译汇编程序所需的所有应用程序。
我安装了 DOSBox 0.74、NASM(汇编器)和 AFD(调试器)。我安装了驱动器并正确地看到了我的 .asm 文件。但是当我执行以下命令时:
nasmfirstprogram.asm -ofirstprogram.com
它给了我以下错误:
This program cannot be run in dos mode
但是当我通过命令提示符(cmd)编译文件时,它编译正确,然后我必须进入 DOSBox 运行 AFD 并调试 .com 文件。
知道为什么我在 DOSBox 上收到此错误吗?
您收到此错误消息是因为您尝试在虚拟 MS-DOS
平台上运行
nasm
二进制文件 的 Windows 版本。不支持此操作。相反,您应该下载并使用 MS-DOS nasm
二进制文件。
说明:当您查看可移植可执行格式(.exe、.dll 和某些 .com 文件的内部格式)的详细信息时,您将遇到 MS-DOS 存根标头。此标头的主要功能是在 16 位实模式操作系统(如 MS-DOS)上执行时显示消息“此程序无法在 DOS 模式下运行”。此消息向用户发出警告,表明他们尝试运行的程序与当前系统不兼容。
您下载的是在 Windows 中运行的版本。当您打开特定版本的目录时,其中有各种操作系统的子目录。
例如这里: https://www.nasm.us/pub/nasm/releasebuilds/2.12/
如果您从 /dos 文件夹下载该程序,您将能够在 DOSBox 中运行它,但是如果您从 /win32 文件夹下载该程序,您将只能从 Windows 运行它。
可能你正在做所谓的
console application
。它在控制台上运行,但需要 Windows 95
或从不在幕后,主要是为了 fat32
支持。