我正在尝试学习 NASM 汇编(在 Linux 上,因此是 AT&T 语法),但我一直试图通过系统调用打印“Hello World”。下面的代码汇编并运行良好,但它不打印任何内容。任何线索为什么?
.text
.globl main
main:
movl $4, %eax
movl $1, %ebx
movl string1, %ecx
movl $20, %edx
int $0x80
.data
string1: .string "hello world"
更新:我找到了。我需要在“string1”前面包含一个 $ 符号,因此该行变为“movl $string1, %ecx”。当我不包括它时会发生什么的任何解释?