一、简介
玩了几天树莓派,想自己写个系统玩玩。搜索了一圈下来,只有一本《自己动手写操作系统》能学习,所以就开始了自己动手写操作系统的学习。
今天记录书上的第一个程序,实现电脑启动并显示一个字符串。
二、我目前在使用的云服务器推荐,学Linux不搞个云服务器始终感觉不爽
要稳定性、安全性、不差钱的可以使用阿里、腾讯等大厂的云服务器。
本人穷屌丝一枚,所以我用的是免费的“三丰云”,同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。
“三丰云”我已经用了一段时间,感觉还是很不错的,速度快也很稳定。
三丰云 https://www.sanfengyun.com 链接。
大家可以点击前往查看是否需要。
三、程序代码和运行效果
程序代码如下:
%define _BOOT_DEBUG_ ; 做Boot Sector时,必须注释本行
; 将本行打开后使用 nasm boot.asm -o boot.com
; 做成一个 .com 文件易于调试
%ifdef _BOOT_DEBUG_
org 0100h ; 调试状态,做成 .com 文件,可调试
%else
org 07c00h ; Boot 状态,BIOS 将把 Boot Sector 加载到 0:7c00
; 处并开始执行
%endif
; org 07c00h ; 告诉编译器加载到7c00处
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ; 调用显示字符串程序
jmp $ ; 无限循环
DispStr:
mov ax, BootMassage
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 ; 10号中断
ret
BootMassage: db "Hello, OS World!"
times 510-($-$$) db 0
dw 0xaa55
运行效果图片