;; 文件: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个字节
dw 0AA55h ;boot区标记
times 1474560 - ($ - $$) db 0 ; 1.44M 编译成镜像文件可以在viturlpc /vmware中使用
将以上程序保存成boot.asm
用命令行:
nasm boot.asm -o boot.img
用vmware指定boot.img为软盘文件即可
启动VMWare
启动过程完成