Что означает 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
это множитель
Это работает так:
адрес = базовый адрес + индекс * множитель
базовый адрес и множитель должны быть константами (базовый адрес может быть зарегистрирован), индекс должен быть регистр.