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

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

相关文章:

  • 2021-09-17
  • 2021-04-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-21
  • 2021-04-29
  • 2022-01-18
猜你喜欢
  • 2021-06-21
  • 2021-11-21
  • 2021-05-28
  • 2022-12-23
  • 2022-12-23
  • 2022-02-22
  • 2022-01-20
相关资源
相似解决方案