Разрывы MASM - Когда нужны квадратные скобки?

Прежде всего, извините за основные вопросы - я новичок в языке ассемблера /MASM. Я очень смутился с использованием OFFSET, квадратных скобок и де-ссылки.

Это мое понимание:

  • Переменные/метки данных - это адреса памяти. Квадратные скобки подразумевают де-ссылку, поэтому [var] будет извлекать содержимое по адресу var. Команды MASM автоматически разыгрывают операнды памяти, поэтому следующее будет копировать содержимое var в eax:

    MOV eax, var
    MOV eax, [var]
    
  • Чтобы переместить адрес var в регистр, вам нужно будет сделать

    MOV reg, OFFSET var
    

    Но теперь похоже, что var и [var] больше не эквивалентны:

    var  DWORD  10h
    mov esi, OFFSET var
    mov eax, [esi]     ; eax = 10h
    mov eax, esi       ; eax = address of var
    

    Здесь начинается мое замешательство. Такое разыменование всегда подразумевается, когда нужны квадратные скобки? Когда они являются необязательными?

  • Кроме того, следующее будет инициализировать var2 с адресом для var1

    var1 byte 10h,20h,30h,40h
    var2 dword var1
    var2 dword OFFSET var1   ; equivalent
    

Теперь, когда var1 ссылается на адрес? Когда это относится к контенту?