RDFSBASE, RDGSBASE

读取FS/GS分部基地

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
F3 0F AE /0RDFSBASE r32M有效无效用 FS 基址装入32 位目标注册 。
F3 REX.W 0F AE /0RDFSBASE r64M有效无效用 FS 基址装入64位目标注册 。
F3 0F AE /1RDGSBASE r32M有效无效用 GS 基址装入32 位目标注册 。
F3 REX.W 0F AE /1RDGSBASE r64M有效无效用GS基址装入64位目标注册.

操作数编码

每个模式对应上表 Op/En 列的一个取值,说明各操作数按书写顺序分别编码在指令的哪个字段,以及指令对它是读、是写还是两者兼有。

M

  1. modrm.rm escrituraModRM 字节的 r/m 字段(第 2-0 位);当 mod 字段要求时,还包括 SIB 字节和位移

实测开销

正在从 arch-data 加载实测数据...

说明

用 FS 或 GS 段基址装入 ModR/M:r/m 字段表示的 通用寄存器 。

目标操作数可以是32位或64位的通用寄存器. REX.W前缀表示操作数大小为64位. 如果未使用REX.W前缀,则操作数大小为32位;源基地址(用于FS或GS)的上32位被忽略,目的地寄存器的上32位被清除. 此指令仅以64位模式支持.

行动

DEST := FS/GS segment base address;

受影响的旗帜

None.

C/C++ 编译器等效

RDFSBASE 未签名 int readfsbase u32(void ) ; RDFSBASE 未签名 int64 readfsbase u64(void ) ; RDGSBASE 未签名 int readgsbase u32(void ) ; RDGSBASE 未签名 int64 readgsbase u64(void ) ;

异常

保护模式
#UDRDFSBASE和RDGSBASE指令在保护模式中不被识别.
实地址模式
#UDRDFSBASE和RDGSBASE指令在实地址模式中不被识别.
虚拟 8086 模式
#UDRDFSBASE和RDGSBASE指令在虚拟 8086 模式中不被识别.
兼容模式
#UDRDFSBASE和RDGSBASE指令在兼容模式中不被识别.
64 位模式
#UD如果使用 LOCK 前缀,如果 CR4.FSGSBASE[bit 16] = 0,如果 CPUID.07H.00H: EBX.FSGSBASE[0] = 0.

来源