MOVQ - 移動四字

操作碼

指令

說明

0F 6F /r

MOVQ mm, mm/m64

將四字從 mm/m64 移到 mm

0F 7F /r

MOVQ mm/m64, mm

將四字從 mm 移到 mm/m64

F3 0F 7E

MOVQ xmm1, xmm2/m64

將四字從 xmm2/mem64 移到 xmm1

66 0F D6

MOVQ xmm2/m64, xmm1

將四字從 xmm1 移到 xmm2/mem64

說明

將四字從源運算元(第二個運算元)複製到目標運算元(第一個運算元)。源運算元與目標運算元可以是 MMX™ 技術暫存器、XMM 暫存器或 64 位記憶體位置。此指令可用於在兩個 MMX 暫存器之間、MMX 暫存器與 64 位記憶體位置之間、兩個 XMM 暫存器之間以及 XMM 暫存器與 64 位記憶體位置之間移動數據。此指令不能用於在記憶體位置之間傳輸數據。

源運算元是 XMM 暫存器時,移動低位四字;目標運算元是 XMM 暫存器時,四字儲存到暫存器的低位四字,高位四字則清除為全 0。

操作

MOVQ instruction when operating on MMX registers and memory locations:
DEST SRC;
MOVQ instruction when source and destination operands are XMM registers:
DEST[63-0] SRC[63-0];
MOVQ instruction when source operand is XMM register and destination
operand is memory location:
DEST SRC[63-0];
MOVQ instruction when source operand is memory location and destination
operand is XMM register:
DEST[63-0] SRC;
DEST[127-64] 0000000000000000H;

影響的標誌

無。

SIMD 浮點異常

無。

保護模式異常

#GP(0) - 如果目標運算元位於不可寫的段。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。

#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。

#UD - 如果 CR0 中的 EM 設定為 1。(僅限 XMM 暫存器操作)。如果 CR4 中的 OSFXSR 是 0。(僅限 XMM 暫存器操作)。如果 CPUID 功能標誌 SSE-2 為 0。

#NM - 如果 CR0 中的 TS 設定為 1。

#MF(僅限 MMX 暫存器操作) - 如果存在未決的 FPU 異常。

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果啟用對齊檢查並在目前特權級別為 3 時進行未對齊的記憶體引用。

實地址模式異常

#GP - 如果運算元的任何部分出現在 0 到 FFFFH 的有效地址空間之外。

#UD - 如果 CR0 中的 EM 設定為 1。(僅限 XMM 暫存器操作)。如果 CR4 中的 OSFXSR 是 0。(僅限 XMM 暫存器操作)。如果 CPUID 功能標誌 SSE-2 為 0。

#NM - 如果 CR0 中的 TS 設定為 1。

#MF(僅限 MMX 暫存器操作) - 如果存在未決的 FPU 異常。

虛 8086 模式異常

與“實地址模式”中的異常相同

#PF(錯誤程式碼) - 如果發生頁錯誤。

#AC(0) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。