You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86_64 Linux汇编.data段NASM编译报错求助

解决NASM编译时第2行的语法错误

嘿,这个问题很常见,我来帮你快速搞定!

你遇到的编译错误根源在第2行的变量名 str——它是NASM的保留字,和x86汇编里的字符串操作指令前缀(比如strsb、strsw这类字符串传送指令)冲突了。NASM会把str识别成指令的一部分,而非你定义的变量名,自然就触发了语法解析错误。

修复方法

只需要把变量名改成一个非保留字即可,比如msg、input_str这类自定义名称都可以。修改后的代码如下:

section .data
msg db "12.3",0  ; 将原变量名str替换为msg(或其他任意非保留字)
section .text
global _start
_start:
mov rax, 60
mov rdi, 0
syscall

验证修复

现在重新执行你的编译命令:

nasm -f elf64 1.asm

应该就能正常编译通过了。

另外提个小提醒:在NASM里写汇编时,要避开用指令助记符、寄存器名、预定义符号来当变量或标签名,不然很容易踩这类语法坑。

内容的提问来源于stack exchange,提问作者Hash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:27:48