Приоритет оператора * на ассемблере AT & T - PullRequest
0 голосов
/ 31 марта 2010

Вот у меня вопрос. Какой приоритет у оператора * на ассемблере?

Например:

*0x804983c(,%eax,4)

Означает ли это ( %eax * 4 ) + *0x804983c или *( %eax * 4 + 0x804983c )?

Спасибо!

1 Ответ

1 голос
/ 31 марта 2010

* не является оператором. В сборке нет оператора как такового (операторы - это концепция, присутствующая только в языках более высокого уровня).

В синтаксисе AT & T * - это то, что обозначает регистр или цель ветви памяти .

Вы не показываете полную инструкцию, но если предположить, что это был jmp, он перейдет к тому, что хранится в 0 + %eax * 4 + 0x804983c (следуя стандартному справочнику памяти offset(base,index,scale))

...