Ответ 1
Да, эта инструкция делает именно то, что, по вашему мнению, делает.
Большинство арифметических инструкций x86 принимают два операнда: источник и место назначения. В синтаксисе AT & T (используется здесь) назначение всегда является правильным операндом. Итак, с инструкцией вроде:
addl %edx, %eax
значения в edx
и eax
складываются вместе, и результат сохраняется в eax
. Однако в вашем примере (%eax)
- операнд памяти; что в скобках подразумевается синтаксис AT & T (например, квадратные скобки в синтаксисе NASM).
Это означает, что eax
рассматривается как указатель, поэтому правый операнд берется из адреса, на который указывает eax
, и результат сохраняется на тот же адрес.