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

点击右上角即可分享
微信分享提示