第15章习题解答(二)——《x86汇编语言:从实模式到保护模式》读书笔记41
2016-07-17 11:36
169 查看
我们接着上篇博文说。
(1)从程序管理器任务切换到任务A,显示一条消息;
(2)再从任务A转换到任务B,显示一条消息;
(3)从B直接返回到程序管理任务。
程序运行的具体流程如下:
内核的符号表中要增加一个条目,用来接收B任务门描述符的选择子
A任务的符号表中也要有B任务的任务门条目(留待内核重定位);
内核加载任务B,在内核符号表中安装B的任务门描述符的选择子;
内核加载任务A,加载的时候,自然会对A的符号表进行重定位,这样就把B任务的任务门选择子写到了A的符号表中;
从内核切换到任务A;
任务A通过B的任务门(已经在符号表中)切换到任务B;
任务B返回到内核。
内核加载任务A,通过
以上截图,只截取了比较重要的部分,其他地方的修改,还请读者下载我的完整代码。
代码下载地址:
http://download.csdn.net/detail/u013490896/9578192
2.2 第二题题目
修改本章的源程序,使之能够顺序完成以下工作:(1)从程序管理器任务切换到任务A,显示一条消息;
(2)再从任务A转换到任务B,显示一条消息;
(3)从B直接返回到程序管理任务。
2.3 分析
(1)很容易,(2)如何实现?我的思路是在任务A的符号表中安装B的任务门。程序运行的具体流程如下:
内核的符号表中要增加一个条目,用来接收B任务门描述符的选择子
A任务的符号表中也要有B任务的任务门条目(留待内核重定位);
内核加载任务B,在内核符号表中安装B的任务门描述符的选择子;
内核加载任务A,加载的时候,自然会对A的符号表进行重定位,这样就把B任务的任务门选择子写到了A的符号表中;
从内核切换到任务A;
任务A通过B的任务门(已经在符号表中)切换到任务B;
任务B返回到内核。
2.4 对内核代码的修改
在内核符号表中增加一个条目。
安装调用门的时候,一定要除去最后的任务门。
加载任务B,安装B的任务门描述符,并且填写选择子到符号表。
内核加载任务A,通过JMP
指令切换过去。
2.4 对用户程序1的修改
在A的符号表中增加一个条目。
以上截图,只截取了比较重要的部分,其他地方的修改,还请读者下载我的完整代码。
2.5 运行结果
代码下载地址:
http://download.csdn.net/detail/u013490896/9578192
相关文章推荐
- 找工作
- 云服务器下搭建ASP.NET Core环境
- Java职业道路以及技术学习道路
- 一种高效的 vector 四则运算处理方法
- 部门取名字
- 上传下载,使用,commons-fileupload,commons-io来加载上传下载
- ubuntu系统分区设置
- 黑马公社学习
- POJ 3050——Hopscotch(dfs,爆搜)
- QT中SIGNAL与SLOT连接的几种方式
- linux xshell远程登录nodejs启动 断开链接会关闭进程问题
- 上涨中继和下跌中继
- Bzoj2342 [Shoi2011]双倍回文
- 模板模式
- Matlab基本数学应用
- ORACLE删除某用户下所有对象
- JSP学习笔记之一
- Servlet
- 公共值Constants
- leetcode233. Number of Digit One