对于学习很有帮助

源代码在线查看: 网易电脑频道--如何开发自己的操作系统的引导程序.htm

软件大小: 2022 K
上传用户: siclj
关键词:
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				
				
				
				
				
				网易电脑频道--如何开发自己的操作系统的引导程序
								div {font-size:9pt; line-height:14pt; font-family:宋体;}
				.p1{font-size:9pt;font-family:宋体;}
				.p2{font-size:9pt;font-family:宋体;line-height:130%;}
				.p3{font-size:14.8px;font-family:宋体;}
				.p4{font-size:14.8px;font-family:宋体;line-height:130%;}
				.p5{font-family:宋体;line-height:130%;}
				a:hover{color:red;}
				a.t1:visited{color:red;}
				a.b{color:000000;}
				a.w{color:ffffff;}
				a.w:hover{color:FDE870;text-decoration:none;}
				a.g{color:000000;font-size:9pt;}
				a.more{color:E2007F;text-decoration:none;}
				a.more:hover{text-decoration:underline;}
				a.ti{color:FDE870;}
				a.ti:hover{color:ffffff;text-decoration:none;}
				-->
				
				
								{function lookup(content){
				eval("open('http://www2.pconline.com.cn/pconline/database/pconlinedic163?inputkey="+content+"','self','dictionary','scrollbars=yes,width=600,height=400')");
						}
				}// -->
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				新闻
				体育
				电脑
				
				
				
				游戏
				财经
				房产
				文化
				女性
				影视
				音乐
				生活
				旅游
				科学
				健康
				职业
				教育
				新辣
				
				更新:10月13日13:5
				
				
				
				
				 你目前的位置是:电脑频道-->软件-->编程指南文章来源: 华好网景 
				
				 
				
				如何开发自己的操作系统的引导程序姜延欧(2000-10-13)
				  当你打开计算机时发生了什么?
				  1.电源打开;2.BIOS开始执行;3.引导程序开始执行。
				  引导程序的规定:你要有一个普通的二进制文件(COM 格式);大小是512个字节;最后两个字节一定是0AA55h;它能被载入到内存地址0x7C00。
				  工具:
				  NASM——是一个免费的汇编工具(有DOS/windows/Linux三种版本)
				  PARTCOPY2.0——DOS下可自由往磁盘拷贝数据的软件
				  举例:
				  1.Just hang……
				  这个简单的引导程序只能挂起:
				  hang:
				   jmp hang
				  times 512-($-$$)-2 db 0
				  dw 0AA55h
				  连接这个引导程序:
				  nasm -f bin -o hang.bin hang.asm
				  现在你需要一张格式化磁盘,传送hang.bin到磁盘的引导扇区
				  partcopy hang.bin 0 200 -f0
				  “0”的意思是指从hang.bin文件的顶端开始传送
				  “200”的意思是指拷贝200个字节
				  插入磁盘和重新启动机器,测试这个引导程序。
				  2.一个实模式下的引导程序
				  上面的程序非常简单,下面介绍一个稍微复杂一点的程序。
				  bits 16 
				  org 0x7C00
				  start: 
				  cli;关中断
				  mov ax,0x9000;设置堆栈址:0x90000 
				  mov ss,ax 
				  mov sp,0
				  sti;开中断
				  l1:push ds 
				  mov dl,0;
				  重新设置磁盘控制器
				  mov ax,0 
				  int 13h 
				  pop ds 
				   jc fail 
				  push es 
				  mov ax,0x1000;ES:BX=10000
				  mov es,ax 
				  mov bx,0 
				  mov ah,2;读磁盘扇区 
				  mov al,5;读入5个扇区
				  mov cx,2;柱面号=0,扇区号=2 
				  mov dx, 0;磁头号=0,驱动器号=0
				  int 13h;ES:BX=来自磁盘上的数据
				  pop es 
				  jc l1
				  mov ax,0x10000;设置段寄器
				  mov es,ax 
				  mov ds,ax 
				  push ax
				  mov ax,0 
				  push ax 
				  retf
				  fail: 
				  jmp fail 
				  times 512-($-$$)-2 db 0 
				  dw 0AA55h
				  连接这个引导程序:
				  nasm -f bin -o boot.bin boot.asm
				  传送boot.bin到磁盘的引导扇区
				  partcopy boot.bin 0 200 -f0
				  为了使程序可以看到,在编译下面程序
				  mov ax,1000h;修改段寄存器 
				  mov ds,ax 
				  mov es,ax
				  mov si,msg;打印 "JIPPIKAYE!" 
				  call putstr
				  hang:;挂起 
				  jmp hang
				  putstr:
				  lodsb 
				  or al,al 
				  jz short putstrd 
				  mov ah,0x0E 
				  mov bx,0x0007 
				  int 0x10 
				  jmp putstr
				  putstrd: 
				  retn
				  msg db 'JIPPIKAYE!',13,10,0
				  连接和传送:
				  nasm -f bin -o boot.bin boot.asm
				  partcopy boot.bin 0 200 -f0 200
				  在partcopy中最后一个参数“200”意思是指磁盘的偏移地址插入磁盘和重新启动机器,你会看到“JIPPIKAYE”然后挂起。
				
				
				
				 到问题青年发表评论...>>> 写信给编辑>>> 
				document.write("推荐给好友"); 
				
				
				 相关文章: 热力推荐:
				
				为你的VB程序程序加密(10-13)用ASP实现论坛的UBB功能(10-13)用VB开发多通道仪表数据采集程序(10-10)Delphi中布尔类型辨析(09-29)使用ASP和Word进行服务器端拼写检查(09-26)
				个人战网天天玩 
				
				硬件报价:货比三家 
				供求信息:互动二手车市
				
				网易体育网友文集 
				综合体育图片新闻 
				 
				中国足球:众说风云
				【关闭窗口】
				
				
				 About Netease - 公司简介 - 网站导航 - 广告服务 - 联系方法 - 招聘信息 - 策略联盟 - 栏目投票评选 - 隐私保护网易公司版权所有©1997-2000 
				
				
							

相关资源