原创 学习笔记——自己动手写操作系统(1)

2009-9-21 19:18 4373 11 16 分类: MCU/ 嵌入式

 


 


摘自 于渊写的《自己动手写操作系统(第2版)》,内容有改动


 


一、十分钟完成的操作系统


 


环境:WinXP,Ubuntu(在虚拟机VMware中)


软件:NASM(见附件),VMware


 


1.编写如下代码,另外为boot.asm文件


 org  07c00h
 mov  ax, cs
 mov  ds, ax
 mov  es, ax
 call DispStr
 jmp  $
DispStr:
 mov  ax, BootMessage
 mov  bp, ax
 mov  cx, 16
 mov  ax, 01301h
 mov  bx, 000ch
 mov  dl, 0
 int  10h
 ret
BootMessage:  db "Hello, Craftor!"
times 510-($-$$) db 0
dw  0xaa55


 


2.用NASM将boot.asm编译成boot.bin文件(在XP下)


点击开大图


 


3.将boot.bin生成软盘镜像文件boot.img(在Ubuntu下)


点击开大图


 


4.在VMware中新建虚拟机,从boot.img启动(放在软驱里),启动成功后如下:


点击开大图


 


源文件、NASM和截图打包下载:


https://static.assets-stash.eet-china.com/album/old-resources/2009/9/21/8cfbffca-be95-4117-80dd-0dd76675cedb.rar


 


 


 

文章评论5条评论)

登录后参与讨论

用户314662 2011-3-7 18:04

我自己按书上做了一下,可是说找不到引导文件!

用户143730 2009-10-28 01:12

谢谢介绍内容,有空我也自己看看

用户124183 2009-9-22 17:33

to dalfer: 只要生成软盘镜像文件boot.img就可以了,VMware可以从这个镜像文件来引导系统,就跟从真实软盘启动一样。

用户3612 2009-9-22 16:00

楼主,现在的机子都没有软驱了,U盘可以不????

tengjingshu_112148725 2009-9-22 08:56

哈哈,谢谢介绍内容,有空我也自己看看
相关推荐阅读
用户124183 2010-10-04 18:48
[Craftor原创]基于Verilog的I2C总线驱动设计
摘要:此版本的设计中,笔者将协议里对总线的操作细分为4个,即起始(Start)、写(Write)、读(Read)、停止(Stop),并给对应的操作编码:起始(1000)、写(0100)、读(0010)...
用户124183 2010-09-03 10:42
4/8/16/32/64位乘法器的设计
4/8/16/32/64位乘法器的设计,单个时钟周期运算出结果。思路如下:4位乘法器a,b输入,y输出。使用case语句,对于输入a,y输出是b输入的16种可能。单个周期内可以输出结果。8位乘法器a,...
用户124183 2010-09-02 15:32
除法器的设计与仿真(Verilog&VHDL)
最近在做算法,要用到除法。本来想使用除法器的IP核,但发现Xilinx的除法器IP核是流水线的,如果是批量的数做除法,自然是很快,也很方便。而我的算法中需要将前一次的结果算出来之后,再到下一次运算里做...
用户124183 2010-08-06 09:58
Modelsim中添加Xilinx仿真库
不少朋友在刚接触Xilinx的FPGA时,对仿真库的编译和使用不是很了解,而官方的说明也不是很详细,而且看起来有些费劲,这里Craftor给出在Modelsim中编译和使用Xilinx库的详细教程,P...
用户124183 2010-08-02 22:51
周末写了个51单片机软核
为了弥补这段时间的罪过,这个周末决定做宅男,写程序。其实酝酿51软核已经有好几个月时间了,之前是因为在一个地方卡住了,中间停止了。上周五上班的时候突然来了灵感,一下子想通了,呵呵代码不长,1000多行...
用户124183 2010-06-19 15:41
深入研究Modelsim之使用do文件仿真(1)
Modelsim的仿真功能非常强大,本文介绍使用do脚本仿真单个Verilog或者VHDL文件的操作过程,希望对大家有用!以带时钟和复位信号的计数器为例,代码如下:module counter (  ...
我要评论
5
11
关闭 站长推荐上一条 /2 下一条