我的Sinix操作系统(2)引导程序(1)

本文介绍了作者自制操作系统的首个引导程序,该程序能在虚拟机环境下运行,并成功显示欢迎信息。作者分享了使用虚拟机进行软盘及硬盘扇区级读写的学习经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的Sinix的第一个版本的引导程序来了,只是显示了一行欢迎词!但是这已经是一个可以不借助任何软件而在一个裸机上去行的程序了!感觉很好!
其实有很多同学觉得写操作系统没有环境,但是我觉得有虚拟机一切都可以办到,我就是用虚拟机来学习对软盘和硬盘进行扇区级读写。所以,我写的这个引导区,经过一个小软件把它写入到我的一个虚拟软盘中,然后再用这张虚拟的软盘引导我的Sinix裸机!就可以看到可爱的Sinix了!

None.gif;***********************
None.gif;
* 文件名:boot.asm
None.gif;
***********************
None.gif;
%define        _BOOT_DEBUG_        ;做Boot Sector时一定将此行注释掉
None.gif
None.gif
%ifdef        _BOOT_DEBUG_
None.gif    org    0100h
None.gif
%else
None.gif    org    07c00h                    ;Boot状态,BIOS把Boot Sector加载到0:7c00处并开始执行
None.gif
None.gif
%endif
None.gif
None.gifmov    ax,    cs
None.gifmov    ds,    ax
None.gifmov    es,    ax
None.gifcall        DispStr                    ;调用显示字符串例程
None.gifjmp    $
None.gif
None.gifDispStr:
None.gif    mov    ax,    BootMessage
None.gif    mov    bp,    ax                    ;es:bp 
= 串地址
None.gif    mov    cx,    
50                    ;cx = 串长度
None.gif    mov    ax,    01301h                ;ah 
= 13,    al = 01h    BIOS调用,显示字符,光标跟随移动
None.gif    mov    bx,    0002h                ;页号为0(bh
=0) 黑底绿字(bl=02h,高亮)
None.gif    mov    dh,    
10                    ;起始行
None.gif    mov    dl,    
12                    ;起始列
None.gif    
int    10h                        ;10h号中断
None.gif    ret
None.gifBootMessage:    db    
"Hello,Welcome to Sinix World! Sinix is Bootingdot.gif."
None.giftimes    
510-($-$$)    db    0        ;填充余下的空间,使生成的二进制代码恰好为512字节
None.gif
None.gifdw    
0xaa55                        ;Boot Sector 结束标志

转载于:https://www.cnblogs.com/stonecrazyking/archive/2006/03/05/343539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值