在查看Intel 的指令集参考时,我注意到用于推送 16 位、32 位和 64 位寄存器的操作码是相同的(50+rw
分别为50+rd
、 和50+rd
)。
如果所有操作码都相同,处理器如何知道它需要将哪个寄存器压入堆栈?如果取决于当前的操作模式,那么如果你ax
在保护模式下压栈,高16位是eax
不是也压栈了?
在查看Intel 的指令集参考时,我注意到用于推送 16 位、32 位和 64 位寄存器的操作码是相同的(50+rw
分别为50+rd
、 和50+rd
)。
如果所有操作码都相同,处理器如何知道它需要将哪个寄存器压入堆栈?如果取决于当前的操作模式,那么如果你ax
在保护模式下压栈,高16位是eax
不是也压栈了?