brackets/no 括号之间的差异 nasm/yasm x86_64

difference between brackets/no brackets nasm/yasm x86_64

我正在学习 x86_64 yasm 和 nasm 上的汇编代码,我遇到了这些表达式,但我无法弄清楚这里发生了什么,有人可以解释一下吗?,让我们以这些片段为例:

section .data
word db "Hello, Guys!", 0xa
global _start
section .text
_start:
mov rax, word
...
...
...

section .data
word db "Hello, Guys!", 0xa
global _start
_start:
mov rax, [word]
...
...
...

把变量这个词移到括号里的rax和不带括号有什么区别?已经知道第一个是将word中的值copy到rax寄存器中,括号中的是有效地址

但我不明白那里到底发生了什么,如果有人能给我解释一下,我将不胜感激,谢谢!,我已经在这里阅读了一些关于堆栈溢出的解释,但是 none 回答了我的问题

这一行mov rax, word将word的内容放入rax寄存器,知道word存放的是开头字符串的地址"Hello, Guys!"

`mov rax, [word]`  put content of address pointed by word