2016-09-28 3 views
0

Я новичок в изучении языка ассемблера и наткнулся на следующие выражения:ассемблере Операнд спецификаторы

  • 9(%rax, %rdx)
  • 0xFC(,%rcx,4)
  • (%rax, %rdx, 4)

Я был бы очень признателен, если кто-то может укажите мне ресурс, где я могу понять эти команды или объяснить их мне.

спасибо.

+0

Рассмотрите возможность изучения учебника по синтаксису сборки AT & T. – fuz

ответ

1

Это, по-видимому, относится к арифметической адресации в x86 AT & T сборке.

Синтаксис довольно прост:

N(%reg1, %reg2, F) 

Это приводит к address = N + %reg1 + %reg2 * F. Это можно использовать в нескольких инструкциях для таких целей, как доступ к данным внутри структуры (компиляторы C) и т. Д.

Для получения полной справки отметьте this guide.

+0

Огромное вам спасибо. Ссылка действительно полезна. –

+0

Эта ссылка не учитывает RIP-относительные режимы адресации, но в остальном выглядит хорошо. См. Также [все доступные режимы адресации x86] (http://stackoverflow.com/a/34058400/224132). –