MOVAPD - MOVAPD
в язык программирования x86 ассемблер, MOVAPD это название определенного действия, выполняемого современным процессоры x86 с участием Расширения SIMD для потоковой передачи 2-го поколения (SSE2). Это действие включает в себя копирование пары чисел во временное пространство процессора для использования в других вычислениях. MOVAPD - один из самых быстрых способов добиться этого эффекта.
В частности, MOVAPD вызывает 16-байтовое упакованноеудваивается источник для копирования в XMM регистр или 16-байтовую область памяти.
Применение
Код операции | Сборка (синтаксис Intel) | Сборка (синтаксис AT&T) | icc собственный эквивалент (ы) | gcc встроенный (ые) |
---|---|---|---|---|
66 0F 28 /р | MOVAPD xmm1, xmm2/m128 | MOVAPD xmm2/m128, xmm1 | __m128 _mm_load_pd (двойная * p) | |
66 0F 29 /р | MOVAPD xmm1/m128, xmm2 | MOVAPD xmm2, xmm1/m128 | void _mm_store_pd (двойной * p, __m128 a) |
Исходным операндом может быть регистр XMM (xmm2) или адрес памяти (m128).
Операндом-адресатом может быть регистр XMM (xmm1) или адрес памяти (m128). Однако обратите внимание, что операнды источника и назначения не могут одновременно быть адресами памяти.
Возможные исключения
Если операнд адреса памяти не выровнен по 16 байтам, возникает общее исключение защиты (#GP). Это может вызвать странные ошибки взаимодействия, когда обычный код вызывает внешний код, который был скомпилирован с предположением о 16-байтовой границе кадра стека.[1]
использованная литература
- информация gcc документация
- Справочное руководство по оптимизации архитектур Intel 64 и IA-32, Ноябрь 2006 г.
- Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 2A: Справочник по набору инструкций, A – M, Ноябрь 2006 г.
Смотрите также
- MOVAPS / MOVAPD
- MOVDDUP
- MOVHLPS
- MOVHPS /МОВХПД
- MOVLHPS
- MOVLPS /MOVLPD
- МОВМСКПС /МОВМСКПД
- MOVNTPS
- MOVSHDUP
- MOVSLDUP
- MOVSS /МОВСД
- MOVUPS /MOVUPD
Эта язык программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |