NASM 中的命令行优化级别

Command Line Optimization Level in NASM

我写了一个汇编代码,使用字节变量将十个数字相加,代码没有错误。

汇编代码:

 ; a program to add ten numbers using byte variables
[org 0x0100]

jmp start 
num1: dw   10, 20, 30, 40, 50, 10, 20, 30, 40, 50
result: dw 0 

start: 
    ; initialize stuff 
    mov  ax, 0              ; reset the accumulator 
    mov  bx, 0              ; set the counter   
    outerloop: 
        add  ax, [num1 + bx]
        add  bx, 2
        cmp bx, 20          ; sets ZF=1 when they are equal, 
                            ;un set ZF=0, if they are not equal  
        jne  outerloop 
    mov  [result], ax


    mov  ax, 0x4c00
    int  0x21

在 NASM 中组装此代码时遇到此错误。

NASM 的命令行选项区分大小写。看起来你想使用 -o option (lower case o) to specify the output file name, so that -o C02-06.COM would write the output to a file named C02-06.COM. Instead you used upper-case -O,它请求优化并且(对于你的版本)需要一个额外的标志,如消息所述。

所以将您的命令更改为 -o C02-06.COM 它应该可以工作。