文档详情

操作系统实验-第二次实验报告.docx

发布:2017-06-03约2.96千字共26页下载文档
文本预览下载声明
操作系统第二次实验报告 目录 第一次实验遗漏的测试: 4 实验一 6 (1.1)认识保护模式 6 (1.2)保护模式的运行环境 7 实验二 :GDT 9 实验三:LDT 12 实验四:调用门 13 实验五: 15 (5.1)进入ring3 15 (5.2) 调用门进入有特权级变换的转移 15 (5.3) 经由局部任务返回实模式(pmtest5.asm) 16 实验六:编写代码启动分页机制(pmtest6.asm) 17 实验七:显示内存信息(pmtest7.asm) 19 实验八:页表切换(pmtest8.asm) 20 实验九: 21 (9.1)编程操作8259A(pmtest9a.asm) 21 (9.2)实现一个中断(pmtest9b.asm) 22 (9.3) 修改IDT,新增函数处理中断(pmtest9c.asm) 23 (9.4) 时钟中断实验(pmtest9.asm) 24 实验分析 26 个人总结 26 一.实验目的: 1.熟悉保护模式 2.学习理解页式存储 3.学习理解中断与异常 4.理解保护模式下的I/O 二.实验内容 1.学习保护模式的运行环境 2.学习GDT、实模式到保护模式的转换 3.理解描述符的属性 4.学习LDT、特权级的概念 5.理解分页机制、PDE与PTE 6.理解中断与异常机制,实现一个中断 7.认识保护模式下的I/O,学习IOPL与I/O许可位图 三.实验环境 Windows10, ubuntu14.04.4 四.关键技术: 汇编语言入门 Nasm编译 五.设计与实验过程、测试过程与测试结果 第一次实验遗漏的测试: 经测试,我安装的bochs不支持dump_cpu指令,因此选用其他的指令查看寄存器情况。查看结果如下所示 实验一 本次实验分为9个实验,分别自下文介绍。 (1.1)认识保护模式 1. 按照书中所说输入下列代码以实现实模式到保护模式的转换,文件命名为pmtest1.asm,部分截图如下 2. 按照书中所说在pm.inc中定义宏,部分截图如下: 3.输入下列命令编译,再将第一次实验用过的软盘映像a.img和Bochs的配置文件bochsrc复制到当前文件夹,并将生成的二进制写入软盘映像: 4.测试结果如下图所示,屏幕右侧有一个红色的P打印出来。 (1.2)保护模式的运行环境 1.在Bochs的官网(/diskimages.html)上下载一个freedos-img.tar.gz,解压后将其中的a.img改名为freedos.img: 2.用bximage生成一个软盘映像(安装好bochs后附带的程序,直接bximage运行,按回车提示执行),生成名为pm.img的软盘镜像文件 3. 修改当前工作目录下的bochsrc,确保其中有以下三行: 4.启动bochs ,待FreeDos启动完毕后格式化B盘:format b:回车: 5.将上节的代码pmtest1.asm 中的org 07c00h 改为 org 100h,并重新编译,再将复制到pm.img上: 6.重新运行bochs ,A:/B: 切换到B盘,执行 ,得到下图所示结果,屏幕右侧打印出红色P 实验二 :GDT 1.输入GDT、数据段和堆栈段部分代码如下 2.32位代码段,部分代码如下 3.初始化数据段描述符 4.保护模式到实模式 5.保护模式到实模式的准备工作 6.回到实模式 7.编译 8.挂载 9.运行,结果如下所示,屏幕下方打印红色“in protect mode now”和一串数字 实验三:LDT 1.LDT增加的代码内容:在GDT中增加一个描述符,与描述符对应的选择子,以及初始化代码 2.编译并运行 3. 运行,结果如下所示,屏幕下方打印红色“in protect mode now”和一个L 实验四:调用门 1.通过调用门转移的目标段: 2.上述代码段的描述符: 3.调用门: 4.编译 5. 运行,结果如下所示,屏幕下方打印红色“in protect mode now”和一个L和一个C。 实验五: (5.1)进入ring3 1.编译 2.运行,结果如下所示,屏幕下方打印红色“in protect mode now”和一个3。 (5.2) 调用门进入有特权级变换的转移 1.进入死循环(pmtest5b.asm): 2.进入死循环之前增加调用门指令(pmtest5c.asm) 3.运行pmtest5c.om,结果如下所示,屏幕下方打印红色“in protect mode now”和一个3和一个C (5.3) 经由局部任务返回实模式(pmtest5.asm) 调试后运行,屏幕下方打印红色“in protect mode now”和一个3和一个C。 实验六:编写代码启动分页机制(pmtest6.asm
显示全部
相似文档