"错误:解析器:预期的指令"当我使用" org 0x0100"指示

时间:2016-05-17 11:02:10

标签: assembly x86 nasm dos x86-16

我有 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

我正在使用此命令汇编:

nasm -f elf Max.asm

我收到此错误:

  

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

为什么我会收到此错误,我该如何解决?

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

  

Max.asm:1:错误:解析器:预期指令

1 个答案:

答案 0 :(得分:0)

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

在编写小型(通常是.COM文件)DOS程序时使用

org 0x0100来补偿PSP(Program Statement Prefix)

如果您正在使用linux,那么添加orginate指令是没有意义的。

nasm -f bin max.asm

可以工作,但之后只能在DOSBOX中执行。