文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>最小的Linux操作系统

最小的Linux操作系统

时间:2006-12-05  来源:nick19842000

;boot.asm文件,最小的操作系统,不到20行 org 07c00h      ; 告诉编译器程序加载到7c00处
 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  ; AH = 13,  AL = 01h
 mov bx, 000ch   ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
 mov dl, 0
 int 10h         ; 10h 号中断
 ret
BootMessage:  db "Hello, OS world!"
times  510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw  0xaa55             ; 结束标志

 
Linux下编译: nasm boot.asm            ;将生成一个boot文件。然后插入软盘,输入如下命令: dd if=boot bs=512 count=2880 of=/dev/fd0       ;boot内容copy到软盘上.可以运行了 这时可用BOCHS or VMWare or VirtualPC 从软盘启动。红色的Hello,OS world!就出来了. 也可以再执行下面命令,创建一个软盘映像文件. dd if=/dev/fd0 bs=512 count=2880 of=boot.img  ;生成一个boot.img映像文件。 注:若你只用VMware,那么只需dd boot.asm后直接dd if=boot of=boot.img,便可运行了。   Winodows下编译: nasm boot.asm -o boot.bin ;生成一个512B的boot.bin文件 再用软盘绝对扇区读写工具将这个bin文件写到一个软盘上。就OK了。   备注: $表示当前行被汇编后的地址。反汇编后可以看到这行是jmp short 0x7c09 $$表示一个节(section)的开始(被汇编后的)地址。这里只有1个节,即0x7c00   Reference: 于渊,自己动手写操作系统,2005-8
相关阅读 更多 +
排行榜 更多 +
风度

风度

游戏工具 下载
大姨妈月经提醒

大姨妈月经提醒

健康医疗 下载
海岸线小说网

海岸线小说网

浏览阅读 下载