码迷,mamicode.com
首页 > 其他好文 > 详细

如果写一段代码引导PC开机这段代码是 ? Here is a tiny "OS" :-D

时间:2014-10-06 17:48:50      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:helloworld

Hello world -- OS


                            我找到了华科绍志远博士的相关代码,发现他根据MIT的JOS的boot.S 稍作修改,然后单独剥离出来,可以很好玩~ 


资料下载地址:

http://download.csdn.net/detail/u011368821/8006465


原则上只需要两个文件(boot.S mmu.h)就可以,但是我们这里还需要一些附带的虚拟器工具,以及makefile来做实验.


需要提示的就是地址0xb800是显存的开头地址 : )

MOVSB(MOVe String Byte)
即字符串传送指令,这条指令按字节传送数据。通过SI和DI这两个寄存器控制字符串的源地址和目标地址,比如DS:SI这段地址的N个字节复制到ES:DI指向的地址,复制后DS:SI的内容保持不变。

下面这段代码中把%es设置为0xb800,寓意就在于di寄存器的输出指向显存!

bubuko.com,布布扣

rep指令就是重复执行 rep 后面跟的指令,直到%cx寄存器的值为0(每次执行一次,%cx寄存器的值递减)


这是real model下面的情况

到后面protected model的时候,只是地址的表示形式会发生一点变化而已

不再是segment:offset的形式

而是直接的例如 0xb800(real model) => 0xb8000(protected model)

显存就像一个很好玩的大buffer 哈哈哈哈哈~


bubuko.com,布布扣

这里最后多出来的EOF是我自己加上去的,我加了一小段代码:

bubuko.com,布布扣

前半部分是原来有的,后面部分#print my name是我自己加的功能

这里我精确计算了前半部分打印helloworld会占用多少个字节(62 byte)

于是0xb8d22 + 0x3D (60) = 0xb8d60  : ) Don‘t panic !


最后那个$24其实不怎么好,是我忘记改了....这里最好恰当的改成你想打印多少字节的内容即可















埃塞的情人变成岩石 皮埃尔 法国 1763年 325x329cm 布油彩 巴黎卢浮宫
    
在这幅具有神话意境的画幅中,画家以极为细腻的笔触和华丽的色彩描绘画中人物形象和环境饰物,以古罗马柱式作中景建筑,使画中增加庄重感。皮埃尔用虚幻和现实结合的手法创造了一个亦真亦幻、亦人亦神的艺术境界,在某种意义上又有浪漫情调。可以说这是由古典主义向浪漫主义过渡的一种艺术表现 。这幅画虽取材于希腊神话,但画家似乎并不注重故事的刻画和人物的表现,而是将注意力放在女性人物的身上,尤其对衣物在光线下的反光情有独钟。人物有着罗可可式的甜美和纤秀,但人的目光却不能统一在一起,从而产生一种没有关联的分离感和无动于衷的造型效果 。画面中埃塞端坐于沙发之上,看到情人变成岩石的情景,被画家处理成理性的冷静,剧烈的戏剧性被冷静所消解,但我们却依然可以看出新古典主义绘画那高贵的风范和冷静的气度


bubuko.com,布布扣

如果写一段代码引导PC开机这段代码是 ? Here is a tiny "OS" :-D

标签:helloworld

原文地址:http://blog.csdn.net/cinmyheart/article/details/39828167

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!