MOVSLDUP - 移動壓縮單精度浮點值低位並複製
|
指令 |
說明 |
|
MOVSLDUP xmm1, xmm2/m128 |
將 XMM2/Mem 中代表壓縮 SP 數據元素的 128 位移到 XMM1 暫存器並複製低位部分。 |
說明
線性地址對應于引用的記憶體數據的最低有效位元組。指出記憶體地址時,將載入記憶體位置 m128 處 16 個位元組的數據,並複製位置 0 與 2 處的單精度元素。使用暫存器-暫存器形式的此操作時,將執行相同的操作,但數據來自 128 位源暫存器。
操作
if (source == m128) {
// load instruction
xmm1[31-0] = m128[31-0];
xmm1[63-32] = m128[31-0]
xmm1[95-64] = m128[95-64];
xmm1[127-96] = m128[95-64];
}
else {
// move instruction
xmm1[31-0] = xmm2[31-0];
xmm1[63-32] = xmm2[31-0];
xmm1[95-64] = xmm2[95-64];
xmm1[127-96] = xmm2[95-64];
}
異常
如果未對齊 16 位元組邊界,則產生一般保護性異常,無論段如何。
數值異常
無
保護模式異常
#GP(0) - CS、DS、ES、FS 或 GS 段中的記憶體運算元有效地址非法。
#SS(0) - SS 段中的地址非法。
#PF(錯誤程式碼) - 頁錯誤。
#NM - 如果 CR0 中的 TS 設定為 1。#UD - 如果 CR0.EM = 1。
如果 CR4.OSFXSR(bit 9) = 0。
如果 CPUID.PNI(ECX bit 0) = 0。實地址模式異常
中斷 13 - 如果運算元的任何部分出現在從 0 到 0FFFFH 的有效地址空間之外。
#NM - 如果 CR0 中的 TS 設定為 1。
#UD - 如果 CR0.EM = 1。
如果 CR4.OSFXSR(bit 9) = 0。如果 CPUID.PNI(ECX bit 0) = 0。MOVSLDUP:移動壓縮單精度浮點值低位並複製(續)
虛 8086 模式異常
中斷 13 - 如果運算元的任何部分出現在從 0 到 0FFFFH 的有效地址空間之外。
#NM - 如果 CR0 中的 TS 設定為 1。
#UD - 如果 CR0.EM = 1。如果 CR4.OSFXSR(bit 9) = 0。如果 CPUID.PNI(ECX bit 0) = 0。#PF(錯誤程式碼) - 頁錯誤。