引导扇分段
你需要通过谷歌预先了解的概念:segmentation
目标:学会如何在16位实模式下分段
如果你已经了解分段,你可以跳过这部分内容
我们将使用第3节的[org]进行分段。分段意味着你可以给你的引用数据指定一个偏移
完成这些需要使用特殊寄存器:cs,ds,ss和es来编码,保存数据,堆栈等待
注意:它们被CPU隐式使用,所以一旦你为某个寄存器(比如ds)设置了值,你的所有内存地址都会偏移ds,你可以阅读更多相关内容
更进一步,为了计算真实地址,我们不是仅仅加入两个地址,而是覆盖他们:segment << 4 + address.例如,如果ds是0x4d,[0x20]的真实地址指向0x4d0 + 0x20 = 0x4f0`
理论知识足够了。看一下代码吧
提示:我们不要在这些寄存器mov文字,我们必须使用一个之前的普通专门寄存器