"error: parser: instruction expected" when I use "org 0x0100" directive

"error: parser: instruction expected" when I use "org 0x0100" directive

我有这个 NASM 代码:

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

[org 0x0100]
       jmp start
Numbers: dw 10, 40, 20, 14, 19, 13, 50, 6, 60, 14
swap: db 0
start: mov bx, 0                                                          
       mov byte [swap], 0
loop1: mov ax, [Numbers+bx]                                                              
       cmp ax, [Numbers+bx+2]                                  
       jle noswap                                                            
       mov dx, [Numbers+bx+2]                                  
       mov [Numbers+bx+2], ax                                  
       mov [Numbers+bx], dx                                        
       mov byte [swap], 1                                              
noswap: add bx, 2                                                                
        cmp bx, 18                                                              
        jne loop1                                                                  
        mov ax, 0x4c00                                                        
        int 0x21

我正在使用此命令 assemble:

nasm -f elf Max.asm

我收到此错误:

error: unrecognized directive org

为什么会出现此错误,我该如何解决?

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

Max.asm:1: error: parser: instruction expected

originate 指令告诉汇编程序从给定值初始化程序中数据和代码的所有偏移量。

org 0x0100 用于编写小型(通常为 .COM 文件)DOS 程序以补偿 PSP(Program Statement Prefix).

如果您正在处理 linux,则添加 orginate 指令没有意义。

nasm -f bin max.asm

可以,但只能在 DOSBOX 下执行。