Что означает MOV (%r11,%r12,1), %edx?

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

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

2 ответа

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

В синтаксисе 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 будет копировать?

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

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

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

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

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

Другие вопросы по тегам