文档章节

LiteOS-从bios到MBR引导代码

梦想游戏人
 梦想游戏人
发布于 2017/05/14 21:02
字数 356
阅读 111
收藏 0
点赞 0
评论 0

 

启动步骤

1.BIOS 加电启动后,开始进入计算机启动流程

2.自检,该过程主要用于检查基本硬件故障,如内存,CPU等,该过程可以再BIOS设置里面关闭,自检通过后许多旧年代的主板会蜂鸣器 表示通过。

3.从BIOS配置的启动设备启动,可以是HDD 光驱,也可以是软盘。找到后开始读取MBR(主引导记录),这里就是关键了,

扇区开始的

第一段为:引导程序占用446个字节,并且引导程序第一段指令为org 7c00h,bios吧程序加载到0000:7c00处开始执行,为什么是这个值 http://blog.csdn.net/mirage1993/article/details/29908929  解释地清楚

第二段为分区表:16*4个字节

第三段为结束标示值为0xaa55 ,2字节

一共512字节。

4.加载引导程序

前面446字节记录着引导程序代码,

编写引导代码boot.asm

 


org 7c00h

mov ax, cs
mov es, ax 
mov ax, logo
mov bp, ax
mov cx, len
mov ax, 1301h
mov bx, 000fh
mov dl, 0
int 10h

logo: db "LiteOS 0.1 (c) 2013-2017 dreamyouxi.com"
len: equ $ - logo
times 510 - ($ - $$) db 0
dw 0aa55h

用masm工具 生成二进制代码  start nasm boot.asm -o boot.bin,生成的文件就是我们需要的512字节的MBR。

新建一个vm虚拟机 ,把设备文件设置为生成的BMR

运行

 

 

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 34
博文 409
码字总数 116555
作品 0
成都
Contiki、TinyOS、LiteOS、Nano-RK、t-Kernel的操作系统性能和利弊

来至SICS的权威比较分析报告。 报告中比较了Contiki、TinyOS、LiteOS、Nano-RK、t-Kernel的操作系统性能和利弊,对于广大的物联网研究者和应用开发者不无裨益。 http://www.smeshlink.com/a...

龙鸟
2012/09/22
0
0
物联网将呈爆发式发展,华为OceanConnect物联网平台连接海量设备

前不久全球5G标准的确立,对物联网产业来说是极大的推动力。经过前几年的技术发展,NB-IoT、eLTE、LoRa等市场相继启动。预计2020年,物联网连接数将到达300亿;2025年将达到近1000亿。其中,...

云科技时代
06/28
0
0
华为沟通会:“吓人的”GPU Turbo技术核心思路公开

近两周围绕余承东口中“吓人的技术”GPU Trubo图形处理技术外界有着许多猜测与解读。基于此,华为召开了一场EMUI主题沟通会。从系统到新技术做了讲解。首先是数据上的一些分享,目前EMUI的日...

程序师
07/02
0
0
计算机如何启动(How Computers Boot Up)

How Comuputers Boot Up 计算机如何引导启动 前面的博文介绍了Intel计算机的底板芯片组与内存映射,为理解计算机引导初始过程打下了基础。引导是一个复杂的、多阶段的、有趣的“东西”。下面...

人生能绕几个圈
2013/09/17
0
0
新手学堂:Linux系统的引导过程详细解析

首先说明一下,这里讲的是Linux引导经过的步骤,而不涉及KERNEL引导过程的内部细节。希望本文能对初学Linux的朋友有所帮助。 一、从BIOS到KERNEL 计算机在接通电源之后首先由BIOS进行自检,即...

zt371
2009/05/07
159
0
开机流程介绍

开机流程: 计算机中有BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个韧体( 韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在...

johnnyky
2015/09/28
69
0
centos5.8 不支持GPT

公司变态的开发部对centos5.8的系统上有需求,需要安装系统,12*4T的大盘,昨天折腾了一下这个,gpt和mbr的问题。 centos6 本身是支持gpt的,centos5 不支持gpt,只能mbr。 关于MBR与GPT分区...

davis_qi
2015/12/02
56
0
安装系统必知,BIOS以及磁盘那些事!

现在很多人安装系统都习惯用U盘安装,只要在U盘中有Windows或者其他操作的系统盘,直接在BIOS中选择磁盘启动,就能安装了。但是不少人经常会遇到一个问题,明明U盘中有系统ISO,BIOS也选择了...

新锐空间
2017/06/15
0
0
Linux的2种启动过程

Linux启动过程分为2种,init方式和systeamd方式。 先说init启动过程: 1.首先,启动电源。 2.启动POST(Power on self test),加电自检程序,检查主板硬件上有无短路等等,如果正常,会“滴...

Sevenot_Hu
2017/07/08
0
0
centos启动流程及实现service管理apache服务

centos启动流程及实现service管理apache服务 Cenots6如何启动,它的启动流程是怎样? 系统加电,Power ---up /Reset system startup --- BIOS/bootmonitor stage 1 bootloader --- Master Boot ......

老城小叙
2017/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sklearn学习笔记之简单线性回归

简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项。线性回归的思想其实就是解一组方程,得到...

wangxuwei
5分钟前
0
0
feign之动态interceptor(二)

背景 上文提到了按照不同的feignClient可以根据多个不同的key来进行多个不同的bean的配置 那么我们如何完成多个interceptor的配置呢? 分析 我们刚提到多个配置的玄机就在FeignClientProper...

Mr_Qi
7分钟前
1
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

问题终结者
32分钟前
0
0
Apache配置时.htaccess失效不起作用的原因分析

.htaccess 失效的原因 1. 重写规则有问题,检查自己的重写规则 2.Apache配置问题,配置中没有配置启用 rewrite a2enmod rewrite 3.网站配置文件没有启用配置需要配置 000-default.conf <Dire...

TU-DESGIN
52分钟前
1
0
两个求最大公约数C/C++算法实现

#include<stdio.h> #include<time.h> #include <iostream>using namespace std;//求最大公约数 LCD(Largest Common Division)//短除法 //m=8251, n=6105; int LCD_ShortDiv(int m, ......

失落的艺术
58分钟前
1
0
QueryPerformanceCounter

windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。 对于微秒延时,没有一个现成的函数,但是可以通过 QueryPerformanceFrequency QueryPerformanceCounter 来间接实现。原理就是...

开飞色
今天
1
0
log4j2使用AsyncRoot不显示行号问题处理

<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/></AsyncRoot><!--1.异步logger,还需要在pom.xml中添加disruptor的依赖。2.includeLocation结合异......

小翔
今天
3
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
今天
2
0
使用token实现在有效期内APP自动登录功能

使用token实现在有效期内APP自动登录功能 http://sevennight.cc/2016/07/19/auto_login_impl.html

风云海滩
今天
3
0
Spring Boot集成RabbitMQ发送接收JSON

默认情况下RabbitMQ发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。 ObjectMapper 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送...

小致dad
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部