当前位置:首页 > 芯闻号 > 充电吧
[导读]1.最主要的就是那个jmp dword,一切都是为了Jmp做准备2.int 13h读取扇区,既可以读硬盘,又可以读软盘,应该是两个的驱动器号不同(这个还没搞清楚,现在只会读软盘)。用硬盘映像的时候,总

1.最主要的就是那个jmp dword,一切都是为了Jmp做准备

2.int 13h读取扇区,既可以读硬盘,又可以读软盘,应该是两个的驱动器号不同(这个还没搞清楚,现在只会读软盘)。用硬盘映像的时候,总是说找不到引导设备,不知道是哪儿的参数错了。

一些细节:

>cl是读取的扇区号,1就是第1个扇区,并不是从0算起。

>kernel.s生成的就只有16B,所以只读取16字节。(其他的好像是0,回来试试看)

>读取成功了,bochs有时候会告诉你成功了,有时候不会。(一次告诉我读取了16B,一次告诉我读取了17个扇区)。

3.复制kernel到0:0处

>0:0处在实模式下放了256个中断向量号,每个向量号4字节

>movsb会自动把si,di加1,所以千万不要inc si,inc di,多此一举(我画蛇添足时调试总是感觉怎么不对劲,si一下增加2了,我还以为inc指令有问题)

>复制完了后,有些中断向量号就被淹没了,不能用了。

4加载GDT

>注意lgdt时,加载数据的格式。数据地址越高,就在高位。

>>如 DW 0X0000 DW gdt+0x7c00,0x0000.最后形成的GDTR内容就是0x0000,gdt+0x7c00,0x0000

>gdt是便宜地址,所以要加上这个段的起始地址0x7c00

>代码段描述符的数据格式也要注意

>>DW 0XFFFF 0X0000 0X9E00 0X0000,和GDTR表的地址一样,高地址在高位(话说,bochs不是模拟x86的吗?x86的小端不是这样的吧?这个回来也要看看)

>代码段的描述符构造时也要仔细,小心,要不然bochs会出现一些段保护的错误。

5.操作cr0

>那个书上用as86汇编写的,貌似用了一个lmsw的命令,从来没见过。自己又是用nasm写的,开始觉得很不顺,什么破书,总是跟自己的不一样。网上又有人用AT&T汇编格式写了一遍,下载来看,发现整体的结构又变了。又看的头晕,一想自己吃饱了撑的,搞三种汇编干蛋阿,任何一种语法都不熟。就老老实实用nasm。后来想起来《自》的源码是用nasm格式的,于是下载下来找一下lgdt的用法。一下子就解决问题了(开始我是lgdt gdt,正确的是lgdt [gdt]),再后来发现用nasm的不少,可以google很多boot.s用nasm写的。不得不说,这个时候英语确实很重要,虽然google有翻译功能,但是翻译的不准,不是很爽。还好英语基本功还是有的,hiahia。在这期间,感觉新浪爱问真是一个很好的中文网站,很多资料上面都有,而且不吭爹,如果有网站投票的话,一定投他。www.nasm.us,一开始百度nasm官网都没百到。我很奇怪,百度上很多软件的官网排名还不如写这个软件使用心得的博客排名靠前,有的甚至百度不到。还是直接在google上直接英文搜索,很方便了。但是GOOGLE有时候又进不去,唉,恼火。(小技巧:用https://www.google.cn可以进,为什么这个协议就行的通呢?,不懂)。

6.jmp dword

>这一段属于16位和32位的混合编程,www.nasm.us上有介绍。

>其中在0x0008:0的8上我又折腾了很久,因为一开始以为第一个描述是0,第二个8,第三个16,第四个24。后来才想起来选择子的格式。(所以说,先把理论上的搞清楚,该背的要背)。DI13位,TI=0表示GDT,RPL

7.跳到kernel后

>本来是准备用int 10来显示一下字符串的,但是到了保护模式,中断向量号应该是8个字节的了,BIOS提供的应该不能用了吧,得自己写中断服务了。

8.一点感触

>以前看《自己动手写操作系统》的时候,看很多人说这本书好,作者以幽默的语言怎么怎么样。现在觉得真实坑爹,如果你调试半天还是看不出来哪儿错了,书上写的又不详细,百度百到的零零散散,正确性都没保障的时候,幽默顶个屁用阿。而且那本书的基础也不止只需要一点c语言和操作系统的知识,所以我很奇怪难道就没人跟我一样的感受吗?今天百度一些问题的时候,看到了有类似感受的,所以我觉得很奇怪为什么对《自》的评价我看到的都是一种声音:适合初学者。哼,童话里都是骗人的。

>今天google的时候,发现国外很多写OS的小组,貌似国内高校就没这么多的小组额。。。

>英语很重要。即使是写一个kid os,也要耐心和知识的积累。

>找书很麻烦,比如说对8253这些芯片编程以前没接触过,虽然学了汇编。但是不知道看什么书,于是百度吧,但是大家的说法又不统一,Intel的又全是英文,图书馆也没找到,学校外面又买不到,写信给intel领免费的三本这种事又觉得麻烦。唉,于是只能瞎找书,最后找到32位微型接口技术及应用这类书上了,勉强能够满足需求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭