一、pmtest1.asm 下面对pmtest1.asm中的文件进行简单的分析 1.首先在先定义一个定义全局描述符表GDT的节[SECTION.gdt],GDT为操作系统提供了段式存储机制。 其中包括三个描述符,分别为 LABEL_GDT,LABEL_DESC_CODE32和LABEL_DESC_VIDEO,每一个描述符定义了一个段,第一个描述符段基址和段界限都为0;第二个描述...
将我们改动过的pmtest1.com(这里就是pmtest1b.com)复制到虚拟软盘 pm.img 上。 i. 在 DOSBox 中挂载pm.img,指定为 A 盘(或 B 盘); 这里用 A 盘举例: IMGMOUNT A C:\path\to\pm.img -t FLOPPY 这里标记一个网站DOSBoxWiki, IMGMOUNT命令格式: IMGMOUNT DRIVE [imagefile] -t [image_type] -fs [...
;第二个定义了一个代码段,段基地址和段界限我们暂且还不知道,先初始化为0,但是因为是个代码段,代码段具备执行的属性,那么DA_C就代表是一个可执行代码段,DA_C是一个预先定义好的常量,我们会在详细讲解段描述符中讲解。 === 我们继续来实现,那么下面,我们就需要设计段选择子了,因为上面代码已经包含了段描述符...
%include"pm.inc"; 常量, 宏, 以及一些说明 org07c00h jmpLABEL_BEGIN [SECTION .gdt]; GDT ...
ghost版win7 ISO文件 方法/步骤 这里我假设虚拟机已经新建并设置好了。如图,按照默认配置新建好虚拟机后开启此虚拟机。如图,开启虚拟机后进入系统安装界面。无论安装的是哪个版本的GHOST系统,都需要先进行系统分区然后再安装GHOST系统到虚拟硬盘中。因此这里先选择选项3加载超级DOS工具箱。选择加载DOS工具...
阅读排行榜 1. 【学习笔记】自己动手写操作系统——pmtest2(468) 2. 【学习笔记】自己动手写操作系统--pmtest3(452) 3. 【学习笔记】自己动手写操作系统--pmtest1(396) 4. 【学习笔记】自己动手写操作系统--pmtest4 (303) 5. pmtest8(255) ...
自己动手写操作系统pmtest1.asm 详细解释 段机制轻松体验 内存寻址: 实模式下的内存寻址: 让我们首先来回顾实模式下的寻址方式 段首地址×16+偏移量 = 物理地址 为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位...
描述符表:也就是一个数组,什么样的数组呢?是一个段描述符组成的数组。 段选择子: 也就是数组的索引,但这时候的索引不在是高级语言中数组的下标,而是我们将要找的那个段描述符相对于数组首地址(也就是全局描述表的首地址)偏移位置。 就这么简单,如图: ...
保护模式下pmtest1.asm的理解 整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编译器会自动把其他段中的标号,编译成相对这个物理地址基址的偏移量. ...