RDFSBASE, RDGSBASE
读取FS/GS分部基地
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
F3 0F AE /0 | RDFSBASE r32 | M | 有效 | 无效 | 用 FS 基址装入32 位目标注册 。 |
F3 REX.W 0F AE /0 | RDFSBASE r64 | M | 有效 | 无效 | 用 FS 基址装入64位目标注册 。 |
F3 0F AE /1 | RDGSBASE r32 | M | 有效 | 无效 | 用 GS 基址装入32 位目标注册 。 |
F3 REX.W 0F AE /1 | RDGSBASE r64 | M | 有效 | 无效 | 用GS基址装入64位目标注册. |
操作数编码
每个模式对应上表 Op/En 列的一个取值,说明各操作数按书写顺序分别编码在指令的哪个字段,以及指令对它是读、是写还是两者兼有。
M
modrm.rmescrituraModRM 字节的 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 ) ;
异常
保护模式
#UD | RDFSBASE和RDGSBASE指令在保护模式中不被识别. |
实地址模式
#UD | RDFSBASE和RDGSBASE指令在实地址模式中不被识别. |
虚拟 8086 模式
#UD | RDFSBASE和RDGSBASE指令在虚拟 8086 模式中不被识别. |
兼容模式
#UD | RDFSBASE和RDGSBASE指令在兼容模式中不被识别. |
64 位模式
#UD | 如果使用 LOCK 前缀,如果 CR4.FSGSBASE[bit 16] = 0,如果 CPUID.07H.00H: EBX.FSGSBASE[0] = 0. |