Что означает MOV (% r11,% r12,1),% edx? - PullRequest
4 голосов
/ 21 мая 2010

Что делает эта инструкция?

mov (%r11,%r12,1), %edx

Ответы [ 2 ]

7 голосов
/ 21 мая 2010

Смотрите здесь . Это говорит

В синтаксисе AT & T память ссылаться следующим образом,

segment-override:signed-offset(base,index,scale)

Внизу на странице есть несколько примеров. Я считаю это лучшим:

GAS memory operand   NASM memory operand
------------------   -------------------
(%ecx,%ebx,2)    [ecx+ebx*2]

mov source, destination в синтаксисе AT & T копирует значение из источника в место назначения. Также рассмотрим размер edx. Как вы думаете, сколько байтов (4) будет скопировано mov?

0 голосов
/ 29 мая 2010

mov (%r11,%r12,1), %edx эта инструкция используется для вычисления адреса (индексированный режим адресации).

  • %r11 является базовым адресом
  • %r12 является индексом
  • и 1 это множитель

Это работает так:

адрес = базовый адрес + индекс * множитель

базовый адрес и множитель должны быть константами (базовый адрес может быть зарегистрирован), индекс должен быть регистр.

...