description |
---|
Convertendo valores entre float, double e inteiro. |
Essas instruções servem para conversão de tipos entre float, double e inteiro.
CVTPS2PD | Convert packed single-precision floating-point values to packed double-precision floating-point values
CVTPS2PD xmm(n), xmm(n)
CVTPS2PD xmm(n), float(2)
Converte dois valores float do operando fonte (segundo) em dois valores double no operando destino (primeiro).
CVTPD2PS | Convert packed double-precision floating-point values to packed single-precision floating-point values
CVTPD2PS xmm(n), xmm(n)
CVTPD2PS xmm(n), double(2)
Converte dois valores double do operando fonte (segundo) em dois valores float no operando destino (primeiro).
CVTSS2SD | Convert scalar single-precision floating-point value to scalar double-precision floating-point value
CVTSS2SD xmm(n), xmm(n)
CVTSS2SD xmm(n), float(1)
Converte um valor float do operando fonte (segundo) em um valor double no operando destino (primeiro).
CVTSD2SS | Convert scalar double-precision floating-point value to scalar single-precision floating-point value
CVTSD2SS xmm(n), xmm(n)
CVTSD2SS xmm(n), double(1)
Converte um valor double do operando fonte (segundo) em um valor float no operando destino (primeiro).
CVTPD2DQ/CVTTPD2DQ | Convert (with truncation) packed double-precision floating-point values to packed doubleword integers
CVTPD2DQ xmm(n), xmm(n)
CVTPD2DQ xmm(n), double(2)
CVTTPD2DQ xmm(n), xmm(n)
CVTTPD2DQ xmm(n), double(2)
Converte os dois doubles no operando fonte para dois inteiros sinalizados de 32-bit no operando destino. A instrução CVTPD2DQ faz o arredondamento normal do valor enquanto CVTTPD2DQ trunca ele.
CVTDQ2PD xmm(n), xmm(n)
CVTDQ2PD xmm(n), dword(2)
Converte os dois inteiros sinalizados de 32-bit no operando fonte para dois doubles no operando destino.
CVTSD2SI reg32/64, xmm(n)
CVTSD2SI reg32/64, double(1)
CVTTSD2SI reg32/64, xmm(n)
CVTTSD2SI reg32/64, double(1)
CVTSD2SI converte o valor double no operando fonte em inteiro de 32-bit sinalizado, e armazena o valor no registrador de propósito geral do operando destino. O registrador destino também pode ser um registrador de 64-bit onde nesse caso o valor sofrerá extensão de sinal (sign extension).
CVTTSD2SI faz a mesma coisa porém truncando o valor.
CVTSI2SD xmm(n), reg32/64
CVTSI2SD xmm(n), dword(1)
CVTSI2SD xmm(n), qword(1)
Converte o valor inteiro sinalizado de 32 ou 64 bits do operando fonte e armazena como um double no operando destino.
CVTPS2DQ/CVTTPS2DQ | Convert (with truncation) packed single-precision floating-point values to packed doubleword integers
CVTPS2DQ xmm(n), xmm(n)
CVTPS2DQ xmm(n), float(4)
CVTTPS2DQ xmm(n), xmm(n)
CVTTPS2DQ xmm(n), float(4)
Converte quatro floats do operando fonte em quatro inteiros sinalizados de 32-bit no operando destino. A instrução CVTPS2DQ faz o arredondamento normal dos valores enquanto CVTTPS2DQ trunca eles.
CVTDQ2PS xmm(n), xmm(n)
CVTDQ2PS xmm(n), dword(4)
Converte quatro inteiros sinalizados de 32-bit no operando fonte para quatro floats no operando destino.
CVTSS2SI reg32/64, xmm(n)
CVTSS2SI reg32/64, float(1)
CVTTSS2SI reg32/64, xmm(n)
CVTTSS2SI reg32/64, float(1)
CVTSS2SI converte o valor float no operando fonte em inteiro de 32-bit sinalizado, e armazena o valor no registrador de propósito geral do operando destino. O registrador destino também pode ser um registrador de 64-bit onde nesse caso o valor sofrerá extensão de sinal (sign extension).
A instrução CVTTSS2SI faz a mesma coisa porém truncando o valor.
CVTSI2SS xmm(n), reg32/64
CVTSI2SS xmm(n), dword(1)
CVTSI2SS xmm(n), qword(1)
Converte o valor inteiro sinalizado de 32 ou 64 bits do operando fonte e armazena como um float no operando destino.