2019年1月4日
摘要: 刷新流水线 为什么需要刷新流水线 进入保护模式下,需要尽快刷新CS,SS等段寄存器。 立即跳转到32位模式,刷新流水线 进入保护模式后,需要马上跳转并刷新流水 定义代码段和数据段的选择子常量 CODE选择子: selector_code = 0x1 DATA 选择子:selector_data = 阅读全文
posted @ 2019-01-04 23:54 猛练自然强 阅读(651) 评论(0) 推荐(0)
摘要: GDT临时分段 GDT临时段说明 现在已经进入了保护模式, 目前的改变 可以访问1M以上的内存了 可以使用32位的指令操作 问题: 由于以前的是实式下段寄存器寻址方式无法使用了,我们必须切换到使用GDT段方式来寻址 首要的任务就是先建立一个临时的GDT段,以便我们接下来的指令操作 目前准备建立3个段 阅读全文
posted @ 2019-01-04 23:53 猛练自然强 阅读(647) 评论(0) 推荐(0)
摘要: GDT全局描述符表 什么是GDT全局描述符表 GDT全称为 ,全局描述符表。 保护模式的寻址方式不在使用寄存器分段的方式直接寻址方式了。而采用的是使用GDT(全局分段描述表)来寻址。从而使用更多的内存地址。 创建GDT全局描述符表使用到一个48位的寄存器:GDTR寄存器。 1)首先,在内存中划分一些 阅读全文
posted @ 2019-01-04 23:52 猛练自然强 阅读(3561) 评论(0) 推荐(0)
摘要: 进入保护模式 [TOC] 进入保护模式 进入保护模式的步骤: 1. 关闭中断,打开地址线A20GATE,使得CPU可以访问1M以上的内存空间。 2. 设置CR0寄存器,进入保护模式。 3. 加载临时GDT 4. 进入保护模式后,首先执行jmp指令。因为内存寻址方式改变,需要刷新指令流水线 打开A20 阅读全文
posted @ 2019-01-04 23:50 猛练自然强 阅读(1920) 评论(0) 推荐(0)
摘要: 保护模式 保护模式 保护模式下的段 1. 段选择器 保护模式下,段寄存器CS,DS,ES,,FS,GS,SS,称之为段选择器。 段选择器中的数据称为段选择子 段选择子 : 描述符索引(13位) | TI | RPL 其中 描述符索引:GDT描述符表中的描述符的索引号(从0开始:0,1,2,3...) 阅读全文
posted @ 2019-01-04 23:47 猛练自然强 阅读(926) 评论(0) 推荐(0)
摘要: LBA简介 磁盘读取发展 IO操作读取硬盘的三种方式: chs方式 :小于8G (8064MB) LBA28方式:小于137GB LBA48方式:小于144,000,000 GB LBA方式访问使用了data寄存器,LBA寄存器(总共3个),device寄存器,command寄存器来完成的。 LBA 阅读全文
posted @ 2019-01-04 23:41 猛练自然强 阅读(9796) 评论(0) 推荐(2)
摘要: 读取磁盘:CHS方式 BIOS读取磁盘 读取磁盘也是调用BIOS: 中断命令: INT 13H 读取扇区的入口参数为 AH = 02H 功能参数,读取扇区 AL = 扇区数 CH = 柱面 CL = 扇区 DH = 磁头 DL = 驱动器号,00H~7FH:软盘驱动器号;80H~0FFH:硬盘驱动器 阅读全文
posted @ 2019-01-04 23:39 猛练自然强 阅读(1998) 评论(0) 推荐(0)
摘要: 安装make 安装make sudo apt get install make make v 阅读全文
posted @ 2019-01-04 23:37 猛练自然强 阅读(107) 评论(0) 推荐(0)
摘要: 磁盘 软盘和硬盘 目前主流的硬盘分为两种: 1)机械硬盘 2)固态硬盘 硬盘最早的接口分为两种方式 1) 并行接口方式(PATA),目前已经淘汰。 2) 串行接口(SATA)。 CHS方式访问磁盘 磁盘的三层定位结构分别为 柱面(Cylinder),磁头(Head),扇区(Sector) 使用数字, 阅读全文
posted @ 2019-01-04 23:37 猛练自然强 阅读(600) 评论(0) 推荐(0)
摘要: Bochs 工具 bochs: "bochs" ubuntu安装配置Bochs 1. 安装bochs sudo apt get install bochs bochs x 2. 创建工程目录 创建工程目录并进入 1. 新建并修改配置文件 在工程目录下新建bochsrc.me文件 $ vim boch 阅读全文
posted @ 2019-01-04 23:36 猛练自然强 阅读(286) 评论(0) 推荐(0)
摘要: 实模式 [TOC] 实模式分段机制 1. 实模式 在32位系统中,CPU有2种工作模式,分别为实模式和保护模式。当电脑一开始启动时,就默认进入实模式下。 2. 为什么要分段 8086cpu有20根地址总线。使用20根CPU总线的寻址范围就为 1 CPU总线总线寻址能力:1 段寄存器寻址能力 : 1 阅读全文
posted @ 2019-01-04 23:34 猛练自然强 阅读(895) 评论(0) 推荐(0)
摘要: 显示字符串 字符串中断 通过AH=13H中断来显示字符串。 1. 字符串中断 当BIOS执行显示字符串调用显示服务 INT 10H,AH=13H,可以进行单个字符的显示 首先需要配置入口参数: 中断号:INT10 | 寄存器 | 说明 | 值 | | | | | | AH | 功能:在Teletyp 阅读全文
posted @ 2019-01-04 23:33 猛练自然强 阅读(688) 评论(0) 推荐(0)
摘要: 显示字符 字符中断显示字符串 1. 字符中断 显示中断:INT10,显示字符:AH=0EH 当BIOS执行显示字符串调用显示服务 INT 10H,AH=0EH,可以进行单个字符的显示 首先需要配置入口参数: | 寄存器 | 说明 | 值 | | | | | | AH | 在Teletype模式下显示 阅读全文
posted @ 2019-01-04 23:29 猛练自然强 阅读(1228) 评论(0) 推荐(1)
摘要: 清屏 [TOC] 需要的工具 qemu: "qemu" BIOS中断清屏 清屏是通过BIOS中断,来滚动屏幕,达到清屏的效果。 1. BIOS中断滚屏 中断 int 10h,AH = 06H / 07H | 寄存器 | 说明 | 值 | | | | | | AH | 功能编码 | 向上滚屏:06H, 阅读全文
posted @ 2019-01-04 23:27 猛练自然强 阅读(1351) 评论(0) 推荐(0)
摘要: 显示模式 [TOC] 工具 首先,需要的工具软件列表: 虚拟机 qemu: "qemu" 显示模式 计算机在加电自检之后,会将显示初始化为80 x 25的文本模式。此时,我们可以进行文本显示了。 而计算机的显示一般有2种模式,可以通过中断来修改显示模式 文本模式 图形模式 文本模式只能显示字符,无法 阅读全文
posted @ 2019-01-04 23:24 猛练自然强 阅读(1128) 评论(0) 推荐(0)
摘要: BIOS中断 BIOS中断简介 计算机刚启动时,进入实模式下,此时操作系统跟硬件(例如键盘鼠标显卡等)交互通过BIOS进行的。通过调用中BIOS中断的方式来访问硬件设备。 BIOS中断就不详细介绍了。 BIOS中断大全 查询相应的中断API可以根据BIOS中断大全: "BIOS中断大全" BIOS的 阅读全文
posted @ 2019-01-04 23:18 猛练自然强 阅读(1227) 评论(0) 推荐(0)