Data Transfer Instructions



Pobieranie 0,5 Mb.
Strona1/8
Data22.02.2018
Rozmiar0,5 Mb.
  1   2   3   4   5   6   7   8
Data Transfer Instructions


MOVD – Przesłanie podwójnego słowa


Kod

Instrukcja

Opis

0F 6E /r

MOVD mm, r/m32
Przesłanie podwójnego słowa z r/m32 do mm

0F 7E /r

MOVD r/m32, mm
Przesłanie podwójnego słowa z mm do r/m32

66 0F 6E /r

MOVD xmm, r/m32
Przesłanie podwójnego słowa z r/m32 do xmm

66 0F 7E /r

MOVD r/m, xmm
Przesłanie podwójnego słowa z xmm do r/m



Opis

Instrukcja przesyła zawartość argumentu źródłowego (drugi argument) do docelowego (pierwszy argument). Źródłowe i docelowe argumenty mogą być rejestrami ogólnego przeznaczenia, rejestrami MMX, rejestrami XMM, lub 32-bitowym obszarem pamięci. Instrukcja może być użyta do przesyłania podwójnego słowa do i z młodszej części rejestru MMX i rejestru ogólnego przeznaczenia lub 32-bitowego obszaru pamięci, lub do i z młodszej części rejestru XMM i rejestru ogólnego przeznaczenia lub 32-bitowego obszaru pamięci. Instrukcja nie może być użyta to przesyłu danych pomiędzy rejestrami MMX, pomiędzy rejestrami XMM, pomiędzy rejestrami ogólnego przeznaczenia, lub pomiędzy obszarami pamięci.


Jeśli argument docelowy jest rejestrem MMX, argument źródłowy jest zapisywany w młodszej części rejestru, i rejestr jest uzupełniany zerami do 64 bitów. Jeśli argument docelowy jest rejestrem XMM, argument źródłowy jest zapisywany do młodszej części rejestru, i rejestr jest uzupełniany zerami do 128 bitów.


Działanie


Instrukcja MOVD jeśli argument docelowy jest rejestrem MMX:

DEST[31-0]  SRC;

DEST[63-32]  00000000H;
Instrukcja MOVD jeśli argument docelowy jest rejestrem XMM:

DEST[31-0]  SRC;

DEST[127-32]  000000000000000000000000H;

Instrukcja MOVD jeśli argument źródłowy jest rejestrem MMX lub XMM:

DEST  SRC[31-0];

Modyfikowane znaczniki

Brak.


Wyjątki zmiennoprzecinkowe SIMD
Brak.

Wyjątki trybu chronionego


#GP(0) Gdy adres efektywny argumentu w pamięci jest poza granicami segmentu CS, DS, ES, FS lub GS.

(Tylko operacje 128-bitowe) Gdy argumentu w pamięci nie jest wyrównany do 16-bjtowej granicy segmentu.

#SS(0) Gdy adres efektywny argumentu w pamięci jest poza granicą segmentu SS.


#UD Gdy EM w CR0 jest ustawiony.

(Tylko operacje 128-bitowe) Gdy OSFXSR w CR4 jest 0.

(Tylko operacje 128-bitowe) Gdy flaga SSE2 dla CPUID jest 0.
#NM Gdy TS w CR0 jest ustawiony.
#MF (Tylko operacje 64-bitowe) Jeżeli wystąpił wyjątek FPU x87.
#PF(kod) Gdy wystąpi błąd strony.
#AC(0) (Tylko operacje 64-bitowe) Gdy włączone jest sprawdzanie wyrównania i wystąpiło odwołanie do argumentu w pamięci pod nie wyrównanym adresem podczas gdy aktualnym poziomem uprzywilejowania jest poziom 3.

Wyjątki trybu rzeczywistego
#GP Gdy adres efektywny argumentu w pamięci jest poza granicami segmentu CS, DS, ES, FS lub GS.
#UD Gdy EM w CR0 jest ustawiony.

(Tylko operacje 128-bitowe) Gdy OSFXSR w CR4 jest 0.

(Tylko operacje 128-bitowe) Gdy flaga SSE2 dla CPUID jest 0.
#NM Gdy TS w CR0 jest ustawiony.
#MF (Tylko operacje 64-bitowe) Jeżeli wystąpił wyjątek FPU x87.


Wyjątki trybu wirtualnego
Te same wyjątki co w trybie rzeczywistym.
#PF(kod) Gdy wystąpi błąd strony.
#AC(0) (Tylko operacje 64-bitowe) Gdy włączone jest sprawdzanie wyrównania i wystąpiło odwołanie do argumentu w pamięci pod nie wyrównanym adresem.
MOVQ – Przesłanie poczwórnego słowa


Kod

Instrukcja

Opis

0F 6F /r

MOVQ

mm, mm/m64


Przesłanie poczwórnego słowa z mm/m64 do mm

0F 7F /r

MOVQ

mm/m64, mm


Przesłanie poczwórnego słowa z mm do mm/m64

F3 0F 7E

MOVQ

xmm1, xmm2/m64


Przesłanie poczwórnego słowa z xmm2/m64 do xmm1

66 0F D6

MOVQ

xmm2/m64, xmm1


Przesłanie poczwórnego słowa z xmm1 do xmm2/m64



Opis

Instrukcja przesyła poczwórne słowo z argumentu źródłowego (drugi argument) do docelowego (pierwszy argument). Źródłowe i docelowe argumenty mogą być rejestrami MMX, rejestrami XMM, lub 64-bitowym obszarem pamięci. Instrukcja może być użyta do przesyłania poczwórnego słowa pomiędzy dwoma rejestrami MMX lub pomiędzy jednym rejestrem MMX i 64-bitowym obszarem pamięci, lub pomiędzy dwoma rejestrami XMM lub pomiędzy jednym rejestrem XMM i 64-bitowym obszarem pamięci. Instrukcja nie może być użyta do przesyłania danych pomiędzy obszarami pamięci.


Jeśli argument źródłowy jest rejestrem XMM, młodsza część poczwórnego słowa jest przesyłana; jeśli argument docelowy jest rejestrem XMM, poczwórne słowo jest zapamiętywane w młodszej części rejestru, i starsza część jest wypełniana zerami.

Działanie


Instrukcja MOVQ jeśli działa na rejestrach MMX i obszarach pamięci:

DEST  SRC;


Instrukcja MOVQ jeśli argumenty źródłowy i docelowy są rejestrami XMM:

DEST[61-0]  SRC[63-0];


Instrukcja MOVQ jeśli argument źródłowy jest rejestrem XMM i argument docelowy jest obszarem pamięci:

DEST  SRC[63-0];


Instrukcja MOVQ jeśli argument źródłowy jest obszarem pamięci i argument docelowy jest rejestrem XMM:

DEST[63-0]  SRC;

DEST[127-64]  0000000000000000H;




  1   2   3   4   5   6   7   8


©operacji.org 2019
wyślij wiadomość

    Strona główna