arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

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.

hashtag
Conversão entre double e float

hashtag
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).

hashtag
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).

hashtag
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).

hashtag
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).

hashtag
Conversão entre double e inteiro

hashtag
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.

hashtag
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.

hashtag
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 ().

CVTTSD2SI faz a mesma coisa porém truncando o valor.

hashtag
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.

hashtag
Conversão entre float e inteiro

hashtag
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.

hashtag
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.

hashtag
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 ().

A instrução CVTTSS2SI faz a mesma coisa porém truncando o valor.

hashtag
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.

sign extensionarrow-up-right
sign extensionarrow-up-right
CVTPS2PD xmm(n), xmm(n)
CVTPS2PD xmm(n), float(2)
CVTPD2PS xmm(n), xmm(n)
CVTPD2PS xmm(n), double(2)
CVTSS2SD xmm(n), xmm(n)
CVTSS2SD xmm(n), float(1)
CVTSD2SS xmm(n), xmm(n)
CVTSD2SS xmm(n), double(1)
CVTPD2DQ xmm(n), xmm(n)
CVTPD2DQ xmm(n), double(2)


CVTTPD2DQ xmm(n), xmm(n)
CVTTPD2DQ xmm(n), double(2)
CVTDQ2PD xmm(n), xmm(n)
CVTDQ2PD xmm(n), dword(2)
CVTSD2SI reg32/64, xmm(n)
CVTSD2SI reg32/64, double(1)

CVTTSD2SI reg32/64, xmm(n)
CVTTSD2SI reg32/64, double(1)
CVTSI2SD xmm(n), reg32/64
CVTSI2SD xmm(n), dword(1)
CVTSI2SD xmm(n), qword(1)
CVTPS2DQ xmm(n), xmm(n)
CVTPS2DQ xmm(n), float(4)


CVTTPS2DQ xmm(n), xmm(n)
CVTTPS2DQ xmm(n), float(4)
CVTDQ2PS xmm(n), xmm(n)
CVTDQ2PS xmm(n), dword(4)
CVTSS2SI reg32/64, xmm(n)
CVTSS2SI reg32/64, float(1)


CVTTSS2SI reg32/64, xmm(n)
CVTTSS2SI reg32/64, float(1)
CVTSI2SS xmm(n), reg32/64
CVTSI2SS xmm(n), dword(1)
CVTSI2SS xmm(n), qword(1)