进入保护模式时,置 cr0 后为什么还能执行后面的 jmp ?

进入保护模式步骤:

  1. 准备GDT。
  2. 用lgdt加载gdtr。
  3. 打开A20。
  4. 置cr0的PE位。
  5. 跳转,进入保护模式。

关键是第 4 步是真正的打开保护模式。第 4 步后,我认为的寻址方式是 cs(选择子):ip ,而不是 cs(段基址):ip 。
这第 5 步的 jmp 是如何执行的?第 4 步之后为什么还没有按照保护模式的方式寻址,而是按照实模式执行了下面的第 5 步呢?
第 5 步为什么能真正开启保护模式,让 cpu 从实模式运作方式转换到保护模式方式?

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题