摘要: 昨天刚吐槽完这个系统的启动区,只有个hello world,根本没起到“启动”的功能,今天在这一章就看到了“启动”的雏形。不得不说作者的风格我真的很喜欢。启动的关键是要把磁盘中操作系统的代码拷到指定的内存的位置上。所以作者一开始就讲了如何利用BIOS把内容从磁盘读到指定位置去。这个函数就不在这里赘述了。值得一提的是作者在这里写了关于flag的一些自己的看法。CPU有几个只有一位的寄存器。可以表示进位,也可以表示状态。还介绍了一下段寄存器。就是ES:BX这种方式表示地址,ES * 16 + BX写MOV CX,[1234]之类的语句时,默认的段寄存器是DS,所以记得要把DS预先指定为0。作者给出 阅读全文
posted @ 2013-03-30 19:07 CheckMate 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 第二天的内容就比第一天要有趣多了。首先解释了一下helloos的汇编代码,代码如下:开始的时候一直不知道64行打下是干什么用的,注释写的是启动区以外部分的输出。我随意改了很多,也没见到输出的run有什么不同。加上后来看的内容,觉得这段就是没用的。现在写的这个启动区的代码,更本没用尽到本职工作,而是仅仅输出了hello, world而已。所以对启动区以外的东西,无法操控,自然,以外的东西都木有用了。ORG 0x7c00ORG是在nask开始执行的时候,会告诉它这些机器指令装载到内存中的哪些地址(CPU放不下全部),而后面的0x7c00是被Intel那帮老头子规定的,具体历史原因未知~0x000. 阅读全文
posted @ 2013-03-30 01:55 CheckMate 阅读(360) 评论(0) 推荐(0) 编辑