;; 文件:boot.asm
;; 作用:从7c00h处启动,显示载入系统信息"loading system..."
;; 没有文件系统,1.44m 512bits/80sec 软盘启动,
;; 创建日期:2004/01/30 flyback
;; fly-back@163.com
;; ===================================
org 7c00h ; 启动入口地址
main:
jmp start ; 跳转到开始程序入口
.loadmsg db \'loading system...\',0 ; 要显示的字符窜以0结尾
start:
cli ; 关中断,防止意外中断打断程序执行
mov ax, cs ;
mov ds, ax ; 设置数据段
mov es, ax ;
xor ax, ax ; 设置堆栈段
mov ss, ax
mov sp, 6000h ; 7c00以前为堆栈入口
sti ; 开中断
mov si, main.loadmsg ; 调用显示载入信息
call pntchr
jmp $ ; 死循环
;----------------显示字符串----------------------
; ds:si中放入字符串地址
;---------------------------------------------------
pntchr:
lodsb ; 从ds:si装载一个字符到al
or al,al ;
jz endpntchr ; 如果 al = 0, 返回
;
mov ah,0x0e ;
mov bx,0x0007 ;
int 0x10 ; 调用bios中断显示字符
jmp pntchr ;
;
endpntchr: ;
ret ; 返回
times 512-($-$$)-2 db 0 ;保证boot区有512个字节