有的朋友问我,为什么读书笔记不从第一章开始写?这个问题啊…当初觉得前面的内容不是很重要,就没有写。

我真是高估自己的记忆力了,随着时间的推移,发现前面好多内容都生疏了,有的朋友问我问题我都答不上来。所以,决定再补充一些笔记。即帮助自己回忆,也能方便初学者。

下面进入正题。
你有没有想过这样一个问题——计算机是怎么开始执行我们写的指令的?
这就需要了解计算机的启动过程了。

对于32位的x86处理器,在加电启动时,段寄存器CS的内容是0xF000,IP寄存器的内容为0xFFF0,按照实模式地址的合成方法,给出的地址就是0xFFFF0;另外,在刚启动的时候,处理器会将地址线A20~A31强制为高电平,所以,初始发出的物理地址就是0xFFFF_FFF0;这个地址存放的就是BIOS的第一条指令。

在Bochs上,可以看到第一条指令是

 jmpf 0xf000:e05b  

BIOS需要做的工作有很多,比如
1)初始化各种主板芯片组
2)初始化键盘控制器8042
3)初始化中断向量 ,中断服务例程.
4)初始化 VGA BIOS 控制器
5)显示BIOS的版本和公司名称
6)扫描软驱和各种介质容量
7)读取CMOS的启动顺序配置,并检测启动装置是否正常
8)调用INT 19h启动自举程序

对于汇编语言的学习,需要了解最后两个步骤,(7)和(8)。

BIOS按照”启动顺序”,选择排在第一位的储存设备,读取该设备的第一个扇区(512B)到内存0x7c00(物理地址)处,然后检查这512个字节的最后两个字节是不是0x55和0xAA,如果是则表明这个设备可以用于启动,这个扇区就是主引导扇区;如果不是,则继续尝试”启动顺序”中的下一个设备。

如果确实是可以启动的设备,则用一个华丽的JMP指令跳到0x0000:0x7c00处执行。

    jmp 0x0000:0x7c00

以后的实验,我们都是从主引导扇区开始写代码。所以,当计算机将要执行我们写的第一条指令的时候,请牢记此时CS=0x0000,IP=0x7c00.

【完】

计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01相关推荐

  1. 内核基础 - 实模式与保护模式下的寄存器计算机的启动过程(by quqi99)

    作者:张华  发表于:2016-03-01 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) CP ...

  2. 【OS修炼指南目录】----《X86汇编语言-从实模式到保护模式》读书笔记目录表

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 本文是将个人 ...

  3. 【OS学习笔记】三 计算机的启动过程

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章迈进了汇编的大门,点击链接查看上一篇文章:汇编语言和汇编软 ...

  4. 李忠 X86汇编语言 从实模式到保护模式-初学

    学习资料: 教学视频 网易云课堂 哔哩哔哩 原书网站 原书相关源码附件下载 网友帖子 除了后面没有图片之外很不错的笔记总结,写者很用心 留存待看,一片文章写了特点 很有特色总结的笔记 学习目标: 15 ...

  5. x86汇编语言从实模式百度云_x86汇编语言:从实模式到保护模式

    x86汇编语言:从实模式到保护模式2013年1月由电子工业出版社出版发行,总共6000行的源代码,全方位地向读者展现汇编语言程序设计之美.尽管汇编语言也是一种计算机语言,但却是与众不同的,与它的同类们 ...

  6. 程序的加载和执行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25

    程序的加载和执行(五)--<x86汇编语言:从实模式到保护模式>读书笔记25 前面几篇博文终于把代码分析完了.这篇就来说说代码的编译.运行和调试. 1.代码的编译及写入镜像文件 之前我们都 ...

  7. 程序的加载和执行(四)——《x86汇编语言:从实模式到保护模式》读书笔记24

    程序的加载和执行(四)--<x86汇编语言:从实模式到保护模式>读书笔记24 通过本文能学到什么? 怎样跳转到用户程序 用户程序通过调用内核过程完成自己的功能 怎样从用户程序返回到内核 接 ...

  8. 硬盘和显卡的访问与控制(一)——《x86汇编语言:从实模式到保护模式》读书笔记01

    本文是<x86汇编语言:从实模式到保护模式>(电子工业出版社)的读书实验笔记. 这篇文章我们先不分析代码,而是说一下在Bochs环境下如何看到实验结果. 需要的源码文件 第一个文件是加载程 ...

  9. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

最新文章

  1. python自己做电子词典_python实现电子词典
  2. linux中文件记录的时间参数,【Linux】stat命令查看文件的三个时间参数
  3. Ubuntu下开启SSH服务
  4. JVM年轻代,老年代,永久代详解
  5. Hibernate 一对多的联系(Set关联) 对象关系映射
  6. ICML2021|超越SE、CBAM,中山大学开源SAM:无参Attention!
  7. 734. [网络流24题] 方格取数问题 二分图点权最大独立集/最小割/最大流
  8. 【Android Studio】查看源码时提示“throw new RuntimeException(Stub!)”
  9. 基于jsf的项目_JSF基于事件的交流:新派方法
  10. CAN笔记(22) 特殊协议
  11. 可以单独打开anaconda中的python莫?_Python入门必备,大数据,人工智能编程必备软件-Anaconda...
  12. EXCEL 代码大全
  13. Android自定义字体
  14. Java面向对象编程三大特征 - 继承
  15. 开机加速——在注册表里禁止开机自检硬盘
  16. Cabbage语言代码示例
  17. Shiro的在Springboot中的使用
  18. 多线程导出excel高并发_用多线程优化Excel表格数据导入校验的接口
  19. 兆骑科创创新创业服务平台,海内外高层次人才引进,活动赛事
  20. OPencv无损保存图片

热门文章

  1. 附加数据库失败:错误:5120
  2. Tkinter模块常用参数(python3)
  3. MVC5 + EF6 入门完整教程
  4. Django与CSRF 、AJAX
  5. Django之orm补充
  6. java使用MD5加密
  7. Windows系统下使用Sublime搭建nodejs环境
  8. Lecture 2 Introduction
  9. FFT C语言 修改了matlab
  10. 使用tensorflow出现 ImportError: DLL load failed: 找不到指定的程序