x86实模式到保护模式  李忠 王晓波

第3到4章
各个进制间的转换省略
实验环境
编译器  nasm
虚拟机 virtual box
小程序  hexview   观察编译后的机器代码
fixvhdwr 向虚拟硬盘写入数据
计算机启动简介
cpu的引脚  reset    接受复位信号   电平由低变高时    cpu进行硬件的初始化  
cs的内容为0xffff     其余寄存器为0
内存   dram  随机访问存储器
rom  只读存储器    例如bios系统需要无电存储
8086   可以访问1m的空间  因为20位地址线
1m的空间从物理上分为00000-9ffff位内存使用   占据较低的640k空间
rom占用较低的64k   物理地址为f0000-fffff地址空间    而中间的一部分分为外围的部分板卡使用
注意一旦ip位0x000f   那么cs组合后形成的物理地址因为一处而变成00001   将回到1m内存的最低端
所以rom中位于物理地址0xffff0的地方  通常是一个跳转指令
硬盘介绍
硬盘分多个盘片  有中轴带动转动   上下两个盘面  分别有两个磁头   所有的磁头链接到机械臂上   当盘面转动时磁头每步进一次   都会在盘面上绕着中轴 画出一个圆圈   此为磁道  tarck      所有的磁头联动   所有盘面上的相同磁道组合在一起 形成一个虚拟的圆柱  称为柱面   cylinder   
磁道   柱面   盘片   磁头都需要编号  
磁头从0开始    磁道从0开始(最外圈)   盘片从1开始  (上下两个面)
每个磁道还分为扇区     编号从1开始每扇区512字节   为存储数据的最小单位
数据存取顺序:0磁头  0磁道写满后  再写1磁头0磁道 再2磁头0磁道   0好磁道组成的柱面写满后
再写0磁头1磁道    1号柱面写满后  依次顺延  写3好柱面
 
一切的开始从主引导扇区开始
rom将硬盘的主引导扇区的内容写到内存地址为0x0000:0x7c00的位置   然后jmp  0x0000:0x7c00   指令进行跳转
 
第5章
编写主引导扇区的代码

最新文章

  1. Android源码分析之Handler
  2. Vmware安装Centos NAT方式设置静态IP
  3. zookeeper部署及集群测试
  4. Django – query not equal
  5. [转载]jQuery UI 使用
  6. c语言typedef运用之结构体
  7. 使用LAMP创建基于wordpress的个从博客站点
  8. PHP之验证码代码
  9. build setting
  10. 什么是MEAN全堆栈javascript开发框架
  11. Oracle自动备份.bat 最新更新(支持Win10了)
  12. NYOJ 69 数的长度(数学)
  13. OAutho2 请求响应格式
  14. Linux bash基础特性二
  15. echarts生成的图表大小怎么随屏幕的大小改变自适应
  16. php在laravel中使用自定义的Common类
  17. MYSQL后更改ROOT的密码后无法启动服务报错1067
  18. Jenkins部分插件介绍
  19. 使用matplotlib画饼图
  20. 【转载】C# 字符串截取

热门文章

  1. Java 多态抽象
  2. AJPFX总结hashmap和hashtable的区别
  3. vue-quill-editor 富文本编辑器插件介绍
  4. 在switch中的case语句中声明变量会被提前
  5. html5.0学习记录(一)——可拖动视频播放器
  6. XML文件的解析和序列化
  7. ARM指令解析
  8. SQLServer同一实例下事务操作
  9. (一)SpringMVC之警告: No mapping found for HTTP request with URI
  10. Mathematics-基础:散列函数