Разница между скобками / без скобок 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 в скобках и без скобок? я уже знаю, что первый копирует значение из слова в регистр rax, а тот, что в скобках, является эффективным адресом
но я не могу понять, что на самом деле там происходит, я был бы признателен, если бы кто-нибудь мог объяснить мне это, спасибо! Я уже читал некоторые объяснения здесь о переполнении стека, но никто из них не ответил на мой вопрос
1 ответ
Эта линия mov rax, word
поместил содержимое слова в регистр rax, зная, что в этом слове хранится адрес начальной строки "Hello, Guys!"
`mov rax, [word]` put content of address pointed by word