自己动手写操作系统-编写引导扇区
来源:互联网 发布:淘宝货到付款的女装 编辑:程序博客网 时间:2024/05/01 16:29
计算机电源打开时,会先进行加点自检(POST),然后寻找启动盘,如果选择是从软盘驱动,计算机就会检查软盘的0面0磁道1扇区,如果它以0xaa55结束,则bios则认为它是一个引导扇区。这一段代码总共为512字节。
一旦bios发现来引导扇区,就会将这512字节的内容装载到内存中0000:7c00去,然后跳转到这个位置将控制权彻底交给这段引导代码。
编写bios
文件名boot.asm
<pre name="code" class="plain">org 07c00h;告诉编译器将程序加载到7c00h处mov ax,cs;cs=0的复制过去ax=0,ds=0,es=0mov ds,axmov es,axcall Disptr;调用显示字符串到寄存器jmp $;无限循环Disptr:mov ax,BootMessage;将BootMessage的地址传给axmov bp,ax;再传给bpmov cx,16;因为要用到int10h中断,要先给各种寄存器赋值,cx表示显示字符串的长度mov ax,01301h;AH=13在teletype模式下显示字符串,al=01h表示只显示字符串mov bx,000ch;bh表示页号,bl=0ch表示显示属性高亮mov dl,0;dh、dl表示显示的行、列int 10h;bios 中断显示retBootMessage: db"Hello OS world!"times 510-($-$$)db0 ;填充剩下的空间,使生成的二进制代码恰好为512字节,$表示当前行,$$表示一个节的开始地址dw 0xaa55 ;结束标志,bios识别引导扇区的标志
编译命令:
nasm编译文件
nasm boot.asm -o boot.bin
bximage 创建一个软盘
dd=if=boot.bin of=a.img bs=512 count=1 conv=notrunc
启动qemu虚拟机
bochs -f bochsrc
0 0
- 自己动手写操作系统-编写引导扇区
- 操作系统编写之引导扇区
- 自己动手写操作系统(一)linux下安装bochs,编译引导扇区并启动bochs虚拟机
- 自己动手编写操作系统_引导程序
- 操作系统引导扇区
- 操作系统:实现引导扇区
- 编写主引导扇区
- 自己写操作系统1——引导扇区
- 写引导扇区所得
- 汇编语言写引导扇区
- 操作系统实验一:在引导扇区编写显示字符串的引导程序
- 编写主引导扇区代码
- Linux汇编写引导扇区
- 《自己动手写操作系统》初学笔记------软盘第一扇区写入问题解决方案
- 自己动手写操作系统:4.模拟软盘的数据结构,加载指定软盘扇区中的数据
- 自己动手写操作系统二(编写内核Hello World 教程)
- 《自己动手编写操作系统》笔记
- 打造操作系统(1.1)引导扇区
- IOS_CustomView_学习记录
- 存储过程、sp_executesql存储过程、try catch错误处理
- struts2.3+hibernate4.2+spring3.2整合 (二)
- 最小向量乘积
- Cookie与Session
- 自己动手写操作系统-编写引导扇区
- 【翻译】Ext JS最新技巧——2014-5-12
- POJ训练计划3126_Prime Path(素数+BFS)
- IOS_Sheet_TextFeild_学习记录
- 读“产品经理那些事儿”有感
- 商品的管理系统
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- JAVA动态绑定
- uva 1350 - Pinary(dp+计数)