几个星期以来,我一直在学习汇编语言编程,今天我安装了编译汇编程序所需的所有应用程序。
我安装了 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 上收到此错误吗?
如果您在nasmDOSBox 内执行,那么发生的事情非常简单......
如果您查看可移植可执行文件格式(又名:.exes、.dlls 和.coms的内部格式(最后用于使用公共对象文件格式的格式))的详细信息,您会注意到有一个叫做MS-DOS 存根头的东西. 它的目的是在 16 位实模式操作系统(例如 MS-DOS )上显示消息“此程序不能在 DOS 模式下运行”,以通知用户该程序与旧系统不兼容。
这意味着您正在MS-DOS(虚拟)平台上运行Windows 。尝试使用DOS 二进制文件,你应该没问题。nasm