操作系统入门(一)痛并学习中

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

;; 文件: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

启动过程完成

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航