Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593507
  • 博文数量: 353
  • 博客积分: 1104
  • 博客等级: 少尉
  • 技术积分: 1457
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 23:02
个人简介

1、刚工作时做Linux 流控;后来做安全操作系统;再后来做操作系统加固;现在做TCP 加速。唉!没离开过类Unix!!!但是水平有限。。

文章存档

2015年(80)

2013年(4)

2012年(90)

2011年(177)

2010年(1)

2009年(1)

分类:

2011-12-08 13:20:55

看了《自己动手写操作系统》后尝试一下。因为不想用windows作为开发平台,所以,构建了一个Linux的卡发平台。

需要的工具:nasm、qemu、dd

首先,创建软盘镜像文件。

下面编辑一个boot.asm文件如下:


代码:
org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax ;es:bp = 串地址
mov cx, 16 ;cx = 串长度
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ;填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55

1、用nasm编译:
$ nasm boot.asm -o boot.bin
这样就得到了一个512字节的boot.bin文件了,这个就是软盘启动扇区里面应该放的代码。

2、你可以用下面这个命令生成软盘镜像文件:
$ dd conv=sync if=boot.bin of=boot.img bs=1440k count=1
这样我们就得到软盘镜像boot.img了。注意命令中的conv=sync,使用这个选项后可以使得在把每个输入块填充到ibs个字节时,不足部分用空(NULL)字符补齐。在这个例子里由于输入文件只有512个字节,输出文件却需要1.44MB所以我用了这个选项。

3、利用qemu启动镜像文件:
qemu -fda boot.img -boot a -m 64 -localtime

阅读(402) | 评论(0) | 转发(0) |
0

上一篇:BootSector分析

下一篇:8086/8088指令详解

给主人留下些什么吧!~~