nasm“错误:逗号,冒号,装饰器或操作数后预期的行尾”

时间:2017-08-05 10:06:08

标签: linux assembly x86 nasm

我在Debian 9.这些是错误:

andrea@debian:~/Assembly/sandbox$ nasm -f elf -g -F stabs sandbox.asm
sandbox.asm:8: error: comma, colon, decorator or end of line expected after operand
sandbox.asm:9: error: comma, colon, decorator or end of line expected after operand
sandbox.asm:11: error: comma, colon, decorator or end of line expected after operand
sandbox.asm:12: error: comma, colon, decorator or end of line expected after operand

这是代码:

section .data
section .text

global _start

_start:
    nop
    mov eax 10
    mov ebx 12

    mov eax 1
    mov ebx 0
    int 80H
    nop

section .bss

导致这些错误的问题是什么?如何解决?

如果我使用以下代码修复操作数之间的逗号,我会得到一个不同的错误:

section .data
section .text

    global_start

_start:
    nop
    mov eax,10
    mov ebx,12

    mov eax,1
    mov ebx,0
    int 80H
    nop

section .bss

我得到的错误是:

sandbox.asm:4: warning: label alone on a line without a colon might be in error

为什么我会收到此错误以及如何解决?

1 个答案:

答案 0 :(得分:2)

我想有一个空格缺失,应该是:

global _start
第4行

我还怀疑十六进制常量可能格式不正确,因为缺少0前缀,但只要数字以数字开头就可以正常,如 Michael Petch 在评论中提到(并根据此处提供的NASM文档:http://www.nasm.us/doc/nasmdoc3.html)。