Linux0.11第一回最开始的两行代码

来源:IT之家   发布时间:2022-09-29 16:09:16   阅读量:8405  

从这篇文章开始,你将跟随我进入这个操作系统的梦想之旅!

Linux0.11第一回最开始的两行代码

不用担心,每一章的内容都会很少,不用带着沉重的负担去学习像读小说一样跟我读

话不多说,直奔主题当你按下开机键,主板上预先写好的固件程序BIOS会将硬盘引导区的512字节数据原封不动的复制到内存中的0x7c00,跳转到那个位置执行

引导区的定义非常简单只要硬盘中0盘0通道1扇区512字节的后两个字节分别是0x55和0xaa,BIOS就会认为是引导区

所以对于我们理解操作系统来说,此时的BIOS只是一个代码搬运工,将512字节的二进制数据从硬盘运送到内存中所以作为操作系统的开发者,只需要将操作系统的初始代码编译存储在硬盘的磁盘0,通道0,扇区1即可之后,BIOS会帮我们把它放在内存里,跳过去执行

Linux—0.11的初始代码就是这个用汇编语言写的bootsect.s,位于boot文件夹下。

通过编译,这个bootsect.s会被编译成二进制文件,存储在引导区的第一个扇区。

然后就像刚才说的,会从BIOS移到内存0x7c00,CPU从这个位置开始,继续无脑的执行一条又一条语句。

那么我们的梦想之旅就从这个文件的第一行代码开始吧!

movax,0x07c0movds,ax

好了,先看两行。

这段代码是用汇编语言编写的,这意味着将值0x07c0复制到ax寄存器中,然后将ax寄存器中的值复制到ds寄存器中实际上,所有这些折腾的结果是,这个寄存器ds中的值变成了0x07c0

Ds是一个16位段寄存器,它专门代表数据段寄存器,并在寻址存储器时充当段基址你什么意思

movax,

实际上相当于

movax,

默认添加Ds,这意味着在ds的这一段的基址,未来偏移0x0001个单位,并将该位置的存储器数据复制到ax寄存器中。

打个比喻,你跟朋友商量一下去哪里玩比较好你说天安门广场,南锣鼓巷,颐和园等等都是偏置地址,省略了北京的基址

当然,你可以说北京的天安门广场和北京的南锣鼓巷,每次都加上前缀北京但是,如果你提前和朋友约定好,我下面说的地方都是北京的,那你就不用每次都背北京二字了方便吗

这是数据段寄存器ds的功能描述一个内存地址很方便,可以省略一个基址这没什么神奇的

ds : 0x0001

北京:南锣鼓巷

看,这个ds是赋给0x07c0的由于x86要在16位实模式下访问20位地址线的历史因素,段基址必须先左移4位然后0x07c0左移四位为0x7c00,与BIOS加载此代码的存储器地址0x7c00完全相同

也就是说后面写的代码和里面访问的数据的内存地址都默认加0x7c00,然后在内存中寻址。

为什么统一加数字0x7c00这很容易解释BIOS规定,当操作系统代码加载到内存0x7c00时,里面的各种数据自然会偏移这么多因此,将数据段寄存器ds设置为该值便于将来通过该基地址访问存储器中的数据

好了,快速消化前面的知识,那么这篇文章就结束了,只有两行代码,小知识,我不骗你。

我希望你能做到可以通过BIOS将操作系统代码加载到内存0x7c00中,我们可以通过mov指令将默认数据段寄存器ds寄存器的值改为0x 07c 00,方便以后的基址寻址这两件事在你脑子里是认可的,没有疑问,方便后面继续

我们身后的世界越来越精彩欲知后事如何,且听下回分解

声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。

为你推荐

火速护盘!当天制定回购方案,当天下场买股!上市公司真金白银看好后市

火速护盘!当天制定回购方案,当天下场买股!上市公司真金白银看好后市

4月25日,不少上市公司在下跌中果断实施回购。25日晚间,恒瑞医药、建霖家居、劲嘉股份等公司纷纷公告在盘中实施了回购;威...更多

2022-04-26 01:11:00
人弃我取时间已到!券商首席一致看多,A股迎接反攻时刻?

人弃我取时间已到!券商首席一致看多,A股迎接反攻时刻?

4月25日,上证指数重挫逾5%,失守3000点,创下2020年7月以来新低。盘后,券商中国记者采访了多位券商策略、宏观分...更多

2022-04-26 01:11:00
实实在在赚钱了!2021年收入增34%,这家公司要冲击“纯SaaS业务模

实实在在赚钱了!2021年收入增34%,这家公司要冲击“纯SaaS业务模

4月25日,新三板挂牌公司和创科技晒出了2021年“成绩单”,2021年实现收入1.45亿元,同比增长34%;经营现金流...更多

2022-04-26 01:00:00
高玩不买单了水冷头一哥EKWB裁员1/4:业绩持续暴跌

高玩不买单了水冷头一哥EKWB裁员1/4:业绩持续暴跌

虽然AIO一体式水冷很方便,但分体式水冷依然是目前散热最好、效果最炫的方案,只不过价格很贵,只有高玩才会折腾。然而这个高...更多

2022-04-26 00:38:00
IEEE发布首个供应链金融区块链国际标准蚂蚁集团牵头制定

IEEE发布首个供应链金融区块链国际标准蚂蚁集团牵头制定

,IEEE计算机协会区块链和分布式记账标准委员会召开全体会议,《基于区块链的供应链金融标准》正式发布。这是IEEE发布的...更多

2022-04-26 00:37:00
外媒预计在建设P3晶圆厂后三星电子还将在平泽建设P4晶圆厂

外媒预计在建设P3晶圆厂后三星电子还将在平泽建设P4晶圆厂

,据国外媒体报道,此前有报道称,三星电子2020年年中开始在韩国平泽建设的P3晶圆厂,将在下月开始设备的安装,设备的进入...更多

2022-04-26 00:35:00
万华化学首季净利降近两成2021年分红超78亿

万华化学首季净利降近两成2021年分红超78亿

25日盘后,万华化学披露2022年第一季度报告。一季度,公司在营业收入增超30%的情况下,净利润回落近两成。具体来看,一...更多

2022-04-26 00:35:00
盈利下滑、应收账款和现金流状况恶化!泽达易盛股价较高点已跌超八成

盈利下滑、应收账款和现金流状况恶化!泽达易盛股价较高点已跌超八成

董事长、财务总监协助调查,股价暴跌,业绩下滑,笼罩在泽达易盛头上的疑云久久不散。3月17日晚,泽达易盛发布重大事项公告,...更多

2022-04-26 00:34:00