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

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

;***********************
;
* 文件名:boot.asm
;
***********************
;
%define        _BOOT_DEBUG_        ;做Boot Sector时一定将此行注释掉

%ifdef        _BOOT_DEBUG_
    org    0100h
%else
    org    07c00h                    ;Boot状态,BIOS把Boot Sector加载到0:7c00处并开始执行

%endif

mov    ax,    cs
mov    ds,    ax
mov    es,    ax
call        DispStr                    ;调用显示字符串例程
jmp    $

DispStr:
    mov    ax,    BootMessage
    mov    bp,    ax                    ;es:bp 
= 串地址
    mov    cx,    
50                    ;cx = 串长度
    mov    ax,    01301h                ;ah 
= 13,    al = 01h    BIOS调用,显示字符,光标跟随移动
    mov    bx,    0002h                ;页号为0(bh
=0) 黑底绿字(bl=02h,高亮)
    mov    dh,    
10                    ;起始行
    mov    dl,    
12                    ;起始列
    
int    10h                        ;10h号中断
    ret
BootMessage:    db    
"Hello,Welcome to Sinix World! Sinix is Booting."
times    
510-($-$$)    db    0        ;填充余下的空间,使生成的二进制代码恰好为512字节

dw    
0xaa55                        ;Boot Sector 结束标志
posted on 2006-03-05 22:50  Stone_石头  阅读(976)  评论(3编辑  收藏  举报