- 博客(8)
- 收藏
- 关注
原创 操作系统还原真相 第六章 内存容量检测
ax:以1KB为单位,只显示15MB以下的内存容量,故最大值为0x3c00,即ax表示的最大内存容量为0x3c00 * 1024=15MB。看后面的案例会明白如何使用)ax:以1KB为单位,内存空间1MB以上的连续的单位数量,不包括低端的1MB内存,故内存大小为ax*1024+1MB。bx:以64KB为单位,内存空间16MB~4GB中连续的单位数量,即内存大小为bx * 1024 * 0x3c00。我们通过BIOS的0x15中断的三个子功能0xe820h、0xe801h、0x88h来获取内存的容量。
2024-04-23 21:37:13 1852 1
原创 操作系统还原真相 第五章 开启保护模式
段描述符表是一个连续的内存空间,里面存储了段描述符,每个段描述符由8个字节组成也就是64位,段描述符中存储了相关的信息,其中包含了段基址。选择子里面存储了段描述符在段描述符表中的位置,用来索引段描述符。
2024-04-21 15:16:05 959 1
原创 操作系统真相还原 第四章 让mbr使用硬盘
电脑操作外设都是通过操作I/O接口来控制的,硬盘的I/O接口就是我们常说的硬盘控制器。硬盘的操作方式:0盘0道1扇区(CHS方式从1开始编号)与0盘0道0扇区(LBA方式从0开始编号)硬盘控制器里面有许多端口寄存器,电脑就是通过操作这些端口寄存器来实现对硬盘的读写的。其中LBA low、LBA mid和LBA hight都是8位的分别存储LBA的0。status寄存器中第7位表示硬盘是否繁忙,第3位表示是否硬盘已将数据准备好了。写入硬盘当中分别写入第0扇区和第2扇区。loader.s文件。
2024-04-19 21:30:45 171
原创 操作系统真相还原 第一章 部署工作环境
堆段(heap): 动态内存分配的区域,也就是malloc申请的内存区,使用free()函数来释放内存,堆的申请释放工作由程序员控制,容易产生内存泄漏。栈段(stack):存放函数调用相关的参数、局部变量的值,以及在任务切换的上下文信息。这个时候在进入到你创建的bochs目录你会看到俩个文件夹一个bin和share表示安装成功。数据段(data):用来存放显式初始化的全局变量或者静态(全局)变量,常量数据。代码段(text):就是C程序编译后的机器指令,也就是我们常见的汇编代码。
2024-04-19 21:20:56 568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人