Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 & 用户态扩展状态指令 & 随机数生成指令

Miscellaneous Instructions

杂项指令包括的功能有:载入有效地址,执行“误操作”,以及侦测处理器标识信息等。

指令

描述

LEA

载入有效地址到目标寄存器

NOP

空指令

UD

产生未定义指令(即无效操作码)异常

XLAT/XLATB

表查找转换(换码指令)

CPUID

侦测处理器标识指令

MOVBE

交换源操作数的字节序,保存到目标操作数。

CPUID.01:ECX.MOVBE[bit 22]=1时,才支持本指令

PREFETCHW

预见到写操作,将数据预取到高速缓存

PREFETCHWT1

预见到写操作,用T1提示将数据预取到高速缓存

CLFLUSH

将指定的数据操作数所在的各级缓存行清空,将缓存行设置为无效。

注意:简单暴力,即便缓存行处于修改状态,也不回写数据。

CLFLUSHOPT

将指定的数据操作数所在的各级缓存行清空,将缓存行设置为无效,但是执行时会考虑优化存储器系统的吞吐量。

注意:简单暴力,即便缓存行处于修改状态,也不回写数据。

 

User Mode Extended State Save/Restore Instructions

指令

描述

XSAVE

将处理器扩展状态保存到存储器

XSAVEC

将处理器扩展状态压缩后保存到存储器

XSAVEOPT

将处理器扩展状态保存到存储器,用优化地方式

XRSTOR

从存储器中恢复(即加载)处理器扩展状态

XGETBV

读取扩展的控制寄存器状态

TODO: 将来添加一个专题介绍

Random Number Generator Instructions

指令

描述

RDRAND

获取一个由硬件生成的随机数

 

C/C++ Compiler Intrinsic Equivalent
RDRAND: int _rdrand16_step( unsigned short * );

RDRAND: int _rdrand32_step( unsigned int * );

RDRAND: int _rdrand64_step( unsigned __int64 *);

RDSEED

获取一个由硬件生产的随机数

 

C/C++ Compiler Intrinsic Equivalent
RDSEED int _rdseed16_step( unsigned short * );
RDSEED int _rdseed32_step( unsigned int * );
RDSEED int _rdseed64_step( unsigned __int64 *);

 

你可能感兴趣的:(Intel指令集)