Assembly &引用;错误:分析器:应为指令";当我使用;组织0x0100“;指示

Assembly &引用;错误:分析器:应为指令";当我使用;组织0x0100“;指示,assembly,x86,nasm,dos,x86-16,Assembly,X86,Nasm,Dos,X86 16,我有一个NASM代码: 请注意,这是更正第一个错误之前的原始代码(请参见下面的编辑): 我正在使用此命令组装: nasm -f elf Max.asm 我得到这个错误: 错误:无法识别的指令组织 为什么我会出现这个错误,我该如何修复它 编辑:按照评论中的建议删除org语句周围的括号后,我现在得到的是以下错误: Max.asm:1:错误:解析器:应为指令 ORIGINE指令告诉汇编程序初始化程序中数据和代码相对于给定值的所有偏移量 org 0x0100用于编写小型(通常为.COM文件)DOS程序

我有一个NASM代码:

请注意,这是更正第一个错误之前的原始代码(请参见下面的编辑):

我正在使用此命令组装:

nasm -f elf Max.asm
我得到这个错误:

错误:无法识别的指令组织

为什么我会出现这个错误,我该如何修复它

编辑:按照评论中的建议删除
org
语句周围的括号后,我现在得到的是以下错误:

Max.asm:1:错误:解析器:应为指令


ORIGINE指令告诉汇编程序初始化程序中数据和代码相对于给定值的所有偏移量

org 0x0100
用于编写小型(通常为.COM文件)DOS程序,以补偿
PSP(程序语句前缀)

如果您在linux上工作,那么添加orginate指令是没有意义的

nasm-f bin max.asm


将起作用,但只能在DOSBOX中执行。

应为符合的
org 0x0100
(即无括号)。下次请不要以图片的形式发布代码。我把VTC当作打字错误。删除了括号,但现在得到了这个Max.asm:1:错误:解析器:需要说明,很抱歉发布图像:)注意,
org
不适用于
elf
格式。如果要创建linux程序,请删除
org
行。如果要创建DOS程序,请删除
-f elf
。您不想将代码添加到注释中,是吗?您是将可执行文件定位于16位MS-DOS环境,还是尝试创建在Linux上运行的可执行文件?如果将此代码编译为
nasm-f bin Max.asm-o Max.com
,则只能在支持16位MS-DOS程序(DOSBox等)的环境中运行。。如果您试图创建一个在Linux中本机运行的Linux可执行文件,那么这将不起作用。MS-DOS中断,如
int 0x21
不适用。
nasm -f elf Max.asm