Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly x64浮点混合_Assembly_X86_Sse - Fatal编程技术网

Assembly x64浮点混合

Assembly x64浮点混合,assembly,x86,sse,Assembly,X86,Sse,说明: 来自第二个源操作数(第三个操作数)的双精度浮点值与来自第一个源操作数(第二个操作数)的值有条件地合并,并写入目标操作数(第一个操作数)。立即数位[3:0]确定目标中对应的双精度浮点值是从第二个源还是第一个源复制的。如果掩码中与字对应的位为“1”,则复制第二个源操作数中的双精度浮点值,否则复制第一个源操作数中的值 8位立即数值中的哪个位是重要的?其他位是否重要?正如您的引文所述,相关位是[3:0],即低4位。每个位都控制对应字的操作。因为您有4个字(浮点数)在SSE寄存器中,您有4个控制位

说明: 来自第二个源操作数(第三个操作数)的双精度浮点值与来自第一个源操作数(第二个操作数)的值有条件地合并,并写入目标操作数(第一个操作数)。立即数位[3:0]确定目标中对应的双精度浮点值是从第二个源还是第一个源复制的。如果掩码中与字对应的位为“1”,则复制第二个源操作数中的双精度浮点值,否则复制第一个源操作数中的值


8位立即数值中的哪个位是重要的?其他位是否重要?

正如您的引文所述,相关位是
[3:0]
,即低4位。每个位都控制对应字的操作。因为您有4个字(浮点数)在SSE寄存器中,您有4个控制位。前四位被忽略。请注意,
操作
部分有伪代码,它清楚地描述了erm操作:

BLENDPS (128-bit Legacy SSE version)
IF (IMM8[0] = 0) THEN DEST[31:0] <- DEST[31:0]
        ELSE DEST [31:0] <- SRC[31:0] FI
IF (IMM8[1] = 0) THEN DEST[63:32] <- DEST[63:32]
        ELSE DEST [63:32] <- SRC[63:32] FI
IF (IMM8[2] = 0) THEN DEST[95:64] <- DEST[95:64]
        ELSE DEST [95:64] <- SRC[95:64] FI
IF (IMM8[3] = 0) THEN DEST[127:96] <- DEST[127:96]
        ELSE DEST [127:96] <- SRC[127:96] FI
BLENDPS(128位传统SSE版本)
如果(IMM8[0]=0),则DEST[31:0]