Разница между скобками / без скобок 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 
Другие вопросы по тегам