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



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

  

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

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

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

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




  

相关话题

  一条C语言语句不一定是原子操作,但是一个汇编指令是原子操作吗? 
  普通个人电脑能做到的最酷炫的事是什么? 
  国内有哪些比较好的 Linux 发行版? 
  选用什么云服务器做编程学习比较好? 
  C语言 乘以0.01快?还是除以100快? 
  32位保护模式下,段基地址应尽量选取16字节对齐的那些地址,可使访问的性能最大化? 
  Linux和Windows可以安装在任何个人电脑上,而安卓却需要为每台设备定制一个版本的原因是什么? 
  Windows NT 内核与 Linux 内核相比哪个更安全? 
  如何评价Linux发布新的CoC (Code of Conduct) 后引发的部分开源社区的不满? 
  Linux中本机和本机Socket通信会走网卡吗? 

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





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