gpt4 book ai didi

assembly - x86 长模式特定指令在保护模式下可用吗?

转载 作者:行者123 更新时间:2023-12-01 23:14:42 25 4
gpt4 key购买 nike

嘿,我想知道一些只在长模式下有效的指令。

例如 0f 20 55 - mov rbp, cr2

我引用的是 ref.x86asm.net xml mapping .
根据 xml,该指令的操作模式是 e,这意味着:

e applies for 64-bit mode. SMM is not taken into account. 63 MOVSXD

现在,如果我看一下反汇编程序,例如 GCCcapstone ,字节流 0f 20 55 在保护模式下被解码为 mov ebp, cr2,尽管引用资料说它不应该在 x64 以外的模式下可用。

所以我想知道是不是我没有理解某些东西,或者这些反汇编程序出了问题?

最佳答案

进出控制寄存器的移动在保护模式和长模式下可用,使用相同的编码,但具有不同的含义mov rbp, cr2 仅在长模式下可用(显然,它写入仅在长模式下存在的 64 位 GPR)并且 mov ebp, cr2 仅在 protected 模式下可用模式(在长模式中并非天生不可能,但它的编码被重用于 mov rbp, cr2,就像 push eax 的编码被重用于表示 推送 rax)。反汇编程序根据模式正确地解释了相同的机器代码。

关于assembly - x86 长模式特定指令在保护模式下可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69198685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com