括号之间的差异/无括号nasm / yasm x86_64

时间:2019-02-25 18:06:39

标签: assembly nasm x86-64 brackets yasm

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

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

AND

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

将word变量放在方括号中和不放在方括号中之间,有什么区别?我已经知道第一个将值从word复制到rax寄存器,带括号的是有效地址

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

1 个答案:

答案 0 :(得分:-3)

此行mov rax, word将单词的内容放入rax寄存器,知道单词的起始地址为“ Hello,Guys!”。

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