zoukankan      html  css  js  c++  java
  • x86实模式到保护模式 李忠 王晓波

    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章
    编写主引导扇区的代码
  • 相关阅读:
    Mysql 数据库 表中列的操作
    FreeSWITCH版本更新
    shell脚本58问
    Wireshark 与 Tcpdump
    Mysql 中 int(3) 和 int(11) 的区别
    FreeSWITCH 基础
    FreeSWITCH 学习笔记(一)
    Mysql 复制表数据(表结构相同)
    Centos date 设置自定义时间
    Mysql 主键
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7896471.html
Copyright © 2011-2022 走看看