我知道32位保护模式是如何通过修改段选择器来实现跳转的,但是64位的情况和我想象的不一样。
我在 gdt 中写了描述符。他们都是一样的
我写了一个代码段描述符,其中选择器为 0x3b,其属性与默认的 0x23 选择器完全相同。
当我使用 jmp far: 0x3b: 有效地址访问时失败。步入前 步入 后:假
但是当我使用 jmp far 0x23:effective address 时,它成功了。成功使用 0x23
这个问题一直让我很困惑。我的机械信息是win7 x64。
我跳转到了ring3程序段的地址,这是一个合法的地址。
我的问题是为什么会失败?在XP-32上这样做没有问题,为什么win764会失败。如何正确跳跃。