1

我知道32位保护模式是如何通过修改段选择器来实现跳转的,但是64位的情况和我想象的不一样。

我在 gdt 中写了描述符。他们都是一样的

我写了一个代码段描述符,其中选择器为 0x3b,其属性与默认的 0x23 选择器完全相同。

当我使用 jmp far: 0x3b: 有效地址访问时失败。步入前 步入 后:假

但是当我使用 jmp far 0x23:effective address 时,它成功了。成功使用 0x23

这个问题一直让我很困惑。我的机械信息是win7 x64。

我跳转到了ring3程序段的地址,这是一个合法的地址。

我的问题是为什么会失败?在XP-32上这样做没有问题,为什么win764会失败。如何正确跳跃。

4

0 回答 0