此指令有一些令人困惑的模式,这里是英特尔x64手册第862页的64位版本表:
Opcode Instruction Description
0F 02 /r LAR r16, r16/m16 r16 ← access rights referenced by r16/m16
0F 02 /r LAR reg, r32/m16 reg ← access rights referenced by r32/m16
那是什么尺寸的寄存器' reg'?这是一条需要16位66H前缀的指令吗?或者67H或REX.W前缀可能?我认为它需要一个前缀,因为操作码是相同的......
答案 0 :(得分:1)
AMD文档对此有点清楚:
LAR reg16, reg/mem16 0F 02 /r ... LAR reg32, reg/mem16 0F 02 /r ... LAR reg64, reg/mem16 0F 02 /r ...
reg/mem16 : Word (16-bit) operand in a GPR register or memory.
还有:
在64位模式下,大多数指令默认为32位操作数大小。对于这些说明,请使用REX前缀 (第14页)可以指定64位操作数大小,66h前缀指定16位操作数大小。 REX 前缀优先于66h前缀。
来自 AMD64架构的引言 程序员手册 第3卷: 通用和 系统说明