x64 弹出指令(操作码 + rd)
x64 pop instructions (opcode + rd)
这里是使用intel x64手册第1159页的shortcut opcodes的pop指令:
58+ rw POP r16 Pop top of stack into r16; increment stack
pointer.
58+ rd POP r64 Pop top of stack into r64; increment stack
pointer.
这些指令是使用 Rex.R 还是 Rex.B 对寄存器 9-16 进行编码,还是只是将它们添加到操作码中? 64位版本也使用Rex.W吗?我以前从未 运行 进入过这些寄存器快捷指令。
将寄存器操作数编码为操作码一部分的指令使用 REX.B 字段访问寄存器 r8 等。
64 位推送和弹出不需要 REX.W,默认情况下它们是 64 位的,没有办法使它们成为 32 位。可以通过使用 66h 前缀将它们设为 16 位。
这里是使用intel x64手册第1159页的shortcut opcodes的pop指令:
58+ rw POP r16 Pop top of stack into r16; increment stack
pointer.
58+ rd POP r64 Pop top of stack into r64; increment stack
pointer.
这些指令是使用 Rex.R 还是 Rex.B 对寄存器 9-16 进行编码,还是只是将它们添加到操作码中? 64位版本也使用Rex.W吗?我以前从未 运行 进入过这些寄存器快捷指令。
将寄存器操作数编码为操作码一部分的指令使用 REX.B 字段访问寄存器 r8 等。
64 位推送和弹出不需要 REX.W,默认情况下它们是 64 位的,没有办法使它们成为 32 位。可以通过使用 66h 前缀将它们设为 16 位。