Instruções de conversão
Convertendo valores entre float, double e inteiro.
Essas instruções servem para conversão de tipos entre float, double e inteiro.
Conversão entre double e float
CVTPS2PD | Convert packed single-precision floating-point values to packed double-precision floating-point values
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
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
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
Converte um valor double do operando fonte (segundo) em um valor float no operando destino (primeiro).
Conversão entre double e inteiro
CVTPD2DQ/CVTTPD2DQ | Convert (with truncation) packed double-precision floating-point values to packed doubleword integers
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 | Convert packed doubleword integers to packed double-precision floating-point values
Converte os dois inteiros sinalizados de 32-bit no operando fonte para dois doubles no operando destino.
CVTSD2SI/CVTTSD2SI | Convert scalar double-precision floating-point value to doubleword integer
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 | Convert doubleword integer to scalar double-precision floating-point value
Converte o valor inteiro sinalizado de 32 ou 64 bits do operando fonte e armazena como um double no operando destino.
Conversão entre float e inteiro
CVTPS2DQ/CVTTPS2DQ | Convert (with truncation) packed single-precision floating-point values to packed doubleword integers
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 | Convert packed doubleword integers to packed single-precision floating-point values
Converte quatro inteiros sinalizados de 32-bit no operando fonte para quatro floats no operando destino.
CVTSS2SI/CVTTSS2SI | Convert scalar single-precision floating-point value to doubleword integer
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 | Convert doubleword integer to scalar single-precision floating-point value
Converte o valor inteiro sinalizado de 32 ou 64 bits do operando fonte e armazena como um float no operando destino.
Last updated