大家好,我对汇编是个新手(今天刚开始),在做本教程中所说的事情时遇到了这个问题。我用下面的文本做了一个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我想知道这是不是一个糟糕的教程,或者我打错了什么。另外,我想知道“标签或说明”是什么意思。
发布于 2015-05-13 07:21:39
您忘记了显示用于汇编的命令,以及您所使用的操作系统和所需的输出格式。由于org 0x100,我假设你想要一个DOS的.com文件。现在,您的nasm可能不会默认使用该格式,因此您应该尝试使用nasm -f bin -o laber.com laber.asm之类的格式。
错误label or instruction expected不是一个非常好的消息,它基本上意味着nasm不能识别org,并告诉您使用标签(后面跟一个冒号)或指令(我希望您知道它们是什么;)。当然,您也可以使用其他东西,例如有效的指令,但nasm不会告诉您这一点。
发布于 2015-05-13 07:22:08
您需要插入
section .text在你文件的顶部。
https://stackoverflow.com/questions/30203071
复制相似问题