Сборка x86 с 3 или 4 параметрами в синтаксисе AT&T
Простой вопрос Я сомневаюсь, что этому будет уделено много внимания, но как мне выполнить 3 или 4 параметра в сборке x86-64 с синтаксисом AT&T (gAS)? Любому программисту x86, использующему gAS, известно, что аргументы переключаются, например:
xor eax, ebx ; Intel (xASM)
xorl %ebx, %eax ; AT&T (gAS)
Но как мне поступить, сказать:
blendpd xmm0, xmm1, 5
Что я имею в виду, как написаны инструкции? Я понимаю, что будет %xmm0
и такие (все еще префиксы для параметров), но как они упорядочены и какой суффикс я должен добавить в конце инструкции (l
в movl
для 32-битной)?
1 ответ
Решение
Эквивалент AT&T был бы там, где порядок операндов обратный:
blendpd $5, %xmm1, %xmm0
Если вы не уверены, что вы всегда можете скомпилировать с синтаксисом Intel, то разберите на AT&T.