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
它应该可以工作。
我写了一个汇编代码,使用字节变量将十个数字相加,代码没有错误。
汇编代码:
; 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
它应该可以工作。