百科问答小站 logo
百科问答小站 font logo



linux内核切换成分页模式后,ljmp $__BOOT_CS,$1f 这行代码有什么意思? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

这个东西,你找一个能调试的模拟器就可以看出来,比如bochs之类。

在执行ljmp $__BOOT_CS,$1f之前,虽然代码已经把CPU切换成保护模式,页表也都建立完成了,但当前执行的代码仍然处于16位实模式地址下,当前的代码的段地址和段偏移地址都是16位的。

通过Long Jmp来做一个跳转,会切换段地址,这个时候代码才真正进入保护模式。




  

相关话题

  为什么 Linux 指针越界时程序会立即被中断,而 Windows 不会? 
  各位VIM大神,如何学习VIM,有很多命令感觉都没有什么意思的,如何记忆,熟能生巧耳? 
  linux为什么不能硬链接目录? 
  有数字电路、模拟电路和单片机基础,如何做一个嵌入式的 Linux 项目?需要从哪些方面入手? 
  UEFI 引导与 BIOS 引导在原理上有什么区别? 
  为什么英特尔x86等多数中央处理器不支持源操作数和目标操作数同时为内存的指令? 
  长期使用Arch,Gentoo等滚动更新的发行版是怎样的一种体验? 
  Fedora 18如何通过Dr.com联网? 
  如何看待Windows系统性能不及国产麒麟操作系统? 
  计算机系本科生有必要学习汇编语言吗? 

前一个讨论
为什么修改esp寄存器会触发异常?
下一个讨论
相同的硬盘条件下,ext4能存储比NTFS更多的文件吗?





© 2025-05-05 - tinynew.org. All Rights Reserved.
© 2025-05-05 - tinynew.org. 保留所有权利