Я новичок в ассемблере, я многое понимаю до сих пор, но в течение многих дней я застревал в одном разделе, это сбивало меня с толку, и что хуже всего, что на многих страницах, которые я посещал через Интернет, информация снова искажается, этот раздел является Режимы адресации, в частности, обращение к памяти, например, в этом Режимы адресации на языке ассемблера (IA-32 NASM)
две инструкции кажутся одинаковыми, но комментарий отличается
- mov esi, var: копирует адрес переменной (например, 0x0040120e) в esi.
- mov dword [eax], var1: копирует значение из переменной var1 в слот памяти,
указанный eax
обе инструкции относятся к var или var1, которые являются метками, но в комментариях к одному упоминается, что он копирует содержимое, а для другого - адрес.
И вот еще один вопрос, который я задаю, что будет за эту инструкцию:
- mov bx, [var]
и в чем разница между этими инструкциями
- mov [var], bx - это приложение, только если var является массивом, если не то, чем он отличается от следующей инструкции
- mov var, bx
- lea eax, [var] - значение в var помещается в EAX. здесь среднее значение
- LEA EBX, [MY_TABLE] здесь означает действующий адрес
поэтому мне нужно знать, в чем разница, и есть ли источник уверенности, из которого я могу прочитать и убедиться, что это правильно, кстати, я использую это руководство и NASM как ассемблер под Windows.