MOVAPD - MOVAPD
V x86 montážní programovací jazyk, MOVAPD je název konkrétní akce proveditelné moderním procesory x86 s Streamovací rozšíření SIMD druhé generace (SSE2). Tato akce zahrnuje kopírování dvojice čísel do dočasného prostoru v procesoru pro použití v jiných výpočtech. MOVAPD je jedním z nejrychlejších způsobů, jak toho dosáhnout.
Konkrétně MOVAPD způsobí 16bajtové zarovnané zabalenéčtyřhra zdroj ke zkopírování do XMM registr nebo 16bajtová oblast paměti.
Používání
Operační kód | Sestava (syntaxe Intel) | Sestavení (syntaxe AT&T) | ICC vnitřní ekvivalent (y) | gcc vestavěné |
---|---|---|---|---|
66 0F 28 / r | MOVAPD xmm1, xmm2/m128 | MOVAPD xmm2/m128, xmm1 | __m128 _mm_load_pd (double * p) | |
66 0F 29 / r | MOVAPD xmm1/m128, xmm2 | MOVAPD xmm2, xmm1/m128 | void _mm_store_pd (double * p, __m128 a) |
Zdrojovým operandem může být buď registr XMM (xmm2) nebo adresa paměti (m128).
Cílovým operandem může být buď registr XMM (xmm1) nebo adresa paměti (m128). Všimněte si však, že zdrojový a cílový operand nemohou být obě adresy paměti.
Potenciální výjimky
Pokud operand adresy paměti není zarovnán na 16 bajtů, bude vyvolána výjimka obecné ochrany (#GP). To může způsobit podivné chyby interoperability, když běžný kód volá externí kód, který byl kompilován s předpokladem hranice bajtového rámce zarovnaného na 16 bajtů.[1]
Reference
- gcc informace dokumentace
- Referenční příručka k optimalizaci architektury Intel 64 a IA-32, Listopad 2006.
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, Listopad 2006.
Viz také
- MOVAPS / MOVAPD
- MOVDDUP
- MOVHLPS
- MOVHPS /MOVHPD
- MOVLHPS
- MOVLPS /MOVLPD
- MOVMSKPS /MOVMSKPD
- MOVNTPS
- MOVSHDUP
- MOVSLDUP
- MOVSS /MOVSD
- MOVUPS /POHYB
![]() | Tento programovací jazyk související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |