繁体   English   中英

nasm错误:应在行首输入标签或指令

[英]nasm error: label or instruction expected at the start of line

您好,我是汇编语言的新手(今天才刚刚开始),在执行本教程中所说的内容时遇到了这个问题。 我用以下文本制作了一个asm文件:

org 0x100 
start:
mov bx, [a]
mov ax, [val]
mov cx, 8
sub sp, 8
call search
ret

search:
mov di, sp
go:
    cmp [bx], ax
    jz detected
    continue:
        add bx, 2
        dec cx
        jnz go
        ret
detected:
    add di, 2
    shl word[bx], 2
    mov dx, [bx]
    mov [di], dx
    jmp continue



a dw 1, 2, 1, 4, 1, 6, 7 , 8
val dw 1

我得到这个错误

laber.asm:1: error: label or instruction expected at the start of line

我想知道这是一个不好的教程还是我输入的错误。 我也想知道“标签或说明”的含义。

您忘记了显示用于汇编的命令,所用的操作系统以及所需的输出格式。 由于org 0x100我假设您需要DOS .com文件。 现在,您的nasm可能未默认使用该格式,因此您应该尝试使用nasm -f bin -o laber.com laber.asm

错误label or instruction expected并不是一个非常好的信息,基本上意味着nasm无法识别org并告诉您使用标签(后跟冒号)或指令(我希望您知道这些是什么; ))。 当然,您也可以使用其他方法,例如有效的指令,但是nasm不会告诉您。

您需要插入

section .text

在文件的顶部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM