инструкция mov в сборке x86
Вопрос
Судя по тому, что я читал о mov
, он копирует второй аргумент в первый аргумент.Тогда что это делает?
Копирует все, что находится в edx, в первый параметр функции (поскольку смещение +8 от ebp
является параметром)?
Мне кажется, что на самом деле это означает перемещение первого параметра в регистр edx
, но я читал в Википедии, что это наоборот?
Решение
находится в "синтаксисе AT&T";в этом синтаксисе сначала идет источник, а затем - пункт назначения.Так что да, ваша вера верна.В большей части документации используется «синтаксис Intel», который имеет обратный порядок.Это источник значительной путаницы для людей, плохо знакомых с сборкой x86.
В синтаксисе Intel ваша инструкция должна быть записана:
родовое слово Обратите внимание на отсутствие кода %
перед именами регистров, использование квадратных скобок вместо скобок для адреса, а также отсутствие суффикса кода l
в инструкции.Это бесполезные подсказки, чтобы узнать, на какую форму сборки вы смотрите.