这个东西,你找一个能调试的模拟器就可以看出来,比如bochs之类。
在执行ljmp $__BOOT_CS,$1f之前,虽然代码已经把CPU切换成保护模式,页表也都建立完成了,但当前执行的代码仍然处于16位实模式地址下,当前的代码的段地址和段偏移地址都是16位的。
通过Long Jmp来做一个跳转,会切换段地址,这个时候代码才真正进入保护模式。