Как интерпретировать этот адрес -0x80 (% rbp,% rax, 4)

В настоящее время я пытаюсь выучить ассемблер (и влияние различных опций компилятора), анализируя простые фрагменты кода на Си. Теперь я наткнулся на следующую инструкцию:

mov %edx,-0x80(%rbp,%rax,4)

Что я не понимаю, это выражение для целевого адреса-0x80(%rbp,%rax,4), Инструкция присваивает значение локальному массиву в цикле.

Ответы на вопрос(2)

Решение Вопроса

%edx по адресу, указанному%rbp + 4 * %rax - 0x80, Похоже на то%rax держит индекс к этому массиву и%rbp - 0x80 это базовый адрес.

ВзглянутьВот чтобы лучше понять AT &T синтаксис.

 Theodros Zelleke13 нояб. 2012 г., 11:53
Спасибо за ваш ответ - ссылка действительно полезна
-0x80(%rbp,%rax,4) = *(%rbp + %rax * 4 + (-0x80))

Итак, следующая инструкция:

mov %edx,-0x80(%rbp,%rax,4)

означает позволить процессору переместить значение регистра% edx в память по адресу(%rbp + %rax * 4 + (-0x80))это AT &Т-образная сборка.

 Jin Chen13 нояб. 2012 г., 12:03
@ Fermat2357, ты прав. Спасибо.
 Theodros Zelleke13 нояб. 2012 г., 11:47
Спасибо за ваш ответ - просто @ Fermat2357 был немного раньше ...

Ваш ответ на вопрос