指令 | 转换 |
CVTDQ2PD | 打包双字整数到打包双精度FP(XMM) |
CVTDQ2PS | 打包双字整数到打包单精度FP(XMM) |
CVTPD2DQ | 打包双精度FP到打包双字整数(XMM) |
CVTPD2PI | 打包双精度FP到打包双字整数(MMX) |
CVTPD2PS | 打包双精度FP到打包单精度FP(XMM) |
CVTPI2PD | 打包双字整数到打包双精度FP(XMM) |
CVTPI2PS | 打包双字整数到打包单精度FP(XMM) |
CVTPS2DQ | 打包单精度FP到打包双字整数(XMM) |
CVTPS2PD | 打包单精度FP到打包双精度FP(XMM) |
CVTPS2PI | 打包单精度FP到打包双字整数(MMX) |
CVTTPD2PI | 打包双精度FP到打包双字整数(MMX,截断) |
CVTTPD2DQ | 打包双精度FP到打包双字整数(XMM,截断) |
CVTTPS2DQ | 打包单精度FP到打包双字整数(XMM,截断) |
CVTTPS2PI | 打包单精度FP到打包双字整数(MMX,截断) |
.section .data
value1:
.float 1.25, 124.79, 200.0, -312.5
value2:
.int 1, -435, 0, -25
.section .bss
.lcomm data, 16
.section .text
.global _start
_start:
nop
cvtps2dq value1, %xmm0
cvttps2dq value1, %xmm1
cvtdq2ps value2, %xmm2
movdqu %xmm0, data
movl $1, %eax
movl $0, %ebx
int $0x80
(gdb) print $xmm0
$1 = {v4_float = {1.40129846e-45, 1.75162308e-43, 2.80259693e-43, -nan(0x7ffec8)}, v2_double = {
2.6524947387115311e-312, -nan(0xffec8000000c8)}, v16_int8 = {1, 0, 0, 0, 125, 0, 0, 0, -56, 0,
0, 0, -56, -2, -1, -1}, v8_int16 = {1, 0, 125, 0, 200, 0, -312, -1}, v4_int32 = {1, 125, 200,
-312}, v2_int64 = {536870912001, -1340029796152}, uint128 = 0xfffffec8000000c80000007d00000001}
(gdb) print $xmm1
$2 = {v4_float = {1.40129846e-45, 1.7376101e-43, 2.80259693e-43, -nan(0x7ffec8)}, v2_double = {
2.6312747808018783e-312, -nan(0xffec8000000c8)}, v16_int8 = {1, 0, 0, 0, 124, 0, 0, 0, -56, 0,
0, 0, -56, -2, -1, -1}, v8_int16 = {1, 0, 124, 0, 200, 0, -312, -1}, v4_int32 = {1, 124, 200,
-312}, v2_int64 = {532575944705, -1340029796152}, uint128 = 0xfffffec8000000c80000007c00000001}
(gdb) x/4d &data
0x80490c0 <data>: 1 125 200 -312
Pnemonic | Bit Location | Description |
FZ | bit 15 | Flush To Zero |
R+ | bit 14 | Round Positive |
R- | bit 13 | Round Negative |
RZ | bits 13 and 14 | Round To Zero |
RN | bits 13 and 14 are 0 | Round To Nearest |
PM | bit 12 | Precision Mask |
UM | bit 11 | Underflow Mask |
OM | bit 10 | Overflow Mask |
ZM | bit 9 | Divide By Zero Mask |
DM | bit 8 | Denormal Mask |
IM | bit 7 | Invalid Operation Mask |
DAZ | bit 6 | Denormals Are Zero |
PE | bit 5 | Precision Flag |
UE | bit 4 | Underflow Flag |
OE | bit 3 | Overflow Flag |
ZE | bit 2 | Divide By Zero Flag |
DE | bit 1 | Denormal Flag |
IE | bit 0 | Invalid Operation Flag |
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |